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语言编写电脑时间自动同步小工具
Mar 08 Python
简单介绍Python中利用生成器实现的并发编程
May 04 Python
基python实现多线程网页爬虫
Sep 06 Python
Django入门使用示例
Dec 12 Python
python编写微信远程控制电脑的程序
Jan 05 Python
pandas进行时间数据的转换和计算时间差并提取年月日
Jul 06 Python
python实现集中式的病毒扫描功能详解
Jul 09 Python
纯python进行矩阵的相乘运算的方法示例
Jul 17 Python
Python的对象传递与Copy函数使用详解
Dec 26 Python
浅谈Python中os模块及shutil模块的常规操作
Apr 03 Python
如何解决cmd运行python提示不是内部命令
Jul 01 Python
python 基于Apscheduler实现定时任务
Dec 15 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
用libTemplate实现静态网页的生成
2006/10/09 PHP
比较详细PHP生成静态页面教程
2012/01/10 PHP
解析PHP自带的进位制之间的转换函数
2013/06/08 PHP
如何在PHP中使用正则表达式进行查找替换
2013/06/13 PHP
实例讲解PHP设计模式编程中的简单工厂模式
2016/02/29 PHP
PHP输出多个元素的排列或组合的方法
2017/03/14 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
PHP isset empty函数相关面试题及解析
2020/12/11 PHP
JavaScript Date对象 日期获取函数
2010/12/19 Javascript
JavaScript NaN和Infinity特殊值 [译]
2012/09/20 Javascript
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
2013/10/11 Javascript
鼠标悬浮显示二级菜单效果的jquery实现
2014/10/29 Javascript
jQuery的end()方法使用详解
2015/07/15 Javascript
详解webpack2+node+react+babel实现热加载(hmr)
2017/08/24 Javascript
JavaScript实现带有子菜单和控件的slider轮播图效果
2017/11/01 Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
2018/05/04 Javascript
nodejs中函数的调用实例详解
2018/10/31 NodeJs
vue项目启动出现cannot GET /服务错误的解决方法
2020/04/26 Javascript
[04:09]2018年度DOTA2社区贡献奖-完美盛典
2018/12/16 DOTA
python 开发的三种运行模式详细介绍
2017/01/18 Python
使用python的pandas库读取csv文件保存至mysql数据库
2018/08/20 Python
对python 自定义协议的方法详解
2019/02/13 Python
Python 实现大整数乘法算法的示例代码
2019/09/17 Python
django中间键重定向实例方法
2019/11/10 Python
Django3中的自定义用户模型实例详解
2020/08/23 Python
Django vue前后端分离整合过程解析
2020/11/20 Python
phonegap常用事件总结(必看篇)
2017/03/31 HTML / CSS
JRE、JDK、JVM之间的关系怎样
2012/05/16 面试题
《蓝色的树叶》教学反思
2014/02/24 职场文书
cf战队收人广告词
2014/03/14 职场文书
思想品德课教学反思
2016/02/24 职场文书
导游词之无锡东林书院
2019/12/11 职场文书
Python List remove()实例用法详解
2021/08/02 Python
Python requests用法和django后台处理详解
2022/03/19 Python
TV动画《间谍过家家》公开PV
2022/03/20 日漫