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中的Numeric包和Numarray包使用教程
Apr 13 Python
Python中使用strip()方法删除字符串中空格的教程
May 20 Python
python SMTP实现发送带附件电子邮件
May 22 Python
python+splinter实现12306网站刷票并自动购票流程
Sep 25 Python
对dataframe数据之间求补集的实例详解
Jan 30 Python
Django 配置多站点多域名的实现步骤
May 17 Python
12个步骤教你理解Python装饰器
Jul 01 Python
详解Django 时间与时区设置问题
Jul 23 Python
在Python3 numpy中mean和average的区别详解
Aug 24 Python
python 实现绘制整齐的表格
Nov 18 Python
python取均匀不重复的随机数方式
Nov 27 Python
Python基本知识点总结
Apr 07 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
PHP采集利器 Snoopy 试用心得
2011/07/03 PHP
9个PHP开发常用功能函数小结
2011/07/15 PHP
thinkphp模板赋值与替换实例简述
2014/11/24 PHP
php实现中文转数字
2016/02/18 PHP
php实现三级级联下拉框
2016/04/17 PHP
jquery 将disabled的元素置为enabled的三种方法
2009/07/25 Javascript
EasyUI 中 MenuButton 的使用方法
2012/07/14 Javascript
js中通过split函数分割字符串成数组小例子
2013/09/21 Javascript
JS运动相关知识点小结(附弹性运动示例)
2016/01/08 Javascript
详解AngularJS中ng-src指令的使用
2016/09/07 Javascript
Javascript动画效果(4)
2016/10/11 Javascript
利用webstrom调试Vue.js单页面程序的方法教程
2017/06/06 Javascript
jQuery实现一个简单的验证码功能
2017/06/26 jQuery
分分钟学会vue中vuex的应用(入门教程)
2017/09/14 Javascript
vue下history模式刷新后404错误解决方法
2018/08/18 Javascript
vue .js绑定checkbox并获取、改变选中状态的实例
2018/08/24 Javascript
详解基于Vue,Nginx的前后端不分离部署教程
2018/12/04 Javascript
[01:21]DOTA2周边文化主题展 神秘商店火热开售
2017/07/30 DOTA
使用Python的Flask框架实现视频的流媒体传输
2015/03/31 Python
Python中元组,列表,字典的区别
2017/05/21 Python
Python给定一个句子倒序输出单词以及字母的方法
2018/12/20 Python
python制作图片缩略图
2019/04/30 Python
Python3 虚拟开发环境搭建过程(图文详解)
2020/01/06 Python
python 获取字典特定值对应的键的实现
2020/09/29 Python
Pyecharts 中Geo函数常用参数的用法说明
2021/02/01 Python
欧舒丹英国官网:购买欧舒丹护手霜等明星产品
2017/01/17 全球购物
美国床垫和床上用品公司:Nest Bedding
2017/06/12 全球购物
婚礼秀策划方案
2014/05/19 职场文书
幼儿老师求职信
2014/06/30 职场文书
2014年教育培训工作总结
2014/12/08 职场文书
大学生学生会工作总结2015
2015/05/26 职场文书
2016年党员公开承诺书范文
2016/03/24 职场文书
导游词之长城八达岭
2019/09/24 职场文书
SQLServer2019 数据库的基本使用之图形化界面操作的实现
2021/04/08 SQL Server
工厂无线对讲系统解决方案
2022/02/18 无线电
聊聊mysql都有哪几种分区方式
2022/04/13 MySQL