吐槽下java部署cnn、rnn、lstm、bi-lstm相關模型的我是碰到了各種坑,相比之前部署xgboost採的坑還要多,記錄下吧,這些底層還是要依賴於c++,java說白了只是個殼,沒有真正實現Tensor、模型相關商務邏輯,下面看下吧。
查看各個版本的gcc版本的資訊:
strings /lib64/libc.so.6 |grep GLIBC_ 查看版本中是否含有2.14、2.17的版本
GLIBC_2.2.5 GLIBC_2.2.6 GLIBC_2.3 GLIBC_2.3.2 GLIBC_2.3.3 GLIBC_2.3.4 GLIBC_2.4 GLIBC_2.5 GLIBC_2.6 GLIBC_2.7 GLIBC_2.8 GLIBC_2.9 GLIBC_2.10 GLIBC_2.11 GLIBC_2.12 GLIBC_2.13
部署過程會碰到 下面這兩個問題
cal/tomcat/temp/libtensorflow_jni5656634183295359135.so: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /usr/local/tomcat/temp/libtensorflow_jni5656634183295359135.so
.UnsatisfiedLinkError: /usr/local/tomcat/temp/libtensorflow_jni5135876021127552243.so: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by
安裝步驟不累贅,安裝glibc-2.17既可以
再部署還會可能碰到這個問題:
cal/tomcat/temp/libtensorflow_jni7225457145314151563.so: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by /usr/local/tomcat/temp/lib
strings /usr/lib64/libstdc++.so.6|grep GLIBCXX 查看3.x版本的GLIBC
GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_3.4.14 GLIBCXX_3.4.15 GLIBCXX_3.4.16 GLIBCXX_3.4.17
可以看到18、19之後的版本沒有,解決辦法安裝最新的gcc6.x版本,具體安裝較為簡單,不累贅。
GLIBC_2.2.5 GLIBC_2.2.6 GLIBC_2.3 GLIBC_2.3.2 GLIBC_2.3.3 GLIBC_2.3.4 GLIBC_2.4 GLIBC_2.5 GLIBC_2.6 GLIBC_2.7 GLIBC_2.8 GLIBC_2.9 GLIBC_2.10 GLIBC_2.11 GLIBC_2.12 GLIBC_2.13 GLIBC_2.14 GLIBC_2.15 GLIBC_2.16 GLIBC_2.17 GLIBC_PRIVATE
GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2