rohitgirdhar/AttentionalPoolingAction

undefined symbol: _ZTIN10tensorflow8OpKernelE

momo1986 opened this issue · 4 comments

Hello rohit,
Thanks for your algorithm.
I try to use your pretrained model for my video.
Here is my Makefile:
image
No compilation error, but be blocked for evaluation.
I run " python eval.py --cfg ../experiments/002_MPII_ResNet_withAttention_pretrained.yaml"
And got the error:
image

OS: Ubuntu-18
Python: 3.6
CUDA: 9.0
Tensorflow: 1.12
Sorry for disturbance.
Thanks for help!
Best regards!

Looks like it needs to refer to correct boost_lib file and include file.
I can find the boost_include file with
"dpkg -S /usr/include/boost/"
However, how can I find the correct boost library file?
Thanks
Jun Yan

Getting the same error, I've tried looking through previous undefined symbol issues but none of them seem to work.

Update: after modifying the make file, downgrading tensorflow to 1.1 I was able to move past this issue. Here is the beginning of my make file for reference:

BOOST_LIB_DIR := /home/boost_1_69_0/stage/lib
BOOST_INC_DIR := /home/boost_1_69_0
TF_INC := $(shell python -c 'import tensorflow as tf; print(tf.sysconfig.get_include())')
LDFLAGS := -Wl,--no-as-needed,-rpath,$(BOOST_LIB_DIR) -D_GLIBCXX_USE_CXX11_ABI=0 # this ensures it will look in the correct BOOST directory for libs (not the system path)

all: pose_to_heatmap.so zero_out_channels.so render_pose.so render_objects.so

I suggest starting over and following instructions on installing boost / opencv closely.

Update:
After upgrading to tensorflow-gpu 1.12 (because cuda9 isn't supported on 1.1), getting this error again.

Looks like it needs to refer to correct boost_lib file and include file.
I can find the boost_include file with
"dpkg -S /usr/include/boost/"
However, how can I find the correct boost library file?
Thanks
Jun Yan

You can find the boost library in /usr/lib/x86_64-linux-gnu/

And then set your LDFLAGS as @efang96 suggests