原博文:link.

亲测有用
主要是用于天池学习项目:link.

# -*- coding: utf-8 -*-
"""
将数据集划分为训练集,验证集,测试集
"""import os
import random
import shutil
# 创建保存图像的文件夹
def makedir(new_dir):if not os.path.exists(new_dir):os.makedirs(new_dir)
random.seed(1) # 随机种子# 1.确定原图像数据集路径
dataset_dir = "D:/test2021/train_val_test0811/"  ##原始数据集路径
# 2.确定数据集划分后保存的路径
split_dir = "D:/test2021/after0811/"  ##划分后保存路径
train_dir = os.path.join(split_dir, "train")
valid_dir = os.path.join(split_dir, "val")
test_dir = os.path.join(split_dir, "test")
# 3.确定将数据集划分为训练集,验证集,测试集的比例
train_pct = 0.9
valid_pct = 0.1
test_pct = 0
# 4.划分
for root, dirs, files in os.walk(dataset_dir):for sub_dir in dirs: # 遍历0,1,2,3,4,5...9文件夹imgs = os.listdir(os.path.join(root, sub_dir)) # 展示目标文件夹下所有的文件名imgs = list(filter(lambda x: x.endswith('.png'), imgs)) # 取到所有以.png结尾的文件,如果改了图片格式,这里需要修改random.shuffle(imgs)  # 乱序图片路径img_count = len(imgs)  # 计算图片数量train_point = int(img_count * train_pct)  # 0:train_pctvalid_point = int(img_count * (train_pct + valid_pct))  # train_pct:valid_pctfor i in range(img_count):if i < train_point:  # 保存0-train_point的图片到训练集out_dir = os.path.join(train_dir, sub_dir)elif i < valid_point:  # 保存train_point-valid_point的图片到验证集out_dir = os.path.join(valid_dir, sub_dir)else:  #  保存valid_point-结束的图片到测试集out_dir = os.path.join(test_dir, sub_dir)makedir(out_dir) # 创建文件夹target_path = os.path.join(out_dir, imgs[i]) # 指定目标保存路径src_path = os.path.join(dataset_dir, sub_dir, imgs[i])  #指定目标原图像路径shutil.copy(src_path, target_path)  # 复制图片print('Class:{}, train:{}, valid:{}, test:{}'.format(sub_dir, train_point, valid_point-train_point,img_count-valid_point))

结果截图:



Jupyter Notebook 程序执行结果:

图片数据集划分为训练集、测试集、验证集相关推荐

  1. 深度学习之数据处理——如何将图片和标签打乱并划分为训练集和测试集

    深度学习之数据处理--如何将图片和标签打乱并划分为训练集和测试集 记录我的第一篇CSDN博客 最近我在网上找到Office31数据集,这个数据集中包含了三个子数据集,分别为:Amazon.dslr.w ...

  2. 【目标检测】将目标检测数据集划分为训练集、验证集与测试集 python代码

    文件结构 数据集data_dir文件结构: ├── data_dir: 数据集图片所在目录(可包含其他合适文件,本脚本只对图片进行统计)├── 1.jpg: 图片1├── 2.jpg: 图片2└── ...

  3. ML之FE:数据处理—特征工程之数据集划分成训练集、验证集、测试集三部分简介、代码实现、案例应用之详细攻略

    ML之FE:数据处理-特征工程之数据集划分成训练集.验证集.测试集三部分简介.代码实现.案例应用之详细攻略 目录 数据集划分成训练.验证.测试三种数据的简介 1.训练集.验证集的作用 2.验证数据集 ...

  4. 第5章【思考与练习2】将数据集划分为训练集与测试集,查看决策树分类器的性能。 将例5-3中的分类器保存到文件中,然后重新加载预测给出的新数据。

    P101思考与练习2 1.将数据集划分为训练集与测试集,查看决策树分类器的性能. #1. #划分为测试集与训练集 import pandas as pd data = pd.read_csv('dat ...

  5. YOLOv5将自己数据集划分为训练集、验证集和测试集

    在用自己数据集跑YOLOv5代码时候,需要将自己的VOC标签格式数据集转为yolo格式. 首先是要获取自己的数据集,然后再对数据集进行标注,保存为VOC(xml格式).然后再把标注完的数据集划分为训练 ...

  6. python制作训练集_利用Tensorflow简单实现VGGNet,从数据集制作到训练完成测试

    VGGNet_TF 利用Tensorflow简单实现VGGNet,从数据集制作到训练完成测试 参考:<Tensorflow实战><Tensorflow 实战Google深度学习框架& ...

  7. 【YOLOv5 数据集划分】训练和验证、训练验证和测试(train、val)(train、val、test)

    [YOLOv5 数据集划分]训练和验证.训练验证和测试(train.val),(train.val.test) ①在已有测试集的情况下划分训练集和验证集 # 将图片和标注数据按比例切分为 训练集和测试 ...

  8. 训练集(train set) 验证集(validation set) 测试集(test set)

    在有监督(supervise)的机器学习中,数据集常被分成2~3个,即:训练集(train set) 验证集(validation set) 测试集(test set). http://blog.si ...

  9. [机器学习] 训练集(train set) 验证集(validation set) 测试集(test set)

    在有监督(supervise)的机器学习中,数据集常被分成2~3个即: 训练集(train set) 验证集(validation set) 测试集(test set) 一般需要将样本分成独立的三部分 ...

最新文章

  1. Java 匿名类也能使用构造函数
  2. SQL Server 审核(Audit)-- 审核组件
  3. 如果你不喜欢让大人说你祝酒祝福
  4. 无极绳连续牵引绞车_可视化无极绳绞车保护控制装置
  5. java 开发规范 下载_java后端开发规范 PDF 下载
  6. fortran95 文件读写等操作的字段参数总结
  7. 基于Linux下的Nand (Nor) Flash读写速度测试
  8. bilibilidown 生成证书_哔哩哔哩(bilibili)助手
  9. 怎么调用计算机任务管理器,任务管理器怎么打开
  10. java正则表达式 手机_Java正则表达式
  11. 一、一个月有多少天(Biweekly4)
  12. 什么是线程安全 什么是线程不安全
  13. html制作简单框架网页 实现自己的音乐驿站 操作步骤及源文件下载 (播放功能限mp3文件)...
  14. Linux上wget: 无法解析主机地址
  15. [转]个性化推荐--能否造就下一代霸主?
  16. 汇川AM401非标准协议通讯socket_client
  17. java sca_SCA java编码入门
  18. 机密,爬虫技术挣钱方法来了
  19. 修改本地连接IP地址的脚本包括修改备用dns的方法(批处理命令)
  20. 线性粘弹性UMATabaqus子程序&VUMAT子程序实例源码Fortran/DISP/材料损伤弹塑性

热门文章

  1. 使用esp8266点亮TFT屏(ST7789)
  2. 关于电商软件市场的格局点评
  3. 舞钢高建钢Q460GJCZ25钢板(厚度能够到达120mm)
  4. 通过爬取百度地图数据获取全国各省会城市快餐三巨头数目
  5. 单体架构、分布式架构、微服务概述
  6. PKPM BIMViewer的使用
  7. 正态分布(Normal distribution)与高斯分布(Gaussian distribution)
  8. python基础内容表达式_01-python基础之python介绍、三元表达式
  9. python二手车价格预测_Python爬取17w条二手车信息,带你揭秘保值率
  10. Vue项目快速输出到小程序、H5