python从date目录导入数据集_使用python划分数据集

无论是训练机器学习或是深度学习,第一步当然是先划分数据集啦,今天小白整理了一些划分数据集的方法,希望大佬们多多指教啊,嘻嘻~

首先看一下数据集的样子,flower_data文件夹下有四个文件夹,每个文件夹表示一种花的类别

20181101143649151120.jpg

20181101143649356185.jpg

划分数据集的主要步骤:

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)

运行结果:

20181101143649668665.jpg

可以看出字典result中有五个key,表示五个类别。

下图是各个类别的划分情况:

20181101143649804399.jpg

原文地址:https://www.cnblogs.com/lijingblog/p/9888930.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258964.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开源牛人 zcbenz

事情是这样的&#xff0c;微软推出了Visual Studio Code&#xff0c;我很好奇他怎么做跨平台的&#xff0c;所以就找找资料&#xff0c;在他的网站中是这么描述的&#xff1a; Architecturally, Visual Studio Code combines the best of web, native, and language-specific t…

eclipse 与 tomcat 的那些路径

我们用mvn创建了一个web工程&#xff0c;同时希望在eclipse里调试开发。mvn有mvn的路径要求&#xff0c;eclispe有eclipse的默认路径&#xff0c;怎么整合二者&#xff1f; 首先介绍一下eclipse的默认路径。 重点在Server Locations里面。 下面我们把[workspace]/.metadata\.pl…

boost解析xml文件

前面我们介绍了xml文件&#xff0c;今天我们试着用boost库来解析xml文件。我们将举两个例子来说明怎么使用。 来自boost官方的例子 先看xml文件的内容&#xff1a; <debug><filename>debug.log</filename><modules><module>Finance</modul…

使用网桥模式(bridge networking mode)配置KVM-QUME虚拟机网络

&#xff08;1&#xff09;linux要工作在网桥模式&#xff0c;所以必须安装两个RPM包。即&#xff1a;bridge-utils和tunctl。它们提供所需的brctl、tunctl命令行工具。能够使用yum在线安装&#xff1a; [rootserver3 ~]# yum install bridge-utils &#xff08;2&#xff09;查…

python数据处理常用函数_pandas数据分析常用函数总结大全:上篇

基础知识在数据分析中就像是九阳神功&#xff0c;熟练的掌握&#xff0c;加以运用&#xff0c;就可以练就深厚的内力&#xff0c;成为绝顶高手自然不在话下&#xff01; 为了更好地学习数据分析&#xff0c;我对于数据分析中pandas这一模块里面常用的函数进行了总结。整篇总结&…

XML的应用

1.XML的定义: XML 于 1998 年 2 月 10 日成为 W3C 的推荐标准。xml一般指可扩展标记语言&#xff0c;可扩展标记语言是一种很像超文本标记语言的标记语言。它的设计宗旨是传输数据&#xff0c;而不是显示数据。 2.通过XML我们可以自定义自己的标签&#xff0c;如&#xff1a; &…

虚拟机VMware里 windows server 2003 扩充C盘方法

你会经常用windows server 2003 吗&#xff1f;应该不会吧&#xff0c;有时一些东西必须装在windows server 2003 上才能用&#xff0c;所以 用虚拟机把&#xff0c;好&#xff0c;装在虚拟机上&#xff0c;8G的C盘够你用吗&#xff0c;一个稍微大点的软件就可能就没空间来存储…

从运维角度浅谈MySQL数据库优化

一个成熟的数据库架构并不是一开始设计就具备高可用、高伸缩等特性的&#xff0c;它是随着用户量的增加&#xff0c;基础架构才逐渐完善。这篇博文主要谈MySQL数据库发展周期中所面临的问题及优化方案&#xff0c;暂且抛开前端应用不说&#xff0c;大致分为以下五个阶段&#x…

c语言c99标准_自学C语言之一

上次自学C语言还是在刚开学到国庆期间&#xff0c;听学姐的建议买了本C语言的书&#xff0c;在军训期间的晚上翻翻看看。后来选课、开始正式上课、面试社团、开各种会等等&#xff0c;好像每天都有许多事要忙&#xff0c;但又没忙出来什么结果&#xff0c;慢慢地好像就把C语言放…

boost解析info文件

先给出info文件&#xff1a; parameters {MAX_STAGES 4MAX_DEPTH 3MAX_NUMTRESS 5MAX_NUMTHRESHS 500MAX_NUMFEATS 1000,1000,1000,500,500,500,400,400MAX_RATIO_RADIUS 0.3,0.2,0.2,0.15,0.12,0.10,0.08,0.06,0.06,0.05BAGGING_OVERLAP 0.4IS_FLIP true }meanface {MAX_ITER…

Font Rending 的 Hint 机制对排版的影响

Font Rending 的 Hint 机制对排版的影响【转】 在设计一种 Font 时&#xff0c;设计者使用的是一个抽象的单位&#xff0c;叫做 EM&#xff0c;来源于大写 M 的宽度&#xff08;通常英文字体中大写 M 的宽度最大&#xff09;。EM 即不同于在屏幕显示时用的像素&#xff08;Pixe…

《SQL初学者指南(第2版)》——2.4 指定列

本节书摘来自异步社区出版社《SQL初学者指南&#xff08;第2版&#xff09;》一书中的第2章&#xff0c;第2.4节&#xff0c;作者&#xff1a;【美】Larry Rockoff&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.4 指定列 到目前为止&#xff0c;我们只…

python从文件中提取特定文本_使用Python从HTML文件中提取文本

我发现最好的一段代码用于提取文本&#xff0c;而不需要javascript或不需要的东西&#xff1a;import urllibfrom bs4 import BeautifulSoupurl "http://news.bbc.co.uk/2/hi/health/2284783.stm"html urllib.urlopen(url).read()soup BeautifulSoup(html)# kill …

mutable、volatile的使用

本文转载自http://blog.csdn.net/tht2009/article/details/6920511 (1)mutable 在C中&#xff0c;mutable是为了突破const的限制而设置的。被mutable修饰的变量&#xff0c;将永远处于可变的状态&#xff0c;即使在一个const函数中&#xff0c;甚至结构体变量或者类对象为const…

文本框点击后文字消失总结

1.文本框显示默认文字&#xff1a; <textarea>白鸽男孩</textarea> <textarea>白鸽男孩</textarea>    2.鼠标点击文本框&#xff0c;默认文字消失&#xff1a; <textarea οnfοcus”if(value’白鸽男孩’) {value’ ‘}”>白鸽男孩</text…

[裴礼文数学分析中的典型问题与方法习题参考解答]4.5.8

需要全部的解答, 请 http://www.cnblogs.com/zhangzujin/p/3527416.html 设 $f(x)$ 在 $[a,\infty)$ 上可微; 且 $x\to\infty$ 时, $f(x)$ 单调递增趋于 $\infty$, 则 $$\bex \int_a^\infty \sin f(x)\rd x,\quad \int_a^\infty \cos f(x)\rd x \eex$$ 都收敛. 证明: 由 $$\be…

《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——2.13 创建视图...

本节书摘来自异步社区出版社《PowerShell V3—SQL Server 2012数据库自动化运维权威指南》一书中的第2章&#xff0c;第2.13节&#xff0c;作者&#xff1a;【加拿大】Donabel Santos&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.13 创建视图 本方案展…

python刷抖音_用Python生成抖音字符视频!

抖音字符视频在去年火过一段时间。 反正我是始终忘不了那段极乐净土的音乐... 这一次自己也来实现一波&#xff0c;做一个字符视频出来。 主要用到的库有cv2&#xff0c;pillow库。 原视频如下&#xff0c;直接抖音下载的&#xff0c;妥妥的水印。 不过并不影响本次的操作。 / …

变长参数

转载自&#xff1a;http://blog.csdn.net/tht2009/article/details/7019635 变长参数 设计一个参数个数可变、参数类型不定的函数是可能的&#xff0c;最常见的例子是printf函数、scanf函数和高级语言的Format函数。在C/C中&#xff0c;为了通知编译器函数的参数个数和类型可变…

第十七章 我国农业科学技术

农村改革解说&#xff08;专著&#xff09;第十七章 第十七章 我国农业科学技术 1、为什么说科学技术是生产力&#xff1f; 我们说科学技术是生产力&#xff0c;是因为在构成生产力的两个主要因素中&#xff0c;都包含着科学技术在内。 A、生产力中人的因素是同一定的科学技术紧…