PCA не работает с ND4J: BLAS не найден?
Я использую ND4J на Windows, чтобы сделать PCA на матрице, но я думаю, что ND4J не может найти библиотеку BLAS.
Я установил OpenBLAS с MinGW (make
затем make PREFIX=C:/OpenBLAS install
), и добавил C:\OpenBLAS\bin
(где находится libopenblas.dll) в переменную среды PATH. проведение where 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, поэтому я буду обновлять свои библиотеки, пытаясь решить мою проблему.
1 ответ
С помощью Алекса Блэка по адресу https://gitter.im/deeplearning4j/deeplearning4j я обнаружил, что использую старую версию ND4J.
Переход на более новую версию (и установка бэк-энда) решил проблему.