Faster-RCNN_TF: Undefined symbol in roi_pooling.so

I’m trying to run the demo following the instructions in readme, however, when I run the command

python ./tools/demo.py --model ./lib/pretrained/VGGnet_fast_rcnn_iter_70000.ckpt

I get the error below:

➜ Faster-RCNN_TF git:(master) ✗ python ./tools/demo.py --model ./lib/pretrained/VGGnet_fast_rcnn_iter_70000.ckpt I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcublas.so locally I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcudnn.so locally I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcufft.so locally I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcuda.so.1 locally I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcurand.so locally Traceback (most recent call last): File “./tools/demo.py”, line 11, in <module> from networks.factory import get_network File “/home/denis/WEB/DeepLearning/Faster-RCNN_TF/tools/…/lib/networks/init.py”, line 8, in <module> from .VGGnet_train import VGGnet_train File “/home/denis/WEB/DeepLearning/Faster-RCNN_TF/tools/…/lib/networks/VGGnet_train.py”, line 2, in <module> from networks.network import Network File “/home/denis/WEB/DeepLearning/Faster-RCNN_TF/tools/…/lib/networks/network.py”, line 3, in <module> import roi_pooling_layer.roi_pooling_op as roi_pool_op File “/home/denis/WEB/DeepLearning/Faster-RCNN_TF/tools/…/lib/roi_pooling_layer/roi_pooling_op.py”, line 5, in <module> _roi_pooling_module = tf.load_op_library(filename) File “/usr/local/lib/python2.7/dist-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: /home/denis/WEB/DeepLearning/Faster-RCNN_TF/tools/…/lib/roi_pooling_layer/roi_pooling.so: undefined symbol: _ZN10tensorflow7strings6StrCatB5cxx11ERKNS0_8AlphaNumE


CUDA: 8.0 CuDNN: 5 Python: 2.7.12 Tensorflow: 0.12.0-rc1 GPU: NVidia GeForce 750M (sm_30 architecture)

Due to my setup above, I modified CUDA_PATH in make.sh file to be like this:

CUDA_PATH=/usr/local/cuda-8.0/

and the nvcc instruction to be like this:

	nvcc -std=c++11 -c -o roi_pooling_op.cu.o roi_pooling_op_gpu.cu.cc \
		-I $TF_INC -D GOOGLE_CUDA=1 -x cu -Xcompiler -fPIC $CXXFLAGS \
		-arch=sm_30


Am I doing something wrong?

Could you please help me with running the demo properly?

About this issue

  • Original URL
  • State: closed
  • Created 8 years ago
  • Comments: 18

Commits related to this issue

Most upvoted comments

update g++ line as below: (add -D_GLIBCXX_USE_CXX11_ABI=0 )

g++ -std=c++11 -shared -o roi_pooling.so roi_pooling_op.cc \
	roi_pooling_op.cu.o -I $TF_INC  -D GOOGLE_CUDA=1 -fPIC $CXXFLAGS  -D_GLIBCXX_USE_CXX11_ABI=0 \
	-lcudart -L $CUDA_PATH/lib64

@civilman628 Hi, I added “-D_GLIBCXX_USE_CXX11_ABI=0” as you said. But still have the same problem. How can fix it?

no matter what tensorflow you have, what gcc you this will work : follow this link: http://windstop.tistory.com/155