【问题标题】:Using broadcast in ND4J在 ND4J 中使用广播
【发布时间】:2017-07-07 15:18:10
【问题描述】:

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

假设我有两个 ndarray,形状为 [3,2,4,5] 的 a 和形状为 [2,4,5] 的 b。我想按元素将它们加起来并将 b 广播到每个a[i] for i = 0 to 2。在 numpy 中,它可以通过 a + b 简单地完成,而在 ND4J 中,a.add(b) 会引发异常。我尝试了a.add(b.broadcast(3)),但仍然没有运气。

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

【问题讨论】:

    标签: numpy multidimensional-array nd4j


    【解决方案1】:

    目前我发现的唯一方法如下

    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)
    

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

    【讨论】:

      猜你喜欢
      • 2019-05-06
      • 1970-01-01
      • 2021-08-03
      • 1970-01-01
      • 1970-01-01
      • 2016-06-18
      • 1970-01-01
      • 1970-01-01
      • 2011-08-17
      相关资源
      最近更新 更多