TensorFlow 广播

TensorFlow broadcasting

广播是使具有不同形状的数组具有适合算术运算的形状的过程。在 numpy 中,我们可以广播数组。 TensorFlow graph 是否支持类似于 numpy 的广播?

简短的回答是肯定的。

c.f。 Tensorflow 数学 doc

Note: Elementwise binary operations in TensorFlow follow numpy-style broadcasting.

c.f。 tf.add() doc, or tf.multiply() doc, 等等:

NOTE: [the operation] supports broadcasting. More about broadcasting here

是的,它受支持。打开一个终端并试试这个:

import tensorflow as tf

#define tensors
a=tf.constant([[10,20],[30,40]]) #Dimension 2X2
b=tf.constant([5])
c=tf.constant([2,2])
d=tf.constant([[3],[3]])

sess=tf.Session() #start a session

#Run tensors to generate arrays
mat,scalar,one_d,two_d = sess.run([a,b,c,d])

#broadcast multiplication with scalar
sess.run(tf.multiply(mat,scalar))

#broadcast multiplication with 1_D array (Dimension 1X2)
sess.run(tf.multiply(mat,one_d))

#broadcast multiply 2_d array (Dimension 2X1)
sess.run(tf.multiply(mat,two_d))

sess.close()