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中列表(list)操作方法汇总
Aug 18 Python
python读取二进制mnist实例详解
May 31 Python
Python内置函数——__import__ 的使用方法
Nov 24 Python
python的中异常处理机制
Aug 30 Python
Python如何使用k-means方法将列表中相似的句子归类
Aug 08 Python
如何在python中实现随机选择
Nov 02 Python
Python的历史与优缺点整理
May 26 Python
删除pycharm鼠标右键快捷键打开项目的操作
Jan 16 Python
详解Python魔法方法之描述符类
May 26 Python
Python实现的扫码工具居然这么好用!
Jun 07 Python
OpenCV-Python实现油画效果的实例
Jun 08 Python
Python查找算法的实现 (线性、二分,分块、插值查找算法)
Apr 24 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/24 PHP
dedecms系统的广告设置代码 基础版本
2010/04/09 PHP
php读取mysql乱码,用set names XXX解决的原理分享
2011/12/29 PHP
PHP入门之常量简介和系统常量
2014/05/12 PHP
PHP生成唯一订单号
2015/07/05 PHP
php array_slice 取出数组中的一段序列实例
2016/11/04 PHP
jQuery实现的立体文字渐变效果
2010/05/17 Javascript
jQuery获取浏览器中的分辨率实现代码
2013/04/23 Javascript
javascript实现跳转菜单的具体方法
2013/07/05 Javascript
js拆分字符串并将分割的数据放到数组中的方法
2015/05/06 Javascript
Ionic默认的Tabs模板使用实例
2016/08/29 Javascript
快速解决js中window.location.href不工作的问题
2016/11/02 Javascript
vue使用v-for实现hover点击效果
2018/09/29 Javascript
Vue项目服务器部署之子目录部署方法
2019/05/12 Javascript
使用jQuery实现掷骰子游戏
2019/10/24 jQuery
vue实现瀑布流组件滑动加载更多
2020/03/10 Javascript
Node.js利用Express实现用户注册登陆功能(推荐)
2020/10/26 Javascript
[01:42]辉夜杯战队访谈宣传片—FANTUAN
2015/12/25 DOTA
[51:17]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
Python实现动态添加类的属性或成员函数的解决方法
2014/07/16 Python
Python实现包含min函数的栈
2016/04/29 Python
Python远程视频监控程序的实例代码
2019/05/05 Python
Python猴子补丁知识点总结
2020/01/05 Python
3种适用于Python的疯狂秘密武器及原因解析
2020/04/29 Python
Keras 切换后端方式(Theano和TensorFlow)
2020/06/19 Python
Python pip使用超时问题解决方案
2020/08/03 Python
基于python requests selenium爬取excel vba过程解析
2020/08/12 Python
纯CSS3实现给头像加个光芒四射且旋转的背景动画效果
2014/05/07 HTML / CSS
捷克汽车配件和工具销售网站:TorriaCars
2018/02/26 全球购物
英国排名第一的礼品体验公司:Red Letter Days
2018/08/16 全球购物
Python文件操作的面试题
2013/06/22 面试题
请说出这段代码执行后a和b的值分别是多少
2015/03/28 面试题
小学班主任寄语大全
2014/04/04 职场文书
党校学习心得体会范文
2014/09/09 职场文书
员工辞职信范文
2015/03/02 职场文书
python3使用diagrams绘制架构图的步骤
2021/04/08 Python