为什么tf.placeholder无法正常工作?
我做了如下,但错误信息是: “InvalidArgumentError(见上文回溯):你必须养活占位符张量‘占位’的值与D型字符串 [节点:占位符= Placeholderdtype = DT_STRING,形状= [],_device = “/职业:本地主机/副本:0 /任务:0/CPU:0”]]“为什么tf.placeholder无法正常工作?
pattern = tf.placeholder(tf.string, shape=[None])
filenames = tf.train.match_filenames_once(pattern[0])
count_num_files = tf.size(filenames)
filename_queue = tf.train.string_input_producer(filenames)
image_reader = tf.WholeFileReader()
image_name, image_file = image_reader.read(filename_queue)
with tf.Session() as sess:
tf.global_variables_initializer().run()
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(coord=coord)
feed_dict = {pattern: ['/home/test/images/*.jpg']}
out = sess.run(image_name, feed_dict)
coord.request_stop()
coord.join(threads)
我觉得每一步都是corret。但它真的不像我所说的那样工作。 有什么不对?我真的需要你的帮助,这让我很困惑。 非常感谢哟!
Suppl。 //////////////////////////// 谢谢下面的朋友给出答案。 另一个问题是如何更改初始占位符值。 看下面的代码,首先我init的placehoder y作为空白'',然后我改变它为字符串模式,但实际上,y总是空白'',没有改变,如何chagne y到另一个值?非常感谢
pattern = '/home/lyp/MyTensorflowData/TestProject/images/*.jpg'
y = tf.placeholder(tf.string)
filenames = tf.train.match_filenames_once(y)
count_num_files = tf.size(filenames)
init_op = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init_op, feed_dict={y: ''})
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(coord=coord)
for epoch in range(3):
print(sess.run(count_num_files, feed_dict={y: pattern}))
coord.request_stop()
coord.join(threads)
我认为问题在于如何初始化变量。实际上,我完全不知道为什么,但这个工作对我来说(v0.1.0):
tf.global_variables_initializes().run(feed_dict)
看来,初始化变量,你需要在feed_dict通过
非常感谢。它在这里工作。但如果我想在循环中更改feed_dict值,它看起来有点难。有什么好主意?' – lemontree
显示我们追溯。 – user2357112