2017-10-19 12 views
0

이미지 분류에 Tensorflow를 사용하는 Java demo working이 있습니다. 그것은 Windows에서 잘 실행되지만 지금은 Java Tomcat 웹 서버에서 웹 서비스로 실행하려고합니다.CentOS Linux에서 Tomcat에서 Tensorflow에 액세스하십시오.

모든 Tensorflow jars를 Tomcat의 lib에 추가했지만 Tensorflow에는 jni 종속성이 있습니다. Tensorflow가 CentOS Linux 서버에서 실행될 수 있도록 설치 및 링크하는 방법을 잘 모르겠습니다.

I have read this하지만 서버에서 Python을 실행할 필요가 없습니다. Java에서 Tensorflow에 액세스하십시오.

+0

Windows에서와 마찬가지로 jni 라이브러리를 제공해야합니다. 라이브러리는'-Djava.library.path = ...'로 지정한 경로에 위치해야합니다. 단 하나의 차이점 : 라이브러리의 이름은'lib.dll'이 아니라'lib.so'입니다. 귀하의 질문이나 링크가 어느 도서관에 알려주지 않습니다. 따라서 우리는 어떤 패키지를 설치할 것인지 말할 수 없습니다. – blafasel

답변

0

방금 ​​더 자세히 살펴 보았습니다.

Simple은 org.tensorflow:tensorflow:1.4.0-rc0 (또는 선호하는 버전)에 의존성을 추가하여 원하는 빌드 도구에 추가하십시오.

이렇게하면 org.tensorflow:libtensorflow_jni:1.4.0-rc0에 대한 의존성이 도입됩니다. 여기에는 다음이 포함됩니다 :

이미 알 수 있듯이, 공식적으로 지원되는 모든 플랫폼에서 JNI를 사용하려면 필요한 모든 바이너리가 이미 포함되어 있습니다. 여기에는 x86_64상의 모든 Linux가 포함됩니다.

raspi 또는 32 비트 CentOS에서 사용하지 않는 한 적절한 빌드 도구를 사용하는 한 저장해야합니다.

유일한 위험은이 라이브러리가 다른 시스템 라이브러리에 종속되어 있다는 것입니다. libtensorflow_framework.soldd에 대한 호출을 보여줍니다 : 시스템에서 이러한 전이 종속성을 찾을 수없는 경우 당신은 아마 tensorflow 이전 버전의 가상 코어의 새로운 시도해야

[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) 

.

관련 문제