gpt4 book ai didi

TensorFlow shuffle_batch 不工作

转载 作者:行者123 更新时间:2023-12-03 16:44:23 26 4
gpt4 key购买 nike

import tensorflow as tf
sess = tf.Session()

def add_to_batch(image):

print('Adding to batch')
image_batch = tf.train.shuffle_batch([image],batch_size=5,capacity=11,min_after_dequeue=1,num_threads=1)

# Add to summary
tf.image_summary('images',image_batch)

return image_batch

def get_batch():

# Create filename queue of images to read
filenames = [('/media/jessica/Jessica/TensorFlow/Practice/unlabeled_data_%d.png' % i) for i in range(11)]
filename_queue = tf.train.string_input_producer(filenames)
reader = tf.WholeFileReader()
key, value = reader.read(filename_queue)

# Read and process image
my_image = tf.image.decode_png(value)
my_image_float = tf.cast(my_image,tf.float32)
image_mean = tf.reduce_mean(my_image_float)
my_noise = tf.random_normal([96,96,3],mean=image_mean)
my_image_noisy = my_image_float + my_noise
print('Reading images')

return add_to_batch(my_image_noisy)

def main ():

sess.run(tf.initialize_all_variables())
tf.train.start_queue_runners(sess=sess)
writer = tf.train.SummaryWriter('/media/jessica/Jessica/TensorFlow/Practice/summary_logs', graph_def=sess.graph_def)
merged = tf.merge_all_summaries()
images = get_batch()
summary_str = sess.run(merged)
writer.add_summary(summary_str)

你好,

我正在尝试在 TensorFlow 中构建一个简单的神经网络。我正在尝试批量加载我的输入图像。现在我用 11 张图像和 batch_size = 5 测试代码。最终我将处理 100000 张图像。

这段代码修改自 TensorFlow 的 cifar10.py 示例。出于某种原因,我的代码在 tf.train.shuffle_batch([image],batch_size=5,capacity=1,min_after_dequeue=1,num_threads=1) 停止(不终止,它只是卡在那里)

我已经尝试了 batch_size、capacity、min_after_dequeue 等的不同组合,但我仍然无法弄清楚哪里出了问题。

任何帮助将不胜感激!谢谢!

最佳答案

看起来问题的出现是因为语句

tf.train.start_queue_runners(sess=sess)

...在创建任何队列运行器之前执行。如果您在 images = get_batch() 之后移动此行,您的程序应该可以运行。

这里有什么问题? tf.train.shuffle_batch()函数内部使用 tf.RandomShuffleQueue生产随机批处理。目前,将元素放入该队列的唯一方法是运行一个调用 q.enqueue() 的步骤。操作。为了使这更容易,TensorFlow 有一个概念 "queue runners"在构建图形时隐式收集,然后通过调用 tf.train.start_queue_runners() 开始。但是,调用 tf.train.start_queue_runners() 只会启动当时已定义的队列运行器,因此它必须在创建队列的代码之后运行者。

关于TensorFlow shuffle_batch 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35714832/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com