我需要初始化一个动态列表,该列表的长度由一个整数给定,我将通过feed_dict将其放入占位符中。
我通过以下代码设置了图表:
num_placeholder = tf.placeholder(tf.int32)
input_data = list()
for _ in range(num_placeholder):
input_data.append(1)
但是得到以下错误:'Tensor' object cannot be interpreted as an integer
如何使用我放入num_placeholder
的int
?
num_placeholder
是Tensor
对象,不能直接用作int
,必须先对其求值。请参阅有关placeholder
方法的文档。
如果要将num_placeholder
对象用作int
,则必须按以下方式对其进行评估:
# create a placeholder
num_placeholder = tf.placeholder(tf.int32)
# create an identity operation
# because same Tensor can not be both fed and fetched
num_op = tf.identity(num_placeholder)
with tf.Session() as sess:
# feed value to placeholder and fetch it
num = sess.run([num_op], feed_dict={num_placeholder: 5})
现在num
将是一个列表[5]
,您可以在循环中使用num[0]
。我不太确定你想实现什么,但如果你的目标是创建一个在运行时提供的自定义长度的向量,下面是如何通过Tensorflow解决的:
num_placeholder = tf.placeholder(tf.int32)
ones_op = tf.ones(shape=[num_placeholder], dtype=tf.int32)
with tf.Session() as sess:
ones = sess.run([ones_op], feed_dict={num_placeholder: 5})
CCD_ 13,参见ones