2017-02-17 75 views
1

我最近從numpy轉換到ND4J,但很難理解ND4J中的廣播是如何工作的。假設我有兩個ndarray,形狀爲[3,2,4,5],形狀爲[2,4,5]。我想元素明智地將它們加起來並將b廣播給每個a[i] for i = 0 to 2。在numpy中它可以簡單地通過a + b來完成,而在ND4J a.add(b)中會引發異常。我試過a.add(b.broadcast(3)),但仍然沒有運氣。在ND4J中使用廣播

在ND4J中做這件事的正確方法是什麼?

回答

0

到目前爲止,我發現的唯一方法如下

var a = Nd4j.createUninitialized(Array(3,2,4,4)) 
var b = Nd4j.createUninitialized(Array(2,4,4)) 
b = b.reshape(1,32) 
b = b.broadcast(3,32) 
b = b.reshape(3, 2, 4, 4) 
a.add(b) 

請您讓​​我知道,如果有更好的方法來做到這一點