TensorFlow:与tf.add_n等效的产品

时间:2016-06-22 22:24:18

标签: python tensorflow

是否有与tf.add_n等效的产品,返回张量列表的元素乘积?

1 个答案:

答案 0 :(得分:2)

解决方案1:

您可以使用更高阶函数tf.foldl和tf.foldr。这是一个例子:

x = tf.constant([5, 2, 4, 3])
y = tf.constant([2, 2, 1, 6])
z = tf.constant([24, 2, 1, 6])

xyz=[x,y,z]
product = tf.foldl(tf.mul, xyz) 

with tf.Session() as sess:
    print product.eval()

结果: [240 8 4 108]

解决方案2: 您可以使用tf.reduce_prod:

x = tf.constant([5, 2, 4, 3])
y = tf.constant([2, 2, 1, 6])
z = tf.constant([24, 2, 1, 6])

x=tf.reshape(x,[1,-1])
y=tf.reshape(y,[1,-1])
z=tf.reshape(z,[1,-1])
xyz=tf.concat(concat_dim=0, values=[x,y,z])

product = tf.reduce_prod(xyz, reduction_indices=0) 

with tf.Session() as sess:
    print xyz.eval()
    print product.eval()

结果:

XYZ [[5 2 4 3]

[2 2 1 6]

[24 2 1 6]]

产品 [240 8 4 108]