import os
import numpy as np
import shutil
imgpath = r"E:\tata\data\images"     #图片路径
annotationpath = r"E:\tata\data\labels"   #标签路径
output_path = r'E:\tata\data\121'     #输出存放路径
#构建所有文件名的列表,dir为label
filename = []
#label = []
# dirs = os.listdir(root)
for root, dir, files in os.walk(imgpath):for file in files:filename.append(file)  # save file name#打乱文件名列表
np.random.shuffle(filename)
#划分训练集、测试集,默认比例8:1:1
train = filename[:int(len(filename)*0.8)]        #0-80%
val = filename[int(len(filename)*0.8):int(len(filename)*0.9)]   #80%-90%
test = filename[int(len(filename)*0.9):]               # 90%-100%# copy images
outimages = os.path.join(output_path, 'images')
if not os.path.exists(outimages):os.mkdir(outimages)
outimages_train = os.path.join(outimages, 'training')
if not os.path.exists(outimages_train):os.mkdir(outimages_train)
outimages_validation = os.path.join(outimages, 'validation')
if not os.path.exists(outimages_validation):os.mkdir(outimages_validation)
outimages_test = os.path.join(outimages, 'test')
if not os.path.exists(outimages_test):os.mkdir(outimages_test)# copy annotations
outannotations = os.path.join(output_path, 'labels')
if not os.path.exists(outannotations):os.mkdir(outannotations)
outannotations_train = os.path.join(outannotations, 'training')
if not os.path.exists(outannotations_train):os.mkdir(outannotations_train)
outannotations_validation = os.path.join(outannotations, 'validation')
if not os.path.exists(outannotations_validation):os.mkdir(outannotations_validation)
outannotations_test = os.path.join(outannotations, 'test')
if not os.path.exists(outannotations_test):os.mkdir(outannotations_test)# copyfile
for i in train:print(os.path.join(imgpath, i))print(os.path.join(outimages_train, i))shutil.copyfile(os.path.join(imgpath, i), os.path.join(outimages_train, i))annotations_name = i[:-3]+'txt'shutil.copyfile(os.path.join(annotationpath, annotations_name), os.path.join(outannotations_train, annotations_name))for i in val:shutil.copyfile(os.path.join(imgpath, i), os.path.join(outimages_validation, i))annotations_name = i[:-3]+'txt'shutil.copyfile(os.path.join(annotationpath, annotations_name), os.path.join(outannotations_validation, annotations_name))for i in test:shutil.copyfile(os.path.join(imgpath, i), os.path.join(outimages_test, i))annotations_name = i[:-3]+'txt'shutil.copyfile(os.path.join(annotationpath, annotations_name), os.path.join(outannotations_test, annotations_name))

图片+TXT文本标签数据划分为训练集,验证集和测试集代码相关推荐

  1. 【小白学PyTorch】 2.浅谈训练集验证集和测试集

    文章目录: 经验误差与过拟合 评估方法 经验误差与过拟合 关键词:错误率(error rate),精度(accuracy). 错误率好理解,就是m个样本中,a个样本分类错误,则错误率E = a/m . ...

  2. python 训练集 测试集 验证集划分_将自己的图片数据集分成训练集、验证集和测试集并用 Tensorflow2.0 导入...

    文章目录项目介绍 划分数据集1.在 dataset 目录下创建三个文件夹 2.将原来 dataset 文件夹中的子文件夹分别复制到这三个文件夹中 3.在 python 中指定所有路径 4.将这三个文件 ...

  3. 训练集、验证集和测试集的概念及划分原则

    深度学习中,常将可得的数据集划分为训练集(training set),验证集(development set/validation set)和测试集(test set).下文主要回答以下几个问题:一是 ...

  4. 训练集 验证集_训练与验证、测试集数据分布不同的情况

    在不同分布的数据集上进行训练与验证.测试 深度学习需要大量的数据,但是有时我们可获得的满足我们真实需求分布的数据并不是那么多,不足以对我们的模型进行训练.这时我们就会收集大量相关的数据加入到训练集中, ...

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

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

  6. 机器学习典型步骤以及训练集、验证集和测试集概念

    1. 机器学习典型步骤 数据采集和标记 数据清洗 特征选择 如房子的面积.地理位置.朝向.价格等. 模型选择 有监督还是无监督,问题领域.数据量大小.训练时长.模型准确度等多方面有关. 模型训练和测试 ...

  7. 【入门篇】如何正确使用机器学习中的训练集、验证集和测试集?

    [注] ·本文为转载文章,原文作者是王树义老师,原文链接为 https://zhuanlan.zhihu.com/p/71961236 训练集.验证集和测试集,林林总总的数据集合类型,到底该怎么选.怎 ...

  8. 训练集、验证集和测试集的意义

    原文 在有监督的机器学习中,经常会说到训练集(train).验证集(validation)和测试集(test),这三个集合的区分可能会让人糊涂,特别是,有些读者搞不清楚验证集和测试集有什么区别. I. ...

  9. Recbole自定义训练集、验证集和测试集推荐

    文章目录 Recbole简介 Recbole使用 自定义训练集.验证集和测试集 Recbole简介 Recbole(中文名称:伯乐)是一款使用Python开发的开源推荐框架,里面集成了大量的推荐模型, ...

最新文章

  1. vue点击改变data值_vue 中自定义指令改变data中的值
  2. 全国“最高”的视觉竞赛,华为Atlas打通遥感图像智能分析任督二脉
  3. 【深度学习入门到精通系列】对比度受限的自适应直方图均衡化(CLAHE)
  4. sun官网jdk各版本下载链接
  5. 【BZOJ 3229】 3229: [Sdoi2008]石子合并 (GarsiaWachs算法)
  6. 看动画学算法之:二叉搜索树BST
  7. 如何在PowerPoint中自动调整图片大小
  8. 爬虫 404 try_和我一起学爬虫
  9. XAMPP:访问phpmyadmin出错的解决方案
  10. 一文带你解读Volcano架构设计与原理
  11. 如何编译并修改FBReader的package(安卓平台)
  12. 小米刷原生android系统下载地址,小米6刷原生安卓8.0下载|小米6刷原生安卓p 免费版_附教程_最火软件站...
  13. 算法基础:排序算法:7个常用的衡量指标
  14. 小游戏流量变现瓶颈,新增长点是超级App?
  15. oracle几何体数据类型,4.2 SDO_GEOMETRY类型、属性和值
  16. 获取注册表信息-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography的MachineGuid的值
  17. 基于Linux centos7 搭建内网服务器,并通过外网访问
  18. 英雄传奇-1.专用浏览器问题
  19. 关于文件复制,文件名乱码的问题
  20. 人工智能到底是啥_到底什么是人工智能

热门文章

  1. Mac下VSCode常用快捷键
  2. Verilog-A/AMS系统设计与仿真
  3. 完美世界手游服务器维护时间表,完美世界手游新区开服表 新区开服时间分享[视频][图]...
  4. 网络基础路由器交换机防火墙常见命令
  5. 数学计算开根号和一个数的平方
  6. 从word中复制mathtype公式到在visio2013公式变形
  7. kwant搭建六角晶格矩形区域散射计算LDOS和透射率
  8. SPSS + AMOS 结构方程模型(SEM)
  9. Docker小技巧(五)——hugo+git搭建博客
  10. html5 fill,HTML canvas fillText()用法及代码示例