我的配置:cuda 10.2,tensorflow 13.1.0,python 3.6,gcc 8.4.0
放入训练集和测试集
mkdir data
ln -s /home/lyl/pu/flex-data/train ./data/
ln -s /home/lyl/pu/flex-data/test_2048 ./data/
tf_ops编译文件修改
tf_ops的编译文件有问题,更改后成功跑通的结果如下:
(1)修改compile.sh:
CD:
#!/bin/bash
CUDA=/home/lyl/cuda/cuda-10.2
TF=$(python -c 'import tensorflow as tf; print(tf.sysconfig.get_lib())')
$CUDA/bin/nvcc tf_nndistance_g.cu -o tf_nndistance_g.cu.o -c -O2 -DGOOGLE_CUDA=1 -x cu -Xcompiler -fPIC -std=c++11 -I $TF/include
g++ -std=c++11 tf_nndistance.cpp tf_nndistance_g.cu.o -o tf_nndistance_so.so -shared -fPIC -I $TF/include -lcudart -L $CUDA/lib64 -O2 -I $TF/include/external/nsync/public -L $TF -ltensorflow_framework -D_GLIBCXX_USE_CXX11_ABI=0
sampling:
#/bin/bash
CUDA=/home/lyl/cuda/cuda-10.2
TF=$(python -c 'import tensorflow as tf; print(tf.sysconfig.get_lib())')
$CUDA/bin/nvcc -std=c++11 tf_sampling_g.cu -o tf_sampling_g.cu.o -c -O2 -DGOOGLE_CUDA=1 -x cu -Xcompiler -fPIC
g++ -std=c++11 tf_sampling.cpp tf_sampling_g.cu.o -o tf_sampling_so.so -shared -fPIC -I $TF/include -I $CUDA/include -I $TF/include/external/nsync/public -lcudart -L $CUDA/lib64/ -L $TF -ltensorflow_framework -O2 -D_GLIBCXX_USE_CXX11_ABI=0
grouping:
#/bin/bash
CUDA=/home/lyl/cuda/cuda-10.2
TF=$(python -c 'import tensorflow as tf; print(tf.sysconfig.get_lib())')
$CUDA/bin/nvcc tf_grouping_g.cu -o tf_grouping_g.cu.o -c -O2 -DGOOGLE_CUDA=1 -x cu -Xcompiler -fPIC
g++ -std=c++11 tf_grouping.cpp tf_grouping_g.cu.o -o tf_grouping_so.so -shared -fPIC -I $TF/include -I $TF/include/external/nsync/public -L $TF -ltensorflow_framework -I $CUDA/include -lcudart -L $CUDA/lib64/ -O2 -D_GLIBCXX_USE_CXX11_ABI=0
为啥这么改就好了我也不知道,是参考PU-GCN的编译文件更改的。
之前的报错信息为:
NotFoundError: undefined symbol: _ZN10tensorflow12OpDefBuilder4AttrENSt7__cxx1112basic_stringIcSt11char_traitsIcESa
这三个文件都报了一遍类似的错误。
cd CD
sh compile.sh
(2)修改3个py文件:
print语法有问题,挨个加上括号
修改tf_util_1.py:print语法有问题
修改main.py
(1)更改测试集输出的文件名: