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…

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

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

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

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

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

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

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;我们只…

《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;妥妥的水印。 不过并不影响本次的操作。 / …

《淘宝网开店 拍摄 修图 设计 装修 实战150招》一一1.2 选购镜头时应注意的事项...

本节书摘来自异步社区出版社《淘宝网开店 拍摄 修图 设计 装修 实战150招》一书中的第1章&#xff0c;第1.2节&#xff0c;作者&#xff1a; 葛存山&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.2 选购镜头时应注意的事项 面对如此之多的镜头&#xf…

SAM4E单片机之旅——13、LCD之ASF初步

在Atmel Studio 6中&#xff0c;集成了Atmel Software Framework&#xff08;ASF框架&#xff09;。通过它提供的库&#xff0c;可以很快速地完成新的项目。 这次的最终目标使用ASF在LCD上显示出文字“Hello World!”&#xff0c;现阶段目标是点亮LCD的背光&#xff0c;学习目标…

OpenCV坐标体系的初步认识

实验基础本次实验通过一个简短的例子&#xff0c;主要来说明下面4个问题&#xff1a; 1. 坐标体系中的零点坐标为图片的左上角&#xff0c;X轴为图像矩形的上面那条水平线&#xff1b;Y轴为图像矩形左边的那条垂直线。该坐标体系在诸如结构体Mat,Rect,Point中都是适用的。&…

在Visual Studio上开发Node.js程序

在Visual Studio上开发Node.js程序 原文:在Visual Studio上开发Node.js程序【题外话】 最近准备用Node.js做些东西&#xff0c;于是找找看能否有Visual Studio上的插件以方便开发。结果还真找到了一个&#xff0c;来自微软的Node.js Tools for Visual Studio&#xff08;NTVS&a…

mpls工作原理通俗解释_用这两种方法向最终用户解释NLP模型的工作原理还是不错的...

点击上方关注&#xff0c;All in AI中国上周&#xff0c;我看了一个关于“NLP的实践特性工程”的演讲。主要是关于LIME和SHAP在文本分类可解释性方面是如何工作的。我决定写一篇关于它们的文章&#xff0c;因为它们很有趣、易于使用&#xff0c;而且视觉上很吸引人。所有的机器…

三层架构——配置文件

1、配置文件是什么&#xff1f; 配置文件是随安装程序一起被安装到计算机上的文件&#xff0c;里面存放着安装好的应用程序执行时所须要的參数。 应用程序配置文件是标准的XML文件&#xff0c;XML标记和属性是区分大写和小写的。它能够按须要更改&#xff0c;开发者可使用配置文…

《嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜》——02-04项目范围(Scope)管理...

本节书摘来异步社区《嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜》一书中的第2章&#xff0c;第2.4节&#xff0c;作者&#xff1a;邱毅凌&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看 02-04项目范围&#xff08;Scope&#xff09;管理 嵌入式…

flex(入门)之timer的使用,键盘,鼠标的监听

package {import flash.display.Shape;import flash.display.Sprite;import flash.events.Event;import flash.events.KeyboardEvent;import flash.events.MouseEvent;import flash.events.TimerEvent;import flash.utils.Timer;import mx.controls.Label;//窗体大小&#xff0…

python 线程超时设置_python 条件变量Condition(36)

文章首发微信公众号&#xff0c;微信搜索&#xff1a;猿说python对于线程与线程之间的交互我们在前面的文章已经介绍了 python 互斥锁Lock / python事件Event , 今天继续介绍一种线程交互方式 – 线程条件变量Condition.一.线程条件变量Condition相关函数介绍acquire() — 线程…

MsWord 操作总结

转自&#xff08;http://www.cnblogs.com/eye-like/p/4121219.html&#xff09; Msdn上的word操作api&#xff08;不过只有英文版&#xff0c;英文差的先闪过&#xff09; Word2007的API&#xff1a;http://msdn.microsoft.com/en-us/library/bb257531(voffice.12).aspxWord201…

两数之和 python_同一屏幕播放两个视频 视频左右两个画面或视频上下两个画面如何制作...

咱们在网上经常可以看到一些视频画面是可以在同一屏幕播放两个视频&#xff0c;有的是视频左右两个画面或视频上下两个画面这些是如何制作的呢&#xff0c;其实熟悉视频编辑软件的网友应该会比较了解这些操作&#xff0c;好嘞&#xff0c;来&#xff0c;现在就让小编来演示一下…