2017-08-26 9 views
0

私は現在、keras 1.2で訓練したモデルをインポートするためにdl4j(deeplearning4j)を取得しようとしています。単純なDL4Jコードを実行しているときのExceptionInInitializerError

これは私のコードです:

public static void main(String[] args) 
{ 
    try { 
     MultiLayerNetwork network = KerasModelImport.importKerasSequentialModelAndWeights(
       "C:\\Users\\A\\Documents\\GitHub\\DevanagriRecognizer\\model_keras1.h5"); 
     System.out.println("Hello World!"); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } catch (InvalidKerasConfigurationException e) { 
     e.printStackTrace(); 
    } catch (UnsupportedKerasConfigurationException e) { 
     e.printStackTrace(); 
    } 
} 

私は依存関係を処理するためにMavenを使用していて、これはそれを使用して私の最初の時間です。

上記のコードを実行すると、UnsatisfiedLinkErrorによって引き起こされるExceptionInInitializerErrorが発生します。java.library.pathにjnind4jcpuはありません。

これは、依存関係がないように見えますが、私はそれをどのように修正するか考えていません。

これは私のpom.xmlです:https://pastebin.com/FzAMwA0z

そして、これは私の完全なスタックトレースです:ところでhttps://pastebin.com/a2kyUtch

、私は、64ビットのWindows 10

答えて

0

何らかの理由で、dl4j.versionを0.8.1-SNAPSHOTから0.8.0に変更して修正しました。理由はまだ分かりませんが、うまくいきます。

0
上のJava 1.8u101でIntelliJのを使用しています

私はdl4jにあまり興味がありません。しかし、これと既存のリダイレクト複数:この設定次maven-shade-pluginを使用してビルド

<dependency> 
    <groupId>org.nd4j</groupId> 
    <artifactId>nd4j-native-platform</artifactId> 
    <version>${dl4j.version}</version> 
    <classifier>windows-x86_64</classifier> 
</dependency> 
  • https://github.com/deeplearning4j/dl4j-examples/blob/master/dl4j-examples/pom.xml#L160

  • thisに従ってください

    1. はおそらくとしてnd4j-native-platformための分類子を指定してみてくださいfor:

    The workaround consists in either:

    changing tmp permission changing tmp location.

    Define TMP, TMPDIR and TEMP to a new directory, add -Djava.io.tmpdir=${TMPDIR} to the java command.

    troubleshootおよびそのwikiにさらにソースをリンクします。

  • 0

    ここではkerasは問題ではなく、このスタックトレースにはあまり関係ありません。どこかでLD_LIBRARY_PATHに依存しています。

    Windowsを使用している場合、に見て:共通の問題は、アナコンダとMKLある https://github.com/bytedeco/javacpp-presets/wiki/Debugging-UnsatisfiedLinkError-on-Windows

    -Djava.library.path =「」

    上記

    システムプロパティと呼ばれます:あなたはそれを使用している場合は、周りに他の仕事はして空にし、ライブラリパスを設定することです。ランタイム設定でそれを設定します。

    関連する問題