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中的Numpy入门教程
Apr 26 Python
Django实现图片文字同时提交的方法
May 26 Python
python django 访问静态文件出现404或500错误
Jan 20 Python
python如何实现一个刷网页小程序
Nov 27 Python
对python:循环定义多个变量的实例详解
Jan 20 Python
基于python实现百度翻译功能
May 09 Python
Python 自动登录淘宝并保存登录信息的方法
Sep 04 Python
Python带参数的装饰器运行原理解析
Jun 09 Python
Python使用socket模块实现简单tcp通信
Aug 18 Python
基于python判断字符串括号是否闭合{}[]()
Sep 21 Python
Pycharm常用快捷键总结及配置方法
Nov 14 Python
详解Python内置模块Collections
Mar 22 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
Cannot modify header information错误解决方法
2008/10/08 PHP
php中判断字符串是否全是中文或含有中文的实现代码
2011/09/16 PHP
探讨php define()函数及defined()函数使用详解
2013/06/09 PHP
基于PHP读取csv文件内容的详解
2013/06/18 PHP
php使用sql数据库 获取字段问题介绍
2013/08/12 PHP
从零开始学YII2框架(二)通过 Composer 安装扩展插件
2014/08/20 PHP
Yii框架在页面输出执行sql语句以方便调试的实现方法
2014/12/24 PHP
jquery+json实现的搜索加分页效果
2010/03/31 Javascript
利用JQuery的load函数动态加载其它页面的内容的实现代码
2010/12/14 Javascript
关于js拖拽上传 [一个拖拽上传修改头像的流程]
2011/07/13 Javascript
javascript之bind使用介绍
2011/10/09 Javascript
js数字转换为float,取N位小数
2014/02/08 Javascript
网站基于flash实现的Banner图切换效果代码
2014/10/14 Javascript
Javascript中call和apply函数的比较和使用实例
2015/02/03 Javascript
Javascript 数组去重的方法(四种)详解及实例代码
2016/11/24 Javascript
微信小程序开发图片拖拽实例详解
2017/05/05 Javascript
微信小程序事件流原理解析
2019/11/27 Javascript
基于Electron实现桌面应用开发代码实例
2020/07/07 Javascript
解决vue中el-tab-pane切换的问题
2020/07/19 Javascript
Vue 列表页带参数进详情页的操作(router-link)
2020/11/13 Javascript
[13:56]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第一场
2018/04/06 DOTA
python二叉树的实现实例
2013/11/21 Python
Python格式化css文件的方法
2015/03/10 Python
使用Python脚本生成随机IP的简单方法
2015/07/30 Python
python matplotlib坐标轴设置的方法
2017/12/05 Python
用python制作游戏外挂
2018/01/04 Python
Python实现打印实心和空心菱形
2019/11/23 Python
Python实现JS解密并爬取某音漫客网站
2020/10/23 Python
Python实现迪杰斯特拉算法并生成最短路径的示例代码
2020/12/01 Python
京东奢侈品:全球奢侈品牌
2018/03/17 全球购物
Banana Republic英国官网:香蕉共和国,GAP集团旗下偏贵族风
2018/04/24 全球购物
Haglöfs瑞典官方网站:haglofs火柴棍,欧洲顶级户外品牌
2018/10/18 全球购物
静态成员和非静态成员的区别
2012/05/12 面试题
债务追讨授权委托书范本
2014/10/16 职场文书
毕业生捐书活动倡议书
2015/04/27 职场文书
CSS中妙用 drop-shadow 实现线条光影效果
2021/11/11 HTML / CSS