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()
广播是使具有不同形状的数组具有适合算术运算的形状的过程。在 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()