2017-10-17 4 views
0

tf.load_op_library('readmat.so')을 사용할 때 문제가 발생했습니다. 여기서 readmat.so은 내 사용자 정의 C++ 코드입니다.tensorflow에서 사용자 정의 연산을로드 할 때 정의되지 않은 기호 오류

[email protected]:~/my_files/CRNN$ python ctpn_cl_icdar15_ch2_train_v1_7.py 
Traceback (most recent call last): 
    File "ctpn_cl_icdar15_ch2_train_v1_7.py", line 13, in <module> 
    import ICDAR15_ch2_768x768 as icdar15 
    File "./datasets/ICDAR15_ch2_768x768.py", line 15, in <module> 
    readmat = tf.load_op_library('/export/home/gslin/my_files/tensorflow/bazel-bin/tensorflow/core/user_ops/readmat.so') 
    File "/export/home/gslin/.local/lib/python2.7/site-packages/tensorflow/python/framework/load_library.py", line 64, in load_op_library 
    None, None, error_msg, error_code) 
tensorflow.python.framework.errors_impl.NotFoundError: /export/home/gslin/my_files/tensorflow/bazel-bin/tensorflow/core/user_ops/readmat.so: undefined symbol: inflateInit_ 

기호 inflateInit_/usr/include/zlib.h에 정의되어, readmat.cc에 inclued됩니다 :하지만 다음과 같은 오류가 발생했습니다.

추 신 :이 서버의 관리자가 1 주 전에 시스템을 업그레이드 한 후 오류가 발생했습니다. 나는 루트 사용자가 아니다.

시스템 : 우분투 14.04 Tensorflow : R1.1

이 문제에 대한 어떤 생각?

+0

나는 readmat.so가 libz.so와 연결되지 않았을 것으로 생각한다. 'ldd readmat.so'를 실행하여 의존성을 확인하고 libz.so.가 있는지 확인하십시오. – SHR

답변

0

@SHD. 저는 Zichuan Liu입니다. 연락을 위해 다른 계좌를 사용하고 있습니다. 동일한 OS 및 tensorflow를 가진 다른 컴퓨터에서 프로그램을 테스트했습니다.

[email protected]:~/my_files/tensorflow$ ldd bazel-bin/tensorflow/core/user_ops/readmat.so 
linux-vdso.so.1 => (0x00007ffc2769d000) 
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f1fa168e000) 
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f1fa137c000) 
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1fa0fb6000) 
/lib64/ld-linux-x86-64.so.2 (0x000055c72d6af000) 
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f1fa0da0000) 

그러나 전 한 일을 제대로 : ldd를 사용할 때 난 같은 결과를 가지고, 내가 문제를 만난 시스템에서

[email protected]:~$ ldd ~/tools/tensorflow/tensorflow/bazel-bin/tensorflow/core/user_ops/readmat.so 
linux-vdso.so.1 => (0x00007ffeda9b4000) 
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fd1526fb000) 
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fd1523e9000) 
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd15201f000) 
/lib64/ld-linux-x86-64.so.2 (0x000055bb007c5000) 
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fd151e08000) 

: 나는 종속성을 확인 ldd 명령을 사용하고있어 .

관련 문제