我需要在图表中循环不同的时间。我无法通过feed_dict传递整数变量。
rough1 = tf.Graph()
with rough1.as_default():
st = tf.placeholder(tf.float32,shape = ())
d = tf.Variable(0)
for i in range(st):
d = tf.add(d,1)
with tf.Session(graph = rough1) as sess:
sess.run(tf.initialize_all_variables())
s = sess.run([d], feed_dict={st:3})
print s
答案 0 :(得分:0)
构建Tensorflow图时,在调用tf.Session.run
之前,实际上不会对图表进行评估。这样做的结果是像range
这样的Python结构无法通过调用Tensor
来检查除{/ 1>之外的run()
的值。在这里,range(st)
要求st
的值是Python已知的整数,但在图实际执行之前,st
的值是未知的。
换句话说:构建图表的代码不得依赖于该图表的评估。
但是在这里,你可以使用Python整数而不是Tensor,一切正常:
rough1 = tf.Graph()
with rough1.as_default():
d = tf.Variable(0)
for i in range(3):
d = tf.add(d,1)
with tf.Session(graph = rough1) as sess:
sess.run(tf.initialize_all_variables())
s = sess.run([d])
print s
希望有所帮助!
答案 1 :(得分:0)
试试这个,看看它是不是你想要的。
st=1
rough1 = tf.Graph()
with rough1.as_default():
d = tf.Variable(0)
for i in range(st):
d = tf.add(d,1)
with tf.Session(graph = rough1) as sess:
sess.run(tf.initialize_all_variables())
s = sess.run([d])
print s