Caffe编译问题总结

之前因为要修改caffe源码,经常需要重新编译caffe,这里对遇到的问题做一个总结。

编译中出现红色的error错误:unsupported GNU version! gcc versions later than 4.9 are not supported! 

解决方法:按要求安装一个低版本的gcc,然后在makefile.config重新制定gcc路径为刚刚安装的路径(网上也有人直接修改cuda源码去掉限制)。重新编译,问题解决。

 ... opencv/lib/libopencv_gpu.so: undefined reference to av_free_packet@...

这个问题经查阅资料发现有各种版本,这里是找不到ffmpeg库的问题。

解决方法:方法一、重设环境变量,让编译器能找到所需的文件。方法二、在makefile.config里加一句:

LINKFLAGS := -Wl,-rpath,YourPath/ffmpeg/lib

之后出现找不到opencv lib中的文件,同样用上边的办法解决(虽然可以过但似乎解决不彻底,推荐方法一)。

采用-j多线程编译时,可能会出现以下错误:fatal error: caffe/proto/caffe.pb.h: No such file or directory 

解决方法:首先注意开的线程数不能过大。一般来说先执行make clean即可,如果不行的话可以在caffe根目录下执行以下命令:

protoc src/caffe/proto/caffe.proto --cpp_out=.
mkdir include/caffe/proto
mv src/caffe/proto/caffe.pb.h include/caffe/proto

再进行make clean和make all -j8,可以正常编译了。

最后编译通过,可以通过以下命令进行检验。

cd caffe
./build/tools/caffe.bin

 

使用中出现的一个问题:训一个模型中途强退了,再训提示找不到shared library。

解决办法:一开始遇到不清楚原因,就重新编译了。后来发现是进程没退干净,还在训着,如果换了个终端就找不到那个进程了。用ps -aux | grep “文件名”找到那个pid,kill掉。再用nvidia-smi追查,保证彻底关掉。可以重启terminal,更新一下环境变量,重启训练,问题解决! 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值