我一直在使用TensorFlow中矩阵乘法的介绍性示例。
matrix1 = tf.constant([[3., 3.]])
matrix2 = tf.constant([[2.],[2.]])
product = tf.matmul(matrix1, matrix2)
当我打印乘积时,它显示为一个张量对象:
<tensorflow.python.framework.ops.Tensor object at 0x10470fcd0>
但是我怎么知道产品的价值呢?
下面的方法不起作用:
print product
Tensor("MatMul:0", shape=TensorShape([Dimension(1), Dimension(1)]), dtype=float32)
我知道图在会话上运行,但是没有任何方法可以检查张量对象的输出而不在会话中运行图吗?
你应该认为TensorFlow核心程序由两个独立的部分组成:
构建计算图。
运行计算图。
因此,对于下面的代码,您只需构建计算图。
matrix1 = tf.constant([[3., 3.]])
matrix2 = tf.constant([[2.],[2.]])
product = tf.matmul(matrix1, matrix2)
为了初始化TensorFlow程序中的所有变量,你必须显式调用一个特殊操作,如下所示:
init = tf.global_variables_initializer()
现在您构建了图并初始化了所有变量,下一步是计算节点,您必须在会话中运行计算图。会话封装了TensorFlow运行时的控件和状态。
下面的代码创建一个Session对象,然后调用它的run方法来运行足够的计算图来计算product:
sess = tf.Session()
// run variables initializer
sess.run(init)
print(sess.run([product]))