2017-10-19 15 views
0

Tensorflowを画像分類に使用するJava demo workingがあります。 Windows上では正常に動作しますが、今はJava Tomcat WebサーバーからWebサービスとして実行したいと考えています。CentOS LinuxのTomcatからのTensorflowへのアクセス

TomcatのlibにすべてのTensorflow jarファイルを追加しましたが、Tensorflowにはjni依存関係があります。私はこれをインストールしてリンクする方法がわからないので、CentOS LinuxサーバーでTensorflowを実行できます。

I have read thisしかし、私はサーバー上でPythonを実行する必要はありません。JavaからTensorflowにアクセスするだけです。

+0

Windowsでの操作と同じように、jniライブラリを提供する必要があります。ライブラリは '-Djava.library.path = ...'で指定したパス上に置く必要があります。単一の違い:ライブラリの名前は 'lib.dll'ではなく' lib.so'です。あなたの質問やリンクはどちらの図書館にも教えてくれません。そのため、どのパッケージをインストールするかはわかりません。 – blafasel

答えて

0

私はちょっと見ていました。

シンプルにあなたが好きなビルドツールにorg.tensorflow:tensorflow:1.4.0-rc0(または好きなバージョン)に依存関係を追加します。

これはorg.tensorflow:libtensorflow_jni:1.4.0-rc0に依存します。

このように、正式にサポートされているすべてのプラットフォームでJNIを使​​用するために必要なバイナリがすべて含まれています。これにはx86_64上のLinuxが含まれています。

raspiまたは32ビットCentOSで使用しないで、適切なビルドツールを使用している限り、保存する必要があります。

唯一のリスクは、これらのライブラリが他のシステムライブラリに依存することにあります。 libtensorflow_framework.soショーでlddへの呼び出し:あなたはあなたのシステム上でこれらの推移の依存関係が見つからない場合は

[email protected]:~$ ldd org/tensorflow/native/linux-x86_64/libtensorflow_framework.so 
    linux-vdso.so.1 => (0x00007ffffaa62000) 
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f07c6494000) 
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f07c6290000) 
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f07c6073000) 
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f07c5cf0000) 
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f07c5ada000) 
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f07c5710000) 
    /lib64/ld-linux-x86-64.so.2 (0x000056525c661000) 

おそらくtensorflowの旧バージョンまたはCentOSのの新しいを試してみてください。

関連する問題