在ND4J中使用广播

时间:2017-02-17 23:20:31

标签: numpy multidimensional-array nd4j

我最近从numpy切换到ND4J,但很难理解ND4J中的广播是如何工作的。

假设我有两个ndarray,一个形状[3,2,4,5]和形状[2,4,5]的b。我想以元素方式添加它们并向每个a[i] for i = 0 to 2广播b。在numpy中,它可以通过a + b完成,而在ND4J中a.add(b)会抛出异常。我试过a.add(b.broadcast(3)),但仍然没有运气。

在ND4J中执行此操作的正确方法是什么?

1 个答案:

答案 0 :(得分: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)

如果有更好的方法,请告诉我