如果我在我的IPython笔记本中使用它:
import tensorflow as tf
with tf.Session():
input1 = [[1, 2, 3, 5]]
input2 = [[5], [6], [7], [8]]
output = tf.matmul( input1, input2 )
print( output.eval() )
我得到[[78]]
如果我使用以下代码(tf.constant
),我会看到相同的结果:
import tensorflow as tf
with tf.Session():
input1 = tf.constant( [[1, 2, 3, 5]] )
input2 = tf.constant( [[5], [6], [7], [8]] )
output = tf.matmul( input1, input2 )
print( output.eval() )
是否优先于另一个?这是否会改变幕后的计算图,如果是这样,我应该关注哪种方式?
答案 0 :(得分:1)
你的两个案件确实在做同样的事情。一旦有机会,TensorFlow会将任何list / numpy数组转换为张量。例如,对于第一种情况,input1将在tf.matmul
内转换为常量张量,对于第二种情况,会直接在tf.constant
内转换为常量张量。 TensorFlow希望这样做,以便您不必担心从列表转换为张量(如果可能)。例如,任何可以传递给tf.convert_to_tensor
的对象也可以传递给任何TensorFlow函数/方法,该函数/方法接受张量作为参数(有时可以非常方便)。
在这些简单的情况下,如果您的输入值是提前知道的,请随意选择您喜欢的两种输入值。