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 相关文章推荐
python3写爬取B站视频弹幕功能
Dec 22 Python
基于并发服务器几种实现方法(总结)
Dec 29 Python
python实现指定文件夹下的指定文件移动到指定位置
Sep 17 Python
python多线程抽象编程模型详解
Mar 20 Python
使用python动态生成波形曲线的实现
Dec 04 Python
PyTorch 对应点相乘、矩阵相乘实例
Dec 27 Python
在pycharm中实现删除bookmark
Feb 14 Python
Python安装whl文件过程图解
Feb 18 Python
Python数据正态性检验实现过程
Apr 18 Python
使用PyCharm安装pytest及requests的问题
Jul 31 Python
Python实现文字pdf转换图片pdf效果
Apr 03 Python
python 使用pandas读取csv文件的方法
Dec 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
php4的session功能评述(一)
2006/10/09 PHP
杏林同学录(五)
2006/10/09 PHP
php getimagesize 上传图片的长度和宽度检测代码
2010/05/15 PHP
Javascript遍历table中的元素示例代码
2014/07/08 Javascript
JavaScript实现的Tween算法及缓冲特效实例代码
2015/11/03 Javascript
浅析JS中常用类型转换及运算符表达式
2017/07/23 Javascript
简单谈谈关于Angular Cli打包的事
2017/09/05 Javascript
JavaScript中正则表达式使数字、中文或指定字符高亮显示
2017/10/31 Javascript
jQuery实现ajax回调函数带入参数的方法示例
2018/06/26 jQuery
react-native动态切换tab组件的方法
2018/07/07 Javascript
浅谈layui数据表格判断问题(加入表单元素),设置单元格样式
2019/10/26 Javascript
JavaScript实现通讯录功能
2020/12/27 Javascript
[46:50]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python学习笔记(二)基础语法
2014/06/06 Python
用Python代码来绘制彭罗斯点阵的教程
2015/04/03 Python
利用QT写一个极简单的图形化Python闹钟程序
2015/04/07 Python
Python中几种操作字符串的方法的介绍
2015/04/09 Python
使用python 爬虫抓站的一些技巧总结
2018/01/10 Python
Python基于SMTP协议实现发送邮件功能详解
2018/08/14 Python
使用Django2快速开发Web项目的详细步骤
2019/01/06 Python
python3.6+django2.0+mysql搭建网站过程详解
2019/07/24 Python
浅析Python 引号、注释、字符串
2019/07/25 Python
GUESS盖尔斯法国官网:美国时尚品牌
2016/09/23 全球购物
英国工艺品购物网站:Minerva Crafts
2018/01/29 全球购物
泰国折扣酒店预订:Hotels2Thailand
2018/03/20 全球购物
L’AGENCE官网:加州女装品牌
2018/06/03 全球购物
Pam & Gela官网:美国性感前卫女装品牌
2018/07/19 全球购物
二年级语文教学反思
2014/02/02 职场文书
竞选班委演讲稿
2014/04/28 职场文书
怀念母亲教学反思
2014/04/28 职场文书
学校做一个有道德的人活动方案
2014/08/23 职场文书
音乐课外活动总结
2015/05/09 职场文书
2016幼儿园教师年度考核评语
2015/12/01 职场文书
《岳阳楼记》原文、译文赏析
2019/09/10 职场文书
一篇文章看懂MySQL主从复制与读写分离
2021/11/07 MySQL
SpringBoot中使用Redis作为全局锁示例过程
2022/03/24 Java/Android