caffe问题及解决方法

1 老版本caffe,runtest时候出现"Check failed: error == cudaSuccess (8 vs. 0)  invalid device function".

通过google找到解决方法如下:(1)我的显卡cuda计算能力为5.2,于是再Makefile,config中添加两行"-gencode arch=compute_52,code=sm_52 \
                -gencode arch=compute_52,code=compute_52",solved

(2)Hi @wusx11 , I should say I could solve the problem. Though I have done a fresh re-install of Ubuntu 14.04, yet I think last time I was making a mistake in the Makefile.config file. For cuda 6.0 I was uncommenting line 14 and 15 as instructed. But I was not putting an escape character () at the end of line 13. Could you please try it? If that resolves the problem, then this issue can also be closed.,没有尝试.


2在make run test时候出现如下错误,后来发现

../../build/tools/train_net.bin: error while loading shared libraries: libmkl_rt.so: cannot open shared object file: No such file or directory。

后来发现此文件在/opt/intel/mkl/lib/intel64/ 中,要将此路径加入共享文件库

参照http://blog.chinaunix.net/uid-26212859-id-3256667.html

cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
echo "/opt/intel/mkl/lib/intel64/" >> /etc/ld.so.conf
# ldconfig


3 在使用NIN的cifar10时候可能会出现loss不变的情况

如下图:

原因是:
NIN 里面,把 dropout 用在了 max-pooling 层后面。
而在 caffe 的 cudnn 实现里,dropout 的输出覆盖了 max-pooling 的输出。并且 cudnn 版本的 max-pooling 的后向计算用到了max-pooling 的前向输出结果。但 max-poolling 的前向计算结果已经被 dropout 覆盖掉了。这会导致两种现象,一种是 0.1 学习率时,网络容易发散。二是网络收敛不完全,精度停留在 60 %多, 因为 max-pooling 层的梯度都变成了 0 ,max-pooling 以下的层都不更新了。


解决办法:
其中mask用于记录 max-pooling 的输入的最大值的位置。因为 max-pooling 在求导的时候,只有最大值的位置导数是 1,而其他位置导数是 0。 所以,只需要记住输入的最大值的位置就可以了,无需把输出与输入作比较来求导。

可能在“

 src/caffe/layers/pooling_layer.cu 



4 caffe make runtest出现

Error 1:
src/caffe/util/math_functions.cu(140): error: calling a __host__ function("std::signbit<float> ") from a __global__ function("caffe::sgnbit_kernel<float> ") is not allowed

解决方法:

In caffe/include/caffe/util/math_functions.hpp

try changing

using std::signbit;
DEFINE_CAFFE_CPU_UNARY_FUNC(sgnbit, y[i] = signbit(x[i])); 

to

// using std::signbit;
DEFINE_CAFFE_CPU_UNARY_FUNC(sgnbit, y[i] = std::signbit(x[i]));


——————————————————————————————分隔符————————————————————————————————

以下部分系转载,原文 http://www.cnblogs.com/empty16/p/4828476.html

Caffe编译问题及解决方案汇总:

在编译caffe代码时,之前的各种错误会显现出来,这时候会出现各种各样的问题:

问题1:
Error: 'make all' 'make test'
.build_release/lib/libcaffe.so: undefined reference to cv::imread(cv::String const&, int)' 
.build_release/lib/libcaffe.so: undefined reference tocv::imencode(cv::String const&, cv::_InputArray const&, std::vector >&, std::vector > const&)'

原因:caffe代码中并没有build文件夹,需要新建build文件夹之后再进行编译:

cd caffe-master  #打开caffe所在文件夹
cp Makefile.config.example Makefile.config  #change setting in Makefile.config
mkdir build
cd build
cmake ..
make all -j8  #在build文件夹下进行编译
cd ..
make test -j8 
make runtest -j8  #使用CPU多核同时进行编译

问题2:

CMake Error at cuda_compile_generated_lrn_layer.cu.o.cmake:206 (message)

在成功安装cuda之后,由于路径设置问题,或者路径冲突会产生以下错误,解决方法:

1.在caffe文件夹下,通过下面该命令查看配置路径:

sudo find / -name nvcc

2.通过下面命令查看是否cuda路径冲突:

$PATH

如果显示结果有两个cuda环境变量,那么需要移除旧的路径,更新PATH。

3.重新设置cuda环境变量

在/etc/profile中添加CUDA环境变量

PATH=/usr/local/cuda/bin:$PATH  
export PATH

然后注销或重启(因为注销或重启之后PATH会从 ~/.bash_profile文件中重新读取)

问题3:cuDNN使用

安装 cudnn-6.5-linux-x64-v2.tgz之后,并在Makefile.config中设置

USE_CUDNN := 1

打开CUDNN加速,但是在使用命令

make test -j8

对test进行编译时出现问题,至今未解决。

Linux一些常用命令记录及解释:

1.程序安装

本地安装 命令格式

  sudo dpkg -i softname.deb

其中dpkg为Debian Package的缩写,dpkg常用命令有: -i 安装 ;-r 卸载

dpkg命令是一个底层的安装工具,apt是dpkg上层工具,用于从远程获取软件包以及处理复杂的软件包之间的关系。

apt常用的用法,apt-get后面接install 或remove对软件进行安装和卸载

  apt-get install <package>

2.设置系统root密码

如果使用光盘安装Ubuntu,按照安装向导来进行帐号、分区等设置,而在这个安装向导程序中没有提示进行root密码的设置,所以在 Ubuntu安装好后需要手动设置root密码。而如果是跳过安装向导,点击桌面上的Install图标来进行安装的话,在安装过程中则会提示设置 root密码。当然,如果需要修改root密码也可以使用以下方法:打开终端,在终端中输入命令:

sudo passwd root

接下来,按照提示一步步设置系统的root密码。

[sudo] password for jjxiaoyan:

输入新的 UNIX 口令:

重新输入新的 UNIX 口令:

passwd:已成功更新密码

口令:

3.删除文件夹和文件

在ubuntu里面有些文件夹通过右键方式无法删除,这时候就需要使用命令来进行删除。

删除文件:

cd /usr/local/src      #打开文件所在位置
sudo rm ./file-name  #删除文件

删除文件夹:

cd /usr/local/src
sudo rm -r ./folder-name

3. 使用命令更改文件或文件夹名

sudo mv 旧文件名 新文件名

4. 使用显示内核版本

uname a

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值