1
我想从文件名列表中张量流量的队列。列表已经完成,但似乎字符串输入生产者返回了一个空队列。可能还有其他原因,代码不起作用。以下是代码:tensorflow string_input_producer给出了空队列
sess = tf.InteractiveSession()
def read_my_file_format(filename_queue):
reader = tf.WholeFileReader()
key, value = reader.read(filename_queue)
images = tf.image.decode_jpeg(value, channels=3)
return images, key
def input_pipeline(filenames, batch_size, num_epochs, labels):
filename_queue = tf.train.string_input_producer(filenames, num_epochs=num_epochs, shuffle=False)
image, key = read_my_file_format(filename_queue)
return image, key
sess.run(tf.global_variables_initializer())
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(sess = sess, coord = coord, start=True)
input_pipeline(trainnames, batch_size, None, labels)
coord.request_stop()
coord.join(threads)
你能不能也请告诉我如何与图形管线结合?我了解到,我们不能将张量输入图的占位符,在这种情况下,我应该如何给图输入输入?我有两个不同的队列中有一个训练集和一个测试集,是否可以将它们都输入到一个图中?如果我将一个图定义为一个函数,每次我调用它时它会创建一个新图还是返回相同的旧图? – ALeex
基本上,流水线(例如'filename_queue','image','key',...)是图形的一部分。如果您不想使用feed_dict手动提供占位符张量,则可以使用图像张量将其直接输入到图形中。基本上,您只是像使用占位符一样使用您的出列操作。 我会推荐阅读[reading_data部分](https://www.tensorflow.org/programmers_guide/reading_data)并查看示例。 关于您最后的问题,本[部分](https://www.tensorflow.org/programmers_guide/variables)可能会引起您的兴趣。 – npf
感谢您的帮助,我在阅读之前已经阅读了这个问题,但我仍然不确定阅读后应该怎么做。所以我会将filename_queue,image和key添加到图中。我想运行'sess.run([image,key])'会开始出队并通过图表?还是仅仅为了获得没有训练的图像张量?为了制作图表的管道部分,我没有发现如何同时提供训练集和测试集的管道,你知道吗? – ALeex