Nd4j permute不会置换 - 我做错了什么?

时间:2018-04-07 16:19:25

标签: java nd4j

我正在尝试按照documentation(实际指向mathworks的链接)中的描述来置换数组。

但我的代码不会重现结果。实际上,似乎我的代码什么也没做:

INDArray foobar = Nd4j.linspace(0, 2, 3);
System.out.println("foobar = " + foobar);
System.out.println("foobar.permute(2, 1, 0) = " + foobar.permute(2, 1, 0));

foobarfoobar.permute的输出相同。 我在哪里陷入困境?

可选:有关如何使用更高维度(如2d或3d矩阵)进行置换工作(语法方式)的任何信息都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

根据您链接的文档,permute方法用于置换多维数组的维度。 Nd4j.linspace创建一个向量(一维数组)。由于只有一个维度,因此没有其他维度可以对其进行置换。另一方面,Mathworks上的示例创建了一个三维数组,并置换了第一维和第三维。

听起来你的意图是要置换数组的各个元素(而不是整个维度)。我还没有在Nd4j中看到过这种方法。