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访问MySQL封装的常用类实例
Nov 11 Python
星球大战与Python之间的那些事
Jan 07 Python
Python 中的 else详解
Apr 23 Python
pandas系列之DataFrame 行列数据筛选实例
Apr 12 Python
基于python指定包的安装路径方法
Oct 27 Python
Python操作redis实例小结【String、Hash、List、Set等】
May 16 Python
WxPython实现无边框界面
Nov 18 Python
解决python中的幂函数、指数函数问题
Nov 25 Python
django 取消csrf限制的实例
Mar 13 Python
经验丰富程序员才知道的8种高级Python技巧
Jul 27 Python
Pythonic版二分查找实现过程原理解析
Aug 11 Python
Python+OpenCV检测灯光亮点的实现方法
Nov 02 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执行速率优化技巧小结
2008/03/15 PHP
说明的比较细的php 正则学习实例
2008/07/30 PHP
经常用的图片在容器中的水平垂直居中实例
2007/06/10 Javascript
浅谈checkbox的一些操作(实战经验)
2013/11/20 Javascript
经过绑定元素时会多次触发mouseover和mouseout事件
2014/02/28 Javascript
Nodejs如何复制文件
2016/03/09 NodeJs
JavaScript中Number对象的toFixed() 方法详解
2016/09/02 Javascript
Angular2 (RC4) 路由与导航详解
2016/09/21 Javascript
easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大的实现代码
2017/01/12 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
详解mpvue开发小程序小总结
2018/07/25 Javascript
layui table 参数设置方法
2018/08/14 Javascript
Typescript 中的 interface 和 type 到底有什么区别详解
2019/06/18 Javascript
微信小程序之高德地图多点路线规划过程示例详解
2021/01/18 Javascript
Python删除指定目录下过期文件的2个脚本分享
2014/04/10 Python
在Django中创建第一个静态视图
2015/07/15 Python
Python实现Logger打印功能的方法详解
2017/09/01 Python
Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作示例
2018/04/19 Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
2018/09/27 Python
python实现比较类的两个instance(对象)是否相等的方法分析
2019/06/26 Python
python 用户交互输入input的4种用法详解
2019/09/24 Python
使用Python实现微信拍一拍功能的思路代码
2020/07/09 Python
python两个list[]相加的实现方法
2020/09/23 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
2020/11/28 Python
pandas实现导出数据的四种方式
2020/12/13 Python
英国最大的邮寄种子和植物公司:Thompson & Morgan
2017/09/21 全球购物
个人作风建设自查报告
2014/10/22 职场文书
大学生毕业个人总结
2015/02/15 职场文书
企业宣传稿范文
2015/07/23 职场文书
2016年秋季运动会广播稿
2015/12/21 职场文书
创业计划书之寿司
2019/07/19 职场文书
各类场合主持词开场白范文集锦
2019/08/16 职场文书
导游词之长城八达岭
2019/09/24 职场文书
如何利用JavaScript实现二叉搜索树
2021/04/02 Javascript
Go 语言结构实例分析
2021/07/04 Golang
Python FuzzyWuzzy实现模糊匹配
2022/04/28 Python