添加维度广播?

Is adding a dimension broadcasting?

给定

a = tf.constant([[1, 2, 3], [10, 20, 30], [100, 200, 300], [1000, 2000, 3000]])

以下都是等价的

b = tf.constant([100000, 200000, 300000])
print((a+b).eval())

bb = tf.constant([[100000, 200000, 300000]])
print((a+bb).eval())

bbb = tf.constant([[100000, 200000, 300000], [100000, 200000, 300000], [100000, 200000, 300000], [100000, 200000, 300000]])
print((a+bbb).eval())

并生产

[[100001 200002 300003]
 [100010 200020 300030]
 [100100 200200 300300]
 [101000 202000 303000]]

我理解bb是"broadcast"到tf.add对应的bbb的值(这里是+)。加个维度把b转换成bbb的值是全广播,还是别的?

正如您在评论中提到的,bbb 都是有效的广播形式。如numpydocumentation,

Arrays do not need to have the same number of dimensions.