2017-10-17 94 views
0

我在使用tf.load_op_library('readmat.so')時遇到問題,其中readmat.so是我的自定義C++代碼。但我得到了以下錯誤:在張量流中加載自定義操作時出現未定義的符號錯誤

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

PS:此服務器的管理員在1周前進行系統升級後發生錯誤。我不是root用戶。

操作系統:Ubuntu 14.04 Tensorflow:R1.1

有關此問題的任何想法?

+0

我想readmat.so沒有鏈接到libz.so.通過運行'ldd readmat.so'檢查依賴關係,並檢查是否看到libz.so. – SHR

回答

0

@SHD。我是Zichuan Liu,用另一個帳戶與你聯繫。我已經在具有相同操作系統和張量流的另一臺機器上測試了該程序。我以前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時得到了即使是同樣的結果:

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

但前者一個正常工作。

相關問題