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判断字符串编码的简单实现方法(使用chardet)
Jul 01 Python
简介Python的collections模块中defaultdict类型的用法
Jul 07 Python
Python实现按照指定要求逆序输出一个数字的方法
Apr 19 Python
一篇文章搞懂Python的类与对象名称空间
Dec 10 Python
python pygame实现五子棋小游戏
Oct 26 Python
Python3.7+tkinter实现查询界面功能
Dec 24 Python
pytorch 图像中的数据预处理和批标准化实例
Jan 15 Python
python数据类型可变不可变知识点总结
Mar 06 Python
使用Python FastAPI构建Web服务的实现
Jun 08 Python
Python通过getattr函数获取对象的属性值
Oct 16 Python
python3爬虫中多线程进行解锁操作实例
Nov 25 Python
如何在python中实现ECDSA你知道吗
Nov 23 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
1982年日本摄影师镜头下的中国孩子 那无忧无虑的童年
2020/03/12 杂记
PHP 设计模式系列之 specification规格模式
2016/01/10 PHP
javascript操作文本框readOnly
2007/05/15 Javascript
fix-ie5.js扩展在IE5下不能使用的几个方法
2007/08/20 Javascript
js中cookie的使用详细分析
2008/05/28 Javascript
jQuery 性能优化指南(2)
2009/05/21 Javascript
Vue数据驱动模拟实现5
2017/01/13 Javascript
利用imgareaselect辅助后台实现图片上传裁剪
2017/03/02 Javascript
Vue.js 表单控件操作小结
2018/03/29 Javascript
Auto.js自动收取自己和好友蚂蚁森林能量脚本
2018/06/28 Javascript
vue导出html、word和pdf的实现代码
2018/07/31 Javascript
微信小程序实现判断是分享到群还是个人功能示例
2019/05/03 Javascript
详解vue中的父子传值双向绑定及数据更新问题
2019/06/13 Javascript
vue项目中实现缓存的最佳方案详解
2019/07/11 Javascript
vue3.0中友好使用antdv示例详解
2021/01/05 Vue.js
[26:40]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第一局
2016/02/25 DOTA
Python使用Flask框架同时上传多个文件的方法
2015/03/21 Python
用Python写冒泡排序代码
2016/04/12 Python
Python如何import文件夹下的文件(实现方法)
2017/01/24 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
2019/03/05 Python
对python中UDP,socket的使用详解
2019/08/22 Python
Python Opencv提取图片中某种颜色组成的图形的方法
2019/09/19 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
2020/05/20 Python
python编写softmax函数、交叉熵函数实例
2020/06/11 Python
简单了解Python变量作用域正确使用方法
2020/06/12 Python
python中的split、rsplit、splitlines用法说明
2020/10/23 Python
css3一款3D字体带阴影效果的实现步骤
2013/03/20 HTML / CSS
KIKO比利时官网:意大利彩妆品牌
2017/07/23 全球购物
白岩松演讲
2014/05/21 职场文书
计算机应用应届生求职信
2014/07/12 职场文书
2015年企业团支部工作总结
2015/05/21 职场文书
贷款工作证明模板
2015/06/12 职场文书
消防宣传语大全
2015/07/13 职场文书
2016年端午节红领巾广播稿
2015/12/18 职场文书
SQL Server内存机制浅探
2022/04/06 SQL Server
详解Nginx的超时keeplive_timeout配置步骤
2022/05/25 Servers