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 相关文章推荐
Phantomjs抓取渲染JS后的网页(Python代码)
May 13 Python
python strip() 函数和 split() 函数的详解及实例
Feb 03 Python
Python随机数用法实例详解【基于random模块】
Apr 18 Python
windows下python安装paramiko模块和pycrypto模块(简单三步)
Jul 06 Python
python skimage 连通性区域检测方法
Jun 21 Python
对python遍历文件夹中的所有jpg文件的实例详解
Dec 08 Python
使用Python Pandas处理亿级数据的方法
Jun 24 Python
python使用if语句实现一个猜拳游戏详解
Aug 27 Python
python 实现矩阵按对角线打印
Nov 29 Python
python实现替换word中的关键文字(使用通配符)
Feb 13 Python
解决pycharm中的run和debug失效无法点击运行
Jun 09 Python
Django-Scrapy生成后端json接口的方法示例
Oct 06 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测试硬盘写入速度示例
2014/01/27 PHP
javaScript 简单验证代码(用户名,密码,邮箱)
2009/09/28 Javascript
弹出最简单的模式化遮罩层的js代码
2013/12/04 Javascript
jQuery中的read和JavaScript中的onload函数的区别
2014/08/27 Javascript
ES6的新特性概览
2016/03/10 Javascript
jQuery原理系列-css选择器的简单实现
2016/06/07 Javascript
JavaScript ES6中CLASS的使用详解
2016/11/22 Javascript
AngularJS路由Ui-router模块用法示例
2017/05/29 Javascript
Javascript中 toFixed四舍六入方法
2017/08/21 Javascript
jQuery中ajax获取数据赋值给页面的实例
2017/12/31 jQuery
vue v-model动态生成详解
2018/06/30 Javascript
JavaScript设计模式之单例模式简单实例教程
2018/07/02 Javascript
详解vue-cli项目开发/生产环境代理实现跨域请求
2019/07/23 Javascript
vue element-ui读取pdf文件的方法
2019/11/26 Javascript
angular inputNumber指令输入框只能输入数字的实现
2019/12/03 Javascript
JavaScript自定义超时API代码实例
2020/04/30 Javascript
[42:22]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第一局
2016/02/27 DOTA
简单介绍Python的Django框架加载模版的方式
2015/07/20 Python
对python3中, print横向输出的方法详解
2019/01/28 Python
深入了解Python在HDA中的应用
2019/09/05 Python
Python HTMLTestRunner如何下载生成报告
2020/09/04 Python
CSS去掉A标签(链接)虚线框的方法
2014/04/01 HTML / CSS
基于html和CSS3制作酷炫的导航栏
2015/09/23 HTML / CSS
用CSS3实现瀑布流布局的示例代码
2017/11/10 HTML / CSS
全天然狗零食:Best Bully Sticks
2016/09/22 全球购物
JDBC操作数据库的基本流程是什么
2014/10/28 面试题
妇产科护士自我鉴定
2013/10/15 职场文书
设备售后服务承诺书
2014/05/30 职场文书
大二学生学年自我鉴定
2014/09/12 职场文书
党的群众路线教育实践活动批评与自我批评发言稿
2014/10/16 职场文书
漂亮妈妈观后感
2015/06/08 职场文书
毕业季聚会祝酒词!
2019/07/04 职场文书
如何让vue长列表快速加载
2021/03/29 Vue.js
python关于集合的知识案例详解
2021/05/30 Python
Go中的条件语句Switch示例详解
2021/08/23 Golang
Python可视化学习之seaborn调色盘
2022/02/24 Python