Tensorflow如何获得张量值

时间:2016-11-19 14:04:37

标签: python indexing tensorflow

在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

如何解决此错误? 非常感谢您的帮助!

2 个答案:

答案 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))