java - PCA 失败,ND4J : BLAS not found?

标签 java blas nd4j

我在 Windows 上使用 ND4J 对矩阵进行 PCA,但我认为 ND4J 找不到 BLAS 库。

我使用 minGW 安装了 OpenBLAS(make 然后 make PREFIX=C:/OpenBLAS install),并将 C:\OpenBLAS\bin (其中 libopenblas.dll 所在的位置)添加到 PATH 环境变量中。 执行 libopenblas.dll 返回的位置

C:\Program Files\Java\jdk1.8.0_111\bin\libopenblas.dll
C:\OpenBLAS\bin\libopenblas.dll

所以我很惊讶地发现 OpenBLAS 已经安装了。

我的Java代码如下:

INDArray traceMatrix = /* my data matrix */;
int keptFeatures = 10;
INDArray pcaFactors = PCA.pca(traceMatrix, keptFeatures, false);

错误的堆栈是:

java.lang.UnsupportedOperationException
    at org.nd4j.linalg.factory.BaseBlasWrapper.geev(BaseBlasWrapper.java:470)
    at org.nd4j.linalg.eigen.Eigen.eigenvectors(Eigen.java:100)
    at org.nd4j.linalg.dimensionalityreduction.PCA.pca(PCA.java:62)
    at [myCode:line where the pca() method is called]

您知道如何解决此问题吗?

如果这有帮助的话,我正在使用 Eclipse。

编辑:我使用的是过时版本的 ND4J,因此我将更新我的库,尝试解决我的问题。

最佳答案

在 Alex Black 的帮助下 https://gitter.im/deeplearning4j/deeplearning4j ,我发现我使用的是旧版本的ND4J。

切换到较新的版本(并安装后端)解决了问题。

关于java - PCA 失败,ND4J : BLAS not found?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50408465/

相关文章:

java - 我需要同步这个吗

numpy - Scipy Sparse 是否使用(稀疏)BLAS 库?

c++ - cblas gemm 时间取决于输入矩阵值 - Ubuntu 14.04

java - Spring Boot 在存在 schema.sql 的情况下创建实体之前运行 data.sql

java - Weblogic "java.lang.IllegalArgumentException: Unknown bean state 0"异常

c++ - 如果我使用 BLAS/cuBLAS 以使其性能优于普通 C/CUDA,矩阵应该有多大?

scala - 如何为 nd4j 和 deeplearning4j 设置 scala sbt 项目

java - 尝试使用 Cuda 运行 Nd4j 时出错

java - 在哪里可以找到 DL4J - INDArray 相关操作的已安装头文件?

在本地机器上使用 Eclipse 和远程调试的 Java 热交换