2017-06-01 50 views
0

鑑於添加維度廣播嗎?

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是 「廣播」 通過tf.add對應bbb(這裏的價值+)。是否添加了將所有廣播的b轉換爲bbb的值的維度,還是其他值?

+0

你讀過[this](https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html)嗎?我真的不明白你的問題 – martianwars

+0

@martianwars:我想我明白了。這個'b'也被廣播:「數組不需要有相同的維數。」可以添加匹配的外部尺寸,直到只是廣播。 (我會拿這個或類似的東西作爲答案。) – orome

回答

0

正如你在評論中提到的,bbb都是有效的廣播形式。正如numpydocumentation,

中提到的那樣,陣列不需要具有相同的維數。