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爬虫抓站的实用技巧
Aug 09 Python
python基于itchat实现微信群消息同步机器人
Feb 27 Python
python决策树之C4.5算法详解
Dec 20 Python
全面分析Python的优点和缺点
Feb 07 Python
TensorFlow 滑动平均的示例代码
Jun 19 Python
python爬虫之线程池和进程池功能与用法详解
Aug 02 Python
详解pyenv下使用python matplotlib模块的问题解决
Nov 29 Python
Python 保持登录状态进行接口测试的方法示例
Aug 06 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
Jan 21 Python
Python爬虫如何应对Cloudflare邮箱加密
Jun 24 Python
keras 简单 lstm实例(基于one-hot编码)
Jul 02 Python
python和C/C++混合编程之使用ctypes调用 C/C++的dll
Apr 29 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绘图之在图片上写中文和英文的方法
2015/01/24 PHP
学习php设计模式 php实现单例模式(singleton)
2015/12/07 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
php cookie用户登录的详解及实例代码
2017/01/03 PHP
PHP实现财务审核通过后返现金额到客户的功能
2019/07/04 PHP
PHP getID3类的使用方法学习笔记【附getID3源码下载】
2019/10/18 PHP
Javascript的IE和Firefox兼容性汇编(zz)
2007/02/02 Javascript
JavaScript判断DOM何时加载完毕的技巧
2012/11/11 Javascript
Javascript写入txt和读取txt文件示例
2014/02/12 Javascript
nodejs npm package.json中文文档
2014/09/04 NodeJs
让人蛋疼的JavaScript语法特性
2014/09/30 Javascript
JS实现一个按钮的方法
2015/02/05 Javascript
在JavaScript中使用对数Math.log()方法的教程
2015/06/15 Javascript
angularjs表格分页功能详解
2016/01/21 Javascript
使用jQuery判断Div是否在可视区域的方法 判断div是否可见
2016/02/17 Javascript
VueJS组件之间通过props交互及验证的方式
2017/09/04 Javascript
VScode格式化ESlint方法(最全最好用方法)
2019/09/10 Javascript
python删除列表中重复记录的方法
2015/04/28 Python
自己编程中遇到的Python错误和解决方法汇总整理
2015/06/03 Python
Python简单定义与使用字典dict的方法示例
2017/07/25 Python
python实现一个简单的并查集的示例代码
2018/03/19 Python
如何使用selenium和requests组合实现登录页面
2020/02/03 Python
django的autoreload机制实现
2020/06/03 Python
关于webview适配H5上传照片或者视频文件的方法
2020/11/04 HTML / CSS
英国最大的奢侈珠宝和手表网站:C W Sellors
2017/02/10 全球购物
德国机车企业:FC-Moto
2017/10/27 全球购物
Shopty西班牙:缝纫机在线销售
2018/01/26 全球购物
电子商务专业在校生实习自我鉴定
2013/09/29 职场文书
办公文员的工作岗位职责
2013/11/12 职场文书
电气专业推荐信范文
2013/11/18 职场文书
高中生逃课检讨书
2014/10/10 职场文书
绿色校园广播稿
2014/10/13 职场文书
学校通报表扬范文
2015/05/04 职场文书
高中军训感想
2015/08/07 职场文书
Python办公自动化之教你如何用Python将任意文件转为PDF格式
2021/06/28 Python
对讲机的最大通讯距离是多少
2022/02/18 无线电