在python中我可以使用
a = np.array([[3], [6], [9]])
显然,
a[0][0] = 3
a[1][0] = 6
a[2][0] = 9
但我尝试用tensorflow做同样的事情
import tensorflow as tf
a = tf.Variable(np.array([[3], [6], [9]]))
init = tf.initialize_all_variables()
with tf.Session() as ss:
ss.run(init)
for i in range(3):
print sess.run(a[i][0])
如果我打印它(用于循环),我得到TypeError: 'Variable' object is not callable
如何解决此错误? 非常感谢您的帮助!
答案 0 :(得分:1)
您可以定义另一个依赖于原始变量的op,它包含张量的切片:
import tensorflow as tf
a = tf.Variable(np.array([[3], [6], [9]]))
part = []
for i in range(3):
part.append(a[i][0])
init = tf.initialize_all_variables()
with tf.Session() as ss:
ss.run(init)
for op in part:
print ss.run(op)
答案 1 :(得分:0)
尽管张量流和numpy乍一看非常相似,但是张量流工作流程与numpy的工作流程大不相同。使用张量流时,首先应定义计算图 - 定义张量之间连接的规则。
在您的情况下,图表只包含一个变量a
。定义图形后,您将能够通过运行张量流会话来计算图形中不同节点的值。在您的情况下,要打印值a
,请使用以下代码:
sess = tf.Session()
init = tf.initialize_all_variables()
sess.run(init)
print(sess.run(a))