0
假設我讀過的文件名imgfiles_op
及其相應的標籤labels_op
的張量,我能看到打印與文件名後面的標籤有以下摘錄的batch_size一個一個的batch_size時:如何拼接在tenforflow 2張量
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(coord=coord)
for i in range(2):
print ("Batch= ", i)
pair = tf.convert_to_tensor([imgfiles_op, labels_op]).eval()
print ('imgfile=%s, label=%s' % (pair[0],
pair[1]))
coord.request_stop()
coord.join(threads)
我的問題是如何獲得像這種格式的打印:"<filename> <label>"
。 我沒有得到以下工作,並且運行這個只是掛起。我的想法是列出這樣的對。所以'pair_list
'的大小應該是batch_size。
for i in range(2):
print ("Batch= ", i)
pair_list_op = tf.train.slice_input_producer([imgfiles_op, labels_op],
shuffle=False)
pair_list = sess.run(pair_list_op)
for p in pair_list:
print ('imgfile=%s, label=%s' % (p[0],
p[1]))
問題: 1.爲什麼第二個代碼段掛起?有沒有一種確保任何TF代碼不會掛起的好方法?這種效果令新TF用戶感到沮喪。
- 當然,我可以做到這一點蟒蛇的方式,但我不知道什麼是TF方式這樣做。
謝謝!
謝謝! tf.stack()有幫助!但我想知道更多爲什麼slice_input_producer()不起作用,特別是爲什麼程序掛起。 – galactica
@galactica,我不確定你爲什麼把圖形放在for循環中。 slice_input_producer是一個圖形節點。 for循環應該在sess.run之前。如果你運行sess.run(pair_list_op) - 它應該產生結果。但是,再一次,你最終會以python的方式進行操作。我猜,tf.stack()對你來說是更好的選擇。 – hars