2

java nd4j-native-platform版本0.9.1中使用N4DJ

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

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

    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 的已知问题还是我误解了什么?

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

4

0 回答 0