ND4J getRows无法在向量上工作

时间:2018-08-20 12:09:14

标签: java nd4j

java nd4j-native-platform 版本 0.9.1

中使用 N4DJ

我试图通过仅选择某些行来创建数组的子集。我使用 getRows 方法执行此操作。

这对于矩阵工作正常,但是当我的矩阵包含单个行向量时,我得到的结果不正确,请参见下面的示例,其中显示了调用方法的方式 与 getRows(int ... rows) 相比, getRow(int i)可以正常工作:

    final INDArray singleRowArray = Nd4j.create(new double[]{1,2,3,4},new int[]{1,4});
    System.out.println(singleRowArray);  //Output: [1.00, 2.00, 3.00, 4.00]

    final INDArray getSingleRowArray = singleRowArray.getRow(0);
    System.out.println(getSingleRowArray); //Output: [1.00, 2.00, 3.00, 4.00] as expected

    final INDArray getSingleRowArrayFromGetRowsSingle = singleRowArray.getRows(0);
    System.out.println(getSingleRowArrayFromGetRowsSingle); //Output: [1.00, 0.00, 0.00, 0.00] expected the same as above

当前的解决方法是检查矩阵是否实际上是单个向量,并调用 getRow 而不是 getRows 方法。

这是N4DJ的已知问题,还是我误会了什么?

请注意,列向量也会遇到类似的问题。

0 个答案:

没有答案