如何使用我提供给tf.eplaceholder(tf.int32)的整数



我需要初始化一个动态列表,该列表的长度由一个整数给定,我将通过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_placeholderint

num_placeholderTensor对象,不能直接用作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

相关内容

最新更新