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编码最佳实践之总结
Feb 14 Python
Python使用functools模块中的partial函数生成偏函数
Jul 02 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
Aug 04 Python
python实现简单的文字识别
Nov 27 Python
ML神器:sklearn的快速使用及入门
Jul 11 Python
python使用 cx_Oracle 模块进行查询操作示例
Nov 28 Python
基于Pycharm加载多个项目过程图解
Jan 19 Python
使用Tkinter制作信息提示框
Feb 18 Python
Python接口自动化判断元素原理解析
Feb 24 Python
如何利用Matlab制作一款真正的拼图小游戏
May 11 Python
python使用tkinter实现透明窗体上绘制随机出现的小球(实例代码)
May 17 Python
总结Python使用过程中的bug
Jun 18 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网页游戏学习之Xnova(ogame)源码解读(七)
2014/06/23 PHP
带你了解PHP7 性能翻倍的关键
2015/11/19 PHP
php版阿里云OSS图片上传类详解
2016/12/01 PHP
php微信开发之谷歌测距
2018/06/14 PHP
小程序微信支付功能配置方法示例详解【基于thinkPHP】
2019/05/05 PHP
Laravel ORM 数据model操作教程
2019/10/21 PHP
Yii使用DbTarget实现日志功能的示例代码
2020/07/21 PHP
PHP快速导出百万级数据到CSV或者EXCEL文件
2020/11/27 PHP
玩转jQuery按钮 请告诉我你最喜欢哪些?
2012/01/08 Javascript
js获取当前日期代码适用于网页头部
2013/06/27 Javascript
javascript中typeof操作符和constucor属性检测
2015/02/26 Javascript
Angular中使用better-scroll插件的方法
2018/03/27 Javascript
vue的toast弹窗组件实例详解
2018/05/14 Javascript
详解webpack4升级指南以及从webpack3.x迁移
2018/06/12 Javascript
javascript对HTML字符转义与反转义
2018/12/13 Javascript
JavaScript原型对象原理与应用分析
2018/12/27 Javascript
tsconfig.json配置详解
2019/05/17 Javascript
vue 通过base64实现图片下载功能
2020/12/19 Vue.js
vuex的使用和简易实现
2021/01/07 Vue.js
Python中os.path用法分析
2015/01/15 Python
python2 与 pyhton3的输入语句写法小结
2018/09/10 Python
Pycharm 实现下一个文件引用另外一个文件的方法
2019/01/17 Python
python Django里CSRF 对应策略详解
2019/08/05 Python
浅谈django2.0 ForeignKey参数的变化
2019/08/06 Python
python实现高斯(Gauss)迭代法的例子
2019/11/20 Python
tensorflow模型文件(ckpt)转pb文件的方法(不知道输出节点名)
2020/04/22 Python
编程实现去掉XML的重复结点
2014/05/28 面试题
先进集体事迹材料
2014/02/17 职场文书
推荐信模板
2014/05/09 职场文书
法制宣传教育方案
2014/05/09 职场文书
超市工作总结范文2014
2014/12/19 职场文书
挂靠协议书
2015/01/27 职场文书
高中生社会实践心得体会
2016/01/14 职场文书
什么是执行力?9个故事告诉您:成功绝非偶然!
2019/07/05 职场文书
深度学习tensorflow基础mnist
2021/04/14 Python
Vue全家桶入门基础教程
2021/05/14 Vue.js