热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python依据随机种子将图片数据划分为训练集、测试集、验证集

依据随机种子将图片文件数据按照3:1:1分成训练集,测试集,验证集三部分保证可复现,同时确保每一个子类的图片分布都是3:1:1代码通过遍历目录的每一个子文件夹,单独对子文件夹的数据

依据随机种子将图片文件数据按照3:1:1分成训练集,测试集,验证集三部分保证可复现,同时确保每一个子类的图片分布都是3:1:1

代码通过遍历目录的每一个子文件夹,单独对子文件夹的数据连续调用两次train_test_split函数,实现对数据的分类;对目录X划分后,运行结束多出三个目录,X-验证 ,X-测试 ,X-训练

# -*- coding: utf-8 -*-
"""
Created on Wed Jun 19 09:53:39 2019
@author: root
"""
import os,shutil
from sklearn.cross_validation import train_test_split
def splitDir(dirPath,random_state):
path_type=['验证','测试','训练']
class_arr=[]
class_name_arr=[]
class_tmp=[]
name_dir="name_dir"
for (root, dirs, files) in os.walk(dirPath):
if files:
for f in files:if name_dir not in root: #切换下一个分类时,将上一个分类的数据存入 if name_dir!="name_dir":#第一次运行即刻进入,故需判断 print('class 【%s】 had read to array'%name_dir) class_arr.append(class_tmp) class_name_arr.append(name_dir) name_dir=root.split('\\')[-1] class_tmp=[]path = os.path.join(root,f)path=path.replace(dirPath,'')#删除根路径,消除不同根目录名称的影响class_tmp.append(path)
#最后一个分类执行结束,没有被加入
class_arr.append(class_tmp)
class_name_arr.append(name_dir)
print('class 【%s】 had read to array'%name_dir)
for class_tmp,class_name in zip(class_arr,class_name_arr):
#1、将数据划分为训练集、测试集两部分 使用随机数种子,确保可以复现
train, test = train_test_split(class_tmp, test_size = 0.4,random_state=random_state)
#2、将测试集数据划分为 测试集 和 验证集 两部分
test,vaild = train_test_split(class_tmp, test_size = 0.5,random_state=random_state)#使用随机数种子,确保可以复现
data_split=[train,test,vaild]
print('had deal to 【%s】 '%class_name)
for data,dtype in zip(data_split,path_type):
for path in data:path=dirPath+pathfileName=path.replace(dirPath,dirPath+'-'+dtype)fpath,fname=os.path.split(fileName) #分离文件名和路径if not os.path.exists(fpath): os.makedirs(fpath) #创建路径shutil.copyfile(path,fileName)
splitDir (r'flower_photos_HSV',random_state=12345)

python依据随机种子将图片数据划分为训练集、测试集、验证集 - 文章图片
运行截图

 



推荐阅读
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • java drools5_Java Drools5.1 规则流基础【示例】(中)
    五、规则文件及规则流EduInfoRule.drl:packagemyrules;importsample.Employ;ruleBachelorruleflow-group ... [详细]
  • 在本教程中,我们将看到如何使用FLASK制作第一个用于机器学习模型的RESTAPI。我们将从创建机器学习模型开始。然后,我们将看到使用Flask创建AP ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 摘要: 在测试数据中,生成中文姓名是一个常见的需求。本文介绍了使用C#编写的随机生成中文姓名的方法,并分享了相关代码。作者欢迎读者提出意见和建议。 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • Android自定义控件绘图篇之Paint函数大汇总
    本文介绍了Android自定义控件绘图篇中的Paint函数大汇总,包括重置画笔、设置颜色、设置透明度、设置样式、设置宽度、设置抗锯齿等功能。通过学习这些函数,可以更好地掌握Paint的用法。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • Python使用Pillow包生成验证码图片的方法
    本文介绍了使用Python中的Pillow包生成验证码图片的方法。通过随机生成数字和符号,并添加干扰象素,生成一幅验证码图片。需要配置好Python环境,并安装Pillow库。代码实现包括导入Pillow包和随机模块,定义随机生成字母、数字和字体颜色的函数。 ... [详细]
  • Python教学练习二Python1-12练习二一、判断季节用户输入月份,判断这个月是哪个季节?3,4,5月----春 ... [详细]
  • 从批量eml文件中提取附件的Python代码实现方法
    本文介绍了使用Python代码从批量eml文件中提取附件的实现方法,包括获取eml附件信息、递归文件夹下所有文件、创建目的文件夹等步骤。通过该方法可以方便地提取eml文件中的附件,并保存到指定的文件夹中。 ... [详细]
  • 颜色迁移(reinhard VS welsh)
    不要谈什么天分,运气,你需要的是一个截稿日,以及一个不交稿就能打爆你狗头的人,然后你就会被自己的才华吓到。------ ... [详细]
  • 很多时候在注册一些比较重要的帐号,或者使用一些比较重要的接口的时候,需要使用到随机字符串,为了方便,我们设计这个脚本需要注意 ... [详细]
author-avatar
捕鱼达人2502931267
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有