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协程用法实例分析
Jun 04 Python
Python IDE PyCharm的基本快捷键和配置简介
Nov 04 Python
python爬取51job中hr的邮箱
May 14 Python
基于hashlib模块--加密(详解)
Jun 21 Python
Python3导入自定义模块的三种方法详解
Apr 13 Python
使用Python编写Prometheus监控的方法
Oct 15 Python
python3 写一个WAV音频文件播放器的代码
Sep 27 Python
PyQt5+Pycharm安装和配置图文教程详解
Mar 24 Python
利用Python实现Excel的文件间的数据匹配功能
Jun 16 Python
python中tkinter窗口位置\坐标\大小等实现示例
Jul 09 Python
基于logstash实现日志文件同步elasticsearch
Aug 06 Python
Python三维绘图之Matplotlib库的使用方法
Sep 20 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
连接到txt文本的超链接,不直接打开而是点击后下载的处理方法
2009/07/01 PHP
如何使用PHP计算上一个月的今天
2013/05/23 PHP
php实现简易计算器
2020/08/28 PHP
javascript 设置文本框中焦点的位置
2009/11/20 Javascript
探讨javascript是不是面向对象的语言
2013/11/21 Javascript
JS使用parseInt解析数字实现求和的方法
2015/08/05 Javascript
悬浮广告方法日常收集整理
2016/03/18 Javascript
基于RequireJS和JQuery的模块化编程——常见问题全面解析
2016/04/14 Javascript
jQuery Mobile和HTML5开发App推广注册页
2016/11/07 Javascript
angular ng-repeat数组中的数组实例
2017/02/18 Javascript
详解vue.js之绑定class和style的示例代码
2017/08/24 Javascript
浅谈React前后端同构防止重复渲染
2018/01/05 Javascript
Express进阶之log4js实用入门指南
2018/02/10 Javascript
微信小程序仿朋友圈发布动态功能
2018/07/15 Javascript
vue 实现走马灯效果
2019/10/28 Javascript
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
2020/11/20 Vue.js
Python描述器descriptor详解
2015/02/03 Python
Python中非常实用的一些功能和函数分享
2015/02/14 Python
用Python写一段用户登录的程序代码
2018/04/22 Python
python traceback捕获并打印异常的方法
2018/08/31 Python
使用Python的toolz库开始函数式编程的方法
2018/11/15 Python
详解DeBug Python神级工具PySnooper
2019/07/03 Python
使用Python为中秋节绘制一块美味的月饼
2019/09/11 Python
python Pillow图像处理方法汇总
2019/10/16 Python
Python zip函数打包元素实例解析
2019/12/11 Python
30行Python代码实现高分辨率图像导航的方法
2020/05/22 Python
英国家喻户晓的折扣商场:TK Maxx
2017/05/26 全球购物
英国领先的汽车轮胎和快速健康中心:Kwik Fit
2017/10/29 全球购物
英国领先的男装设计师服装购物网站:Mainline Menswear
2018/02/04 全球购物
高考自主招生自荐信
2013/10/20 职场文书
致铅球运动员广播稿精选
2014/01/12 职场文书
运动会跳远广播稿
2014/02/04 职场文书
党支部活动策划方案
2014/08/18 职场文书
美德少年事迹材料500字
2014/08/19 职场文书
Nginx四层负载均衡的配置指南
2021/06/11 Servers
mysql下的max_allowed_packet参数设置详解
2022/02/12 MySQL