Je viens de regarder de plus près.
Simple ajouter une dépendance à org.tensorflow:tensorflow:1.4.0-rc0
(ou quelle que soit la version que vous préférez) à votre outil de construction favori.
Cela va introduire une dépendance à org.tensorflow:libtensorflow_jni:1.4.0-rc0
. Cela comprendra les éléments suivants:
[email protected]:~$ unzip -t .m2/repository/org/tensorflow/libtensorflow_jni/1.4.0-rc0/libtensorflow_jni-1.4.0-rc0.jar
Archive: .m2/repository/org/tensorflow/libtensorflow_jni/1.4.0-rc0/libtensorflow_jni-1.4.0-rc0.jar
testing: META-INF/ OK
testing: META-INF/MANIFEST.MF OK
testing: org/ OK
testing: org/tensorflow/ OK
testing: org/tensorflow/native/ OK
testing: org/tensorflow/native/darwin-x86_64/ OK
testing: org/tensorflow/native/linux-x86_64/ OK
testing: org/tensorflow/native/windows-x86_64/ OK
testing: org/tensorflow/native/darwin-x86_64/libtensorflow_framework.so OK
testing: org/tensorflow/native/darwin-x86_64/LICENSE OK
testing: org/tensorflow/native/darwin-x86_64/libtensorflow_jni.dylib OK
testing: org/tensorflow/native/linux-x86_64/libtensorflow_framework.so OK
testing: org/tensorflow/native/linux-x86_64/libtensorflow_jni.so OK
testing: org/tensorflow/native/linux-x86_64/LICENSE OK
testing: org/tensorflow/native/windows-x86_64/tensorflow_jni.dll OK
testing: org/tensorflow/native/windows-x86_64/LICENSE OK
testing: META-INF/maven/ OK
testing: META-INF/maven/org.tensorflow/ OK
testing: META-INF/maven/org.tensorflow/libtensorflow_jni/ OK
testing: META-INF/maven/org.tensorflow/libtensorflow_jni/pom.xml OK
testing: META-INF/maven/org.tensorflow/libtensorflow_jni/pom.properties OK
No errors detected in compressed data of .m2/repository/org/tensorflow/libtensorflow_jni/1.4.0-rc0/libtensorflow_jni-1.4.0-rc0.jar.
Comme vous pouvez le voir contient déjà tous les binaires nécessaires pour obtenir JNI travailler sur toutes les plateformes prises en charge officiellement. Cela contient n'importe quel Linux sur x86_64.
Tant que vous n'essayez pas de l'utiliser sur un raspi ou sur CentOS 32 bits et tant que vous utilisez un outil de construction approprié, vous devriez enregistrer.
Le seul risque réside dans les dépendances de ces bibliothèques sur d'autres bibliothèques système. Un appel à ldd
sur libtensorflow_framework.so
montre:
[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)
Si vous ne trouvez pas ces dépendances transitif sur votre système, vous devriez probablement essayer une ancienne version de tensorflow ou une version plus récente de CentOS.
Vous devez fournir la bibliothèque jni comme vous l'avez fait sous Windows. La bibliothèque doit être placée sur le chemin que vous spécifiez avec '-Djava.library.path = ...'. Une seule différence: La bibliothèque s'appelle 'lib.so', pas' lib.dll'. Ni votre question ni le lien ne nous disent quelle bibliothèque. Nous ne pouvons donc pas vous dire quel paquet installer. – blafasel