tensorflow tf.train.batch之数据批量读取方式
作者:Webbley 发布时间:2023-12-08 01:11:51
标签:tensorflow,tf.train.batch,数据,读取
在进行大量数据训练神经网络的时候,可能需要批量读取数据。于是参考了这篇文章的代码,结果发现数据一直批量循环输出,不会在数据的末尾自动停止。
然后发现这篇博文说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()
来源:https://blog.csdn.net/liweibin1994/article/details/78306417


猜你喜欢
- 我就废话不多说了,大家还是直接看代码吧~func GetGID() uint64 { b := make([]by
- python可以在处理各种数据时,如果可以将这些数据,利用图表将其可视化,这样在分析处理起来,将更加直观、清晰,以下是 利用 PyEchar
- 最近因为编程,需要大量地看一些说明文档,无奈说明文档都是英文的,可把我这个半桶水折腾死了,太多词汇不知道,一个个复制翻译太麻烦了。于是我根据
- 人脸美白原理人脸美白原理说透了,就是一种图像的颜色空间处理,所以我们需要通过颜色空间进行设计。不过,我们先来参考以下PS对于图像美白的处理步
- fileno()方法返回所使用的底层实现,要求从操作系统I/O操作的整数文件描述符。语法以下是fileno()方法的语法:fil
- 数据库中有张表User,字段是ID和Name,ID自增。 利用存储过程实现插入时返回当前的行数 CREATE PROC Proc_Inser
- 本文实例讲述了Python日志logging模块功能与用法。分享给大家供大家参考,具体如下:本文内容:logging模块的介绍logging
- 今日使用 npm init webpack love 创建一个新项目,然后执行 npm run dev 之后项目报错,提示错误如下:没有给这
- 本文实例为大家分享了python创建单词词库的具体代码,供大家参考,具体内容如下基本思路:以COCA两万单词表为基础,用python爬取金山
- SQLserver 2014 AlwaysOn增强了原有的数据库镜像功能,使得先前的单一数据库故障转移变成以组(多个数据)为单位的故障转移。
- 1.下载Python官网:传送门根据自己的主机环境下载python2.安装下载完后直接安装,安装时自定义安装路径,这里路径要记下来我的安装路
- 本文实例为大家分享了python绘制彩虹图的具体代码,供大家参考,具体内容如下代码:from turtle import *#控制彩虹路径d
- 一、python判断文件和文件夹是否存在、创建文件夹 >>> import os>>> os.
- 一、项目需求前言:BBS上每个id对应一个用户,他们注册时候会填写性别(男、女、保密三选一)。经过检查,BBS注册用户的id对应1-3000
- 1 Series线性的数据结构, series是一个一维数组Pandas 会默然用0到n-1来作为series的index, 但也可以自己指
- 在网页设计中有一些通用的交互设计模式。网站导航各种各样的通用和大家熟知的设计模式,可以用来作为为网站创建有效地信息架构的基础。这篇指南涵盖了
- 1、主题毫无疑问Pycharm是一个具有强大快捷键系统的IDE,这就意味着你在Pycharm中的任何操作,例如打开一个文件、切换编辑区域等,
- 1. 基本介绍tensorflow设备内存管理模块实现了一个best-fit with coalescing算法(后文简称bfc算法)。bf
- 前言相信各位一定有收到过这样的群发短信,据说还被归类为玩转微信的五大技巧之一╮(╯▽╰)╭但,其实,只要跑一下脚本,就轻松找出删除自己的好友
- 由于课题的原因,笔者主要通过 Pytorch 框架进行深度学习相关的学习和实验。在运行和学习网络上的 Pytorch 应用代码的过程中,不少