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彩色化Linux的命令行终端界面的代码实例分享
Jul 02 Python
python实现获取Ip归属地等信息
Aug 27 Python
深入浅析ImageMagick命令执行漏洞
Oct 11 Python
python MySQLdb使用教程详解
Mar 20 Python
django manage.py扩展自定义命令方法
May 27 Python
Python判断有效的数独算法示例
Feb 23 Python
Python实现Linux监控的方法
May 16 Python
Django使用中间键实现csrf认证详解
Jul 22 Python
python日志模块logbook使用方法
Sep 19 Python
Pytorch释放显存占用方式
Jan 13 Python
Keras搭建自编码器操作
Jul 03 Python
如何用Matplotlib 画三维图的示例代码
Jul 28 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
overlord人气高涨,却被菲利普频繁举报,第四季很难在国内上映
2020/05/06 日漫
PHP 中执行系统外部命令
2006/10/09 PHP
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
2013/12/25 PHP
PHP四舍五入精确小数位及取整
2014/01/14 PHP
PHP 使用二进制保存用户状态的实例
2018/01/29 PHP
PHP中单例模式的使用场景与使用方法讲解
2019/03/18 PHP
php创建多级目录与级联删除文件的方法示例
2019/09/12 PHP
JavaScript打印网页指定区域的例子
2014/05/03 Javascript
js实现从数组里随机获取元素
2015/01/12 Javascript
浅谈Unicode与JavaScript的发展史
2015/01/19 Javascript
JS中dom0级事件和dom2级事件的区别介绍
2016/05/05 Javascript
jQuery滚动监听实现商城楼梯式导航效果
2017/03/06 Javascript
JavaScript条件判断_动力节点Java学院整理
2017/06/26 Javascript
Vue AST源码解析第一篇
2017/07/19 Javascript
inner join 内联与left join 左联的实例代码
2017/09/18 Javascript
微信小程序实现自定义modal弹窗封装的方法
2018/06/15 Javascript
浅谈Fetch 数据交互方式
2018/12/20 Javascript
如何实现iframe父子传参通信
2020/02/05 Javascript
浅析Python中元祖、列表和字典的区别
2016/08/17 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
2020/01/18 Python
Python 批量读取文件中指定字符的实现
2020/03/06 Python
pandas的resample重采样的使用
2020/04/24 Python
Python爬虫设置ip代理过程解析
2020/07/20 Python
django中ImageField的使用详解
2020/12/21 Python
路易威登和香奈儿手袋:LuxeDH
2017/01/12 全球购物
Jones Bootmaker官网:优质靴子和鞋子在线
2020/11/30 全球购物
竟聘演讲稿范文
2013/12/31 职场文书
《蝙蝠和雷达》教学反思
2014/04/23 职场文书
优秀团员事迹材料2000字
2014/08/20 职场文书
志愿者爱心公益活动策划方案
2014/09/15 职场文书
会议通知范文
2015/04/15 职场文书
2016大学生形势与政策心得体会
2016/01/12 职场文书
初一语文教学反思
2016/03/03 职场文书
如何把新闻人物写得立体、鲜活?
2019/08/14 职场文书
vue3中的组件间通信
2021/03/31 Vue.js
Python 多线程之threading 模块的使用
2021/04/14 Python