pycaffe编译问题归纳

pycaffe编译问题归纳

问题1
fatal error: pyconfig.h: 没有那个文件或目录

解决方法
A、如果使用系统默认的python路径,那么导入python3

make clean
export CPLUS_INCLUDE_PATH=/usr/include/python3.5
make all 

B、如果使用Anaconda ,那么导入

make clean
export CPLUS_INCLUDE_PATH=/home/hp/anaconda3/include/python3.5m
make all 

问题2
fatal error: pyconfig.h: 没有那个文件或目录

解决方法
A、如果使用系统默认的python路径,那么导入python3

make clean
export CPLUS_INCLUDE_PATH=/usr/include/python3.5
make all 

B、如果使用Anaconda ,那么导入

make clean
export CPLUS_INCLUDE_PATH=/home/hp/anaconda3/include/python3.5m
make all 

问题3
nvcc fatal : Unsupported gpu architecture 'compute_20’

解决方法(我自身显卡为2070super,为Turing架构,故以此为例,30系显卡可改为Ampere)
修改caffe源码中的cuda.cmake文件中的
1、第7行

set(Caffe_known_gpu_archs " 20 21(20) 30 35 60 61")

改为

set(Caffe_known_gpu_archs " 75")

2、第59行

  set(__archs_names  "Kepler" "Maxwell" "Pascal"  "All" "Manual")

改为

  set(__archs_names "Fermi" "Kepler" "Maxwell" "Pascal" "Turing" "All" "Manual")

3、并在93行下添加

  elseif(${CUDA_ARCH_NAME} STREQUAL "Turing")
    set(__cuda_arch_bin "75 75")

问题4
编译caffe时提示未定义的引用(undefined reference to)

解决方法
该问题是系统库中已经存在libcaffe.so文件,将该文件删除即可

cd usr/lib
sudo find libcaffe.so
sudo rm libcaffe.so*
cd ..

然后转到caffe文件夹下重新编译

cd /你的caffe地址/
make clean
make pycaffe

问题5
*编译caffe时提示./include/caffe/common.cuh(9): error: function "atomicAdd(double , double)" has already been defined

解决方法
修改include/caffe/common.cuh文件

#ifndef CAFFE_COMMON_CUH_
#define CAFFE_COMMON_CUH_

#include 

  #if !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 600

  #else
  static __inline__ __device__ double atomicAdd(double *address, double val) {
    unsigned long long int* address_as_ull = (unsigned long long int*)address;
    unsigned long long int old = *address_as_ull, assumed;
    if (val==0.0)
      return __longlong_as_double(old);
    do {
      assumed = old;
      old = atomicCAS(address_as_ull, assumed, __double_as_longlong(val +__longlong_as_double(assumed)));
    } while (assumed != old);
    return __longlong_as_double(old);
  }


  #endif
#endif

libmatio.so.11: cannot open shared object file: No such file or directory
问题6
编译caffe时提示ibmatio.so.11: cannot open shared object file: No such file or directory

解决方法
该问题为LD对于动态库的搜索路径寻找不到

export LD_LIBRARY_PATH=对应动态库地址(例:/home/tony/matio-1.5.21/build/

再重新编译
make all

问题7
caffe运行时报错libmatio.so.2: cannot open shared object file: No such file or directory

解决方法
首先

cd etc/local/lib

在该路径下查找是否有这个库文件,存在则已安装,没有说明该库不存在
A、如果没有安装该库

sudo apt-get install libmatio2
luarocks install matio

B、已经安装该库,依然报错
(1)方法一

sudo gedit  /etc/ld.so.conf

在最后一行添加

include /usr/local/lib

再在命令行窗口执行

ldconfig

(2)方法二
通过软件链接解决

ln -s /usr/local/lib/libmatio.so.2 /usr/lib/libmatio.so.2

问题7
caffe或pycaffe编译时报错
/usr/bin/ld: 找不到 -lopencv_imgcodecs3
/usr/bin/ld: 找不到 -lopencv_core3
/usr/bin/ld: 找不到 -lopencv_highgui3
/usr/bin/ld: 找不到 -lopencv_imgproc3

解决方式

cd caffe #你的caffe根目录
gedit Makefie

使用ctrl+f查找opencv_imgcodecs3
将其所在语句改为下图所示(##为原语句,其上方为修改语句)pycaffe编译问题归纳_第1张图片
保存Makefile文件后重新编译即可解决

你可能感兴趣的:(caffe,深度学习,人工智能)