python从date目录导入数据集_使用python划分数据集
无论是训练机器学习或是深度学习,第一步当然是先划分数据集啦,今天小白整理了一些划分数据集的方法,希望大佬们多多指教啊,嘻嘻~
首先看一下数据集的样子,flower_data文件夹下有四个文件夹,每个文件夹表示一种花的类别
划分数据集的主要步骤:
1. 定义一个空字典,用来存放各个类别的训练集、测试集和验证集,字典的key是类别,value也是一个字典,存放该类别的训练集、测试集和验证集;
2.使用python获取所有的类别文件夹;
3.对每个类别划分训练集、测试集和验证集:(1)把该类别的所有有效图片放入一个列表中;(2)设置一个随机数对列表进行划分。
具体的代码实现如下所示
importglobimportos.pathimportrandomimportnumpy as np#图片数据文件夹
INPUT_DATA = ‘./flower_data‘
#这个函数从数据文件夹中读取所有的图片列表并按训练、验证、测试数据分开#testing_percentage和validation_percentage指定了测试数据集和验证数据集的大小
defcreate_image_lists(testing_percentage,validation_percentage):#得到的所有图片都存在result这个字典里,key为类别的名称,value值也是一个字典,存放的是该类别的
#文件名、训练集、测试集和验证集
result ={}#获取当前目录下所有的子目录,这里x 是一个三元组(root,dirs,files),第一个元素表示INPUT_DATA当前目录,
#第二个元素表示当前目录下的所有子目录,第三个元素表示当前目录下的所有的文件
sub_dirs = [x[0] for x inos.walk(INPUT_DATA)]#sub_dirs = [‘./flower_data‘,‘./flower_data\\daisy‘,‘./flower_data\\dandelion‘,
#‘./flower_data\\roses‘,‘./flower_data\\sunflowers‘,‘./flower_data\\tulips‘]
#每个子目录表示一类花,现在对每类花划分训练集、测试集和验证集
#sub_dirs[0]表示当前文件夹本身的地址,不予考虑,只考虑他的子目录(各个类别的花)
for sub_dir in sub_dirs[1:]:#获取当前目录下所有的有效图片文件
extensions = [‘jpg‘,‘jpeg‘]#把图片存放在file_list列表里
file_list =[]#os.path.basename(sub_dir)返回sub_sir最后的文件名
#如os.path.basename(‘./flower_data/daisy‘)返回daisy
dir_name =os.path.basename(sub_dir)for extension inextensions:
file_glob= os.path.join(INPUT_DATA,dir_name,‘*.‘+extension)#glob.glob(file_glob)获取指定目录下的所有图片,存放在file_list中
file_list.extend(glob.glob(file_glob))if not file_list: continue
#通过目录名获取类别的名称,返回将字符串中所有大写字符转换为小写后生成的字符串
label_name =dir_name.lower()#初始化当前类别的训练数据集、测试数据集和验证数据集
training_images =[]
testing_images=[]
validation_images=[]for file_name infile_list:
base_name=os.path.basename(file_name)#随机将数据分到训练数据集、测试数据集和验证数据集
#产生一个随机数,最大值为100
chance = np.random.randint(100)if chance
validation_images.append(base_name)elif chance < (testing_percentage+validation_percentage):
testing_images.append(base_name)else:
training_images.append(base_name)#将当前类别是数据放入结果字典
result[label_name]={‘dir‘:dir_name,‘training‘:training_images,‘testing‘:testing_images,‘validation‘:validation_images}#返回整理好的所有数据
returnresult
result= create_image_lists(10,30)print(result)
运行结果:
可以看出字典result中有五个key,表示五个类别。
下图是各个类别的划分情况:
原文地址:https://www.cnblogs.com/lijingblog/p/9888930.html
python从date目录导入数据集_使用python划分数据集相关推荐
- python从date目录导入数据集_PyTorch加载自己的数据集实例详解
数据预处理在解决深度学习问题的过程中,往往需要花费大量的时间和精力. 数据处理的质量对训练神经网络来说十分重要,良好的数据处理不仅会加速模型训练, 更会提高模型性能.为解决这一问题,PyTorch提供 ...
- python哪个关键字可以导入模块_关于python导入模块import与常见的模块详解
0.什么是python模块?干什么的用的? Java中如果使用abs()函数,则需要需要导入Math包,同样python也是封装的,因为python提供的函数太多,所以根据函数的功能将其封装在不同的m ...
- pandas的自带数据集_用Python和Pandas进行数据清理:检测丢失值
数据清理是一个非常耗时的任务,在应用机器学习模型之前,你需要获得待处理的数据,然后你会意识到这些数据是一团乱麻. 根据IBM数据分析的观点 -- 数据科学家花费80%的时间来寻找.清理和组织数据上,只 ...
- python读取sas数据集_利用Python获取SAS和R自带数据集
图:北京-奥森公园-2018年4月 无论是SAS.R还是Python,本身都自带一些数据集,对于初学者来说,可以通过这些自带的小数据集进行编程练习,无疑是非常方便的.SAS.R作为统计分析软件,本身自 ...
- python模块导入教学_【python基础课|今日教学内容:Python导入模块的方式,学python的必备技能】- 环球网校...
[摘要]在这个科学技术高速发展的时代,越来越多的人都开始选择学习编程软件,那么首先被大家选择的编程软件就是python,也用在各行各业之中,并被大家所熟知,所以也有越来越多的python学习者关注py ...
- vscode怎样导入数据_【Python开发】用VSCode+Jupyter notebook 编写 Python
版权声明:小博主水平有限,希望大家多多指导.本文仅代表作者本人观点. 1.过去,想要在 VSCode 中运行 Jupyter notebook 需要安装一个 Neuron 扩展,我也装过,感觉很强大. ...
- python默认安装目录在哪_怎么查看python的安装目录
技术宅 怎么查看python的安装目录? linux中一般安装后的默认路径如下#!/usr/bin/env python 或者 #!/usr/locat/bin/python 如果没有找到,可以通过命 ...
- Python安装后目录在哪儿_如何查看Python的安装目录
一.Python的安装录 当前安装版本为:python 3.10.4 1.在安装python的时候可以看到安装目录,可以修改安装目录: 2.windows系统下64位安装目录如下: 跟其他软件不太一样 ...
- pandas的自带数据集_盘点 | Python自带的那些数据集
01 Seaborn自带数据集 在学习Pandas透视表的时候,大家应该注意到,我们使用的案例数据"泰坦尼克号"来自于seaborn自带的在线数据库,我们可以通过seaborn提 ...
最新文章
- MFC单文档的背景上绘制一个可以自动显示文字的长方形
- 图解完整模式安装windows server 2008企业版[为企业部署Windows Server 2008系列四]
- c# 计算空格宽度像素_用pythonnet为计算机视觉做图像整理
- 如何在VS2013中显示代码行号
- 你可能不知道的shell、bash二三事(Centos 7)
- Matlab 函数文件简介
- 【Fusion】mosek.fusion基本模型
- 功能测试转测试开发的正确姿势
- 碳中和目标下A股先锋调研:钢铁行业加速碳达峰 多行业影响已现
- python能做什么软件?Python到底能干嘛,一文看懂
- 使用Eclipse编译运行MapReduce程序 Hadoop2.6.0_Ubuntu/CentOS
- Mysql学习日记:L13-distinct关键字
- vivo手机拍照有什么技巧,如何拍出精美照片?
- linux下分区ntfs,简易教程:Linux下NTFS分区的写操作
- DNS 的A记录、CNAME记录、mx记录
- javaweb项目JS文件报错解决办法
- 使用ExcelDataReader读写excel(.xls,.xlsx)
- 逆向工程第006篇:简易游戏辅助的实现
- G. The Galactic Olympics
- 如何评价《非暴力沟通》这本书?