Tensorflow 训练自己的数据集将数据直接导入到内存


Posted in Python onJune 19, 2018

制作自己的训练集

下图是我们数据的存放格式,在data目录下有验证集与测试集分别对应iris_test, iris_train

Tensorflow 训练自己的数据集将数据直接导入到内存

为了向伟大的MNIST致敬,我们采用的数据名称格式和MNIST类似

Tensorflow 训练自己的数据集将数据直接导入到内存

classification_index.jpg

图像的index都是5的整数倍是因为我们选择测试集的原则是每5个样本,选择一个样本作为测试集,其余的作为训练集和验证集

生成这样数据的过程相对简单,如果有需要python代码的,可以给我发邮件,或者在我的github下载

至此,我们的训练集,测试集,验证集就生成成功了,之所以我们的文件夹只有训练集和测试集是因为我们在后续的训练过程中,会在训练集中分出一部分作为验证集,所以两者暂时合称为训练集

将数据集写入到Tensorflow中

1. 直接写入到队列中

import tensorflow as tf
import numpy as np
import os

train_dir = '/home/ruyiwei/data/iris_train/'#your data directory
def get_files(file_dir):
  '''
  Args:
    file_dir: file directory
  Returns:
    list of images and labels
  '''
  iris = []
  label_iris = []
  contact = []
  label_contact = []
  for file in os.listdir(file_dir):
    name = file.split('_')
    if name[0]=="iris":
      iris.append(file_dir + file)
      label_iris.append(0)
    else:
      contact.append(file_dir + file)
      label_contact.append(1)
  print('There are %d iris\nThere are %d contact' %(len(iris), len(contact)))

  image_list = np.hstack((iris, contact))
  label_list = np.hstack((label_iris, label_contact))

  temp = np.array([image_list, label_list])
  temp = temp.transpose()
  np.random.shuffle(temp)

  image_list = list(temp[:, 0])
  label_list = list(temp[:, 1])
  label_list = [int(i) for i in label_list]

  return image_list, label_list

为了大家更方便的理解和修改代码,我们对代码进行讲解如下

1-3行 : 导入需要的模块
5行: 定义训练集合的位置,这个需要根据自己的机器进行修改
7行: 定义函数 get_files
18行: os.listdir(file_dir) 获取指定目录file_dir下的所有文件名词,也就是我们的训练图片名称
18行:for file in os.listdir(file_dir): 遍历所有的图片
19行: name为一个数组,由于我们根据MINIST来定制的图片名词,所以file.split(‘_')会将图像名称分为两部分,第一部分为classification,通过name[0]来获得分类信息。
21行、24行:iris.append(file_dir + file)/contact.append(file_dir + file)将图像的绝对路径放入到iris/contact
22行、25行:label_iris.append(0)/label_contact.append(1)给对应的图片贴标签
28-29行:将二分类的图像与标签压入到list中
31-33行:合并二分类图像,然后打乱
38行:返回打乱后对应的图像与标签

在spyder下执行如上代码后会返回如下信息

Tensorflow 训练自己的数据集将数据直接导入到内存

这样图像和标签信息就被load到了内存中,我们接下来就可以利用现有的模型对图像进行分类训练,模型的选择和训练的过程,我们会在后面进行讲解。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现目录树生成示例
Mar 28 Python
python实现的一个火车票转让信息采集器
Jul 09 Python
用Python的线程来解决生产者消费问题的示例
Apr 02 Python
利用Python3分析sitemap.xml并抓取导出全站链接详解
Jul 04 Python
Python去除、替换字符串空格的处理方法
Apr 01 Python
Python面向对象之类和对象属性的增删改查操作示例
Dec 14 Python
celery4+django2定时任务的实现代码
Dec 23 Python
Python中类的创建和实例化操作示例
Feb 27 Python
Python在cmd上打印彩色文字实现过程详解
Aug 07 Python
Python3实现二叉树的最大深度
Sep 30 Python
python numpy之np.random的随机数函数使用介绍
Oct 06 Python
为什么是 Python -m
Jun 19 Python
python如何爬取个性签名
Jun 19 #Python
详解TensorFlow查看ckpt中变量的几种方法
Jun 19 #Python
TensorFlow 滑动平均的示例代码
Jun 19 #Python
python3个性签名设计实现代码
Jun 19 #Python
TensorFlow 模型载入方法汇总(小结)
Jun 19 #Python
python3爬虫之设计签名小程序
Jun 19 #Python
Python GUI Tkinter简单实现个性签名设计
Jun 19 #Python
You might like
PHP 递归效率分析
2009/11/24 PHP
在VS2008中编译MYSQL5.1.48的方法
2010/07/03 PHP
php去掉文件前几行的方法
2015/07/29 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
PHP使用CURL实现下载文件功能示例
2019/06/03 PHP
一次失败的jQuery优化尝试小结
2011/02/06 Javascript
一个JQuery写的点击上下滚动的小例子
2011/08/27 Javascript
express的中间件basicAuth详解
2014/12/04 Javascript
纯JavaScript实现获取onclick、onchange等事件的值
2014/12/29 Javascript
学习JavaScript设计模式之策略模式
2016/01/12 Javascript
剖析Node.js异步编程中的回调与代码设计模式
2016/02/16 Javascript
JavaScript中最常见的三个面试题解析
2017/03/04 Javascript
Vue动态实现评分效果
2017/05/24 Javascript
详解基于webpack2.x的vue2.x的多页面站点
2017/08/21 Javascript
小程序云开发部署攻略(图文教程)
2018/10/30 Javascript
深入浅析vue中cross-env的使用
2019/09/12 Javascript
详解Vue中Axios封装API接口的思路及方法
2020/10/10 Javascript
[46:10]2014 DOTA2国际邀请赛中国区预选赛 CnB VS HGT
2014/05/21 DOTA
[27:53]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS iG
2014/05/26 DOTA
[29:59]完美世界DOTA2联赛PWL S3 Forest vs access 第二场 12.11
2020/12/13 DOTA
日常整理python执行系统命令的常见方法(全)
2015/10/22 Python
利用Pandas 创建空的DataFrame方法
2018/04/08 Python
利用Python将每日一句定时推送至微信的实现方法
2018/08/13 Python
对Python3 解析html的几种操作方式小结
2019/02/16 Python
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
Python 实现输入任意多个数,并计算其平均值的例子
2019/07/16 Python
pip安装python库的方法总结
2019/08/02 Python
计算机应用毕业生自荐信
2013/10/23 职场文书
全陪导游词
2015/02/04 职场文书
三八妇女节慰问信
2015/02/14 职场文书
保卫工作个人总结
2015/03/03 职场文书
初中运动会前导词
2015/07/20 职场文书
工程移交协议书
2016/03/24 职场文书
详解Html5项目适配系统深色模式方案总结
2021/04/14 HTML / CSS
MySQL实战记录之如何快速定位慢SQL
2022/03/23 MySQL
20180830晚上第一届KSL半决赛 雨神vs解冻(二龙 三炮解说)
2022/04/01 星际争霸