张量流中[[1,2,3,4]]和tf.constant([[1,2,3,4]])之间有什么区别?

时间:2017-03-28 21:32:26

标签: tensorflow

如果我在我的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() )

是否优先于另一个?这是否会改变幕后的计算图,如果是这样,我应该关注哪种方式?

1 个答案:

答案 0 :(得分:1)

你的两个案件确实在做同样的事情。一旦有机会,TensorFlow会将任何list / numpy数组转换为张量。例如,对于第一种情况,input1将在tf.matmul内转换为常量张量,对于第二种情况,会直接在tf.constant内转换为常量张量。 TensorFlow希望这样做,以便您不必担心从列表转换为张量(如果可能)。例如,任何可以传递给tf.convert_to_tensor的对象也可以传递给任何TensorFlow函数/方法,该函数/方法接受张量作为参数(有时可以非常方便)。

在这些简单的情况下,如果您的输入值是提前知道的,请随意选择您喜欢的两种输入值。