tensorflow tf.train.batch之数据批量读取方式


Posted in Python onJanuary 20, 2020

在进行大量数据训练神经网络的时候,可能需要批量读取数据。于是参考了这篇文章的代码,结果发现数据一直批量循环输出,不会在数据的末尾自动停止。

然后发现这篇博文说slice_input_producer()这个函数有一个形参num_epochs,通过设置它的值就可以控制全部数据循环输出几次。

于是我设置之后出现以下的报错:

tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value input_producer/input_producer/limit_epochs/epochs

     [[Node: input_producer/input_producer/limit_epochs/CountUpTo = CountUpTo[T=DT_INT64, _class=["loc:@input_producer/input_producer/limit_epochs/epochs"], limit=2, _device="/job:localhost/replica:0/task:0/cpu:0"](input_producer/input_producer/limit_epochs/epochs)]]

找了好久,都不知道为什么会错,于是只好去看看slice_input_producer()函数的源码,结果在源码中发现作者说这个num_epochs如果不是空的话,就是一个局部变量,需要先调用global_variables_initializer()函数初始化。

于是我调用了之后,一切就正常了,特此记录下来,希望其他人遇到的时候能够及时找到原因。

哈哈,这是笔者第一次通过阅读源码解决了问题,心情还是有点小激动。啊啊,扯远了,上最终成功的代码:

import pandas as pd
import numpy as np
import tensorflow as tf


def generate_data():
  num = 25
  label = np.asarray(range(0, num))
  images = np.random.random([num, 5])
  print('label size :{}, image size {}'.format(label.shape, images.shape))
  return images,label

def get_batch_data():
  label, images = generate_data()
  input_queue = tf.train.slice_input_producer([images, label], shuffle=False,num_epochs=2)
  image_batch, label_batch = tf.train.batch(input_queue, batch_size=5, num_threads=1, capacity=64,allow_smaller_final_batch=False)
  return image_batch,label_batch


images,label = get_batch_data()
sess = tf.Session()
sess.run(tf.global_variables_initializer())
sess.run(tf.local_variables_initializer())#就是这一行
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(sess,coord)
try:
  while not coord.should_stop():
    i,l = sess.run([images,label])
    print(i)
    print(l)
except tf.errors.OutOfRangeError:
  print('Done training')
finally:
  coord.request_stop()
coord.join(threads)
sess.close()

以上这篇tensorflow tf.train.batch之数据批量读取方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之一个免费的实验室
Sep 14 Python
Python中的匿名函数使用简介
Apr 27 Python
Python多进程分块读取超大文件的方法
Apr 13 Python
python 自动重连wifi windows的方法
Dec 18 Python
在windows下使用python进行串口通讯的方法
Jul 02 Python
Django框架 查询Extra功能实现解析
Sep 04 Python
Python字符串的修改方法实例
Dec 19 Python
Python3 解决读取中文文件txt编码的问题
Dec 20 Python
python3.7通过thrift操作hbase的示例代码
Jan 14 Python
在pycharm中实现删除bookmark
Feb 14 Python
Python列表切片常用操作实例解析
Mar 10 Python
Python astype(np.float)函数使用方法解析
Jun 08 Python
Python list运算操作代码实例解析
Jan 20 #Python
Python模块future用法原理详解
Jan 20 #Python
使用Tensorflow将自己的数据分割成batch训练实例
Jan 20 #Python
Python JSON编解码方式原理详解
Jan 20 #Python
从训练好的tensorflow模型中打印训练变量实例
Jan 20 #Python
利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
Jan 20 #Python
新年福利来一波之Python轻松集齐五福(demo)
Jan 20 #Python
You might like
网页上facebook分享功能具体实现
2014/01/26 PHP
Symfony的安装和配置方法
2016/03/17 PHP
利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel
2017/04/27 PHP
php用户名的密码加密更安全的方法
2019/06/21 PHP
学习YUI.Ext 第四天--对话框Dialog的使用
2007/03/10 Javascript
JAVASCRIPT下判断IE与FF的比较简单的方式
2008/10/17 Javascript
jQuery插件slides实现无缝轮播图特效
2015/04/17 Javascript
理解JavaScript的变量的入门教程
2015/07/07 Javascript
详解打造 Vue.js 可复用组件
2017/03/24 Javascript
使用ngrok+express解决本地环境中微信接口调试问题
2018/02/26 Javascript
浅谈Angular6的服务和依赖注入
2018/06/27 Javascript
vue给对象动态添加属性和值的实例
2019/09/09 Javascript
Python函数式编程指南(二):从函数开始
2015/06/24 Python
深入解析Python中的线程同步方法
2016/06/14 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
2019/06/03 Python
这可能是最好玩的python GUI入门实例(推荐)
2019/07/19 Python
微信公众号token验证失败解决方案
2019/07/22 Python
Python关于__name__属性的含义和作用详解
2020/02/19 Python
解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
2020/04/07 Python
200行python代码实现贪吃蛇游戏
2020/04/24 Python
如何搭建pytorch环境的方法步骤
2020/05/06 Python
如何导出python安装的所有模块名称和版本号到文件中
2020/06/05 Python
意大利奢华内衣制造商:Cosabella
2017/08/29 全球购物
英国美术用品购物网站:Cass Art
2019/10/08 全球购物
如何将无状态会话Bean发布为WEB服务,只有无状态会话Bean可以发布为WEB服务?
2015/12/03 面试题
DTD的含义以及作用
2014/01/26 面试题
秘书专业自荐信范文
2013/12/26 职场文书
数学系个人求职信范文
2014/01/30 职场文书
商业房地产广告语
2014/03/13 职场文书
人事任命书怎么写
2014/06/05 职场文书
土木工程专业本科生求职信
2014/10/01 职场文书
2014年药店店长工作总结
2014/11/17 职场文书
党员志愿者服务倡议书
2015/04/29 职场文书
2016年暑期教师培训心得体会
2016/01/09 职场文书
检讨书之工作不认真
2019/08/14 职场文书
Nginx设置HTTPS的方法步骤 443证书配置方法
2022/03/21 Servers