我收到以下錯誤:如何迭代tensorflow中的張量?
TypeError: 'Tensor' object is not iterable.
我試圖用一個佔位符和FIFOQueue
養活數據。但是這裏的問題是我無法批量處理數據。任何人都可以提供解決方案嗎?
我是TensorFlow中的新成員,混淆了佔位符和張量的概念。
下面是代碼:
#-*- coding:utf-8 -*-
import tensorflow as tf
import sys
q = tf.FIFOQueue(1000,tf.string)
label_ph = tf.placeholder(tf.string,name="label")
enqueue_op = q.enqueue_many(label_ph)
qr = tf.train.QueueRunner(q,enqueue_op)
m = q.dequeue()
sess_conf = tf.ConfigProto()
sess_conf.gpu_options.allow_growth = True
sess = tf.Session(config=sess_conf)
sess.run(tf.global_variables_initializer())
coord = tf.train.Coordinator()
tf.train.start_queue_runners(coord=coord, sess=sess)
image_batch = tf.train.batch(
m,batch_size=3,
enqueue_many=True,
capacity=9
)
for i in range(0, 10):
print "-------------------------"
#print(sess.run(q.dequeue()))
a = ['a','b','c','a1','b1','c1','a','b','c2','a','b','c3',]
sess.run(enqueue_op,{label_ph:a})
b = sess.run(m)
print b
q.close()
coord.request_stop()
我需要使用批處理。那麼你能否提供批量解決方案? – JerryWind
我上面的代碼是一般的想法。您需要[num_batches,batch_size,data_len]的3D張量,然後爲每個批次抓取所需的切片。 – ReverseFall