我最近从numpy转到了ND4J,但我很难理解ND4J中的广播是如何工作的。
假设我有两个a[i] for i = 0 to 2,a的形状是3,2,4,5,b的形状是2,4,5。我想逐个元素地将它们相加,并将b广播到每个ndarray。在numpy中,它可以简单地通过a + b完成,而在ND4J中,a.add(b)会抛出一个异常。我尝试了a.add(b.broadcast(3)),但还是没有成功。
在ND4J中执行此操作的正确方法是什么?
发布于 2017-02-18 10:53:50
到目前为止,我找到的唯一方法如下
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)如果有更好的方法,请告诉我。
https://stackoverflow.com/questions/42309075
复制相似问题