1、服务器上cuda8.0和cudnn已经配置好, 后来遇到问题,又反复验证了好几次!
2、安装和编译caffe,可参考 Install Caffe With Anaconda
3、编译完caffe,测试和运行项目代码,遇到问题:
F0611 23:50:58.608871 26609 cudnn_conv_layer.cpp:53] Check failed: status == CUDNN_STATUS_SUCCESS (4 vs. 0) CUDNN_STATUS_INTERNAL_ERROR
*** Check failure stack trace: ***
Aborted (core dumped)
这个错误原因网上有很多说法。具体问题具体分析吧,我这是应为没有权限造成的,需要加上sudo。
详细说明下我的情况:
1、我python2.7是使用anaconda安装的,python2.7解释器的路径 是/home/lsz/anaconda2/bin/python2.7, 在我具体项目中使用如下命令运行报错:
python testBatchModel.py input.txt out/
此命令中的python, 就是 /home/lsz/anaconda2/bin/python2.7,
我这情况有些特殊,直接使用: sudo python testBatchModel.py input.txt out/ , 出现 没有caffe包的错误。
是因为, sudo python 调用的是 /user/local/bin/python , 两者调用的不是同一个python解释器。
如果使用: sudo /home/lsz/anaconda2/bin/python2.7 testBatchModel.py input.txt out/, 则不会报错。
2、由于我是使用pycharm远程使用服务器的python解释器, 只需要使pycharm在使用服务器上的 /home/lsz/anaconda2/bin/python2.7解释器时 具有sudo权限即可。 解决方法:
可参考: 以 Root权限运行/调试 PyCharm
更理想的情况应该是以普通用户启动pycharm,运行/调试时 使用root权限,下面说下怎么实现:
sudo visudo -f /etc/sudoers.d/python
在文件中输入如下文字
= (root) NOPASSWD:
我是的是输入:
lsz ALL = (root) NOPASSWD: /home/lsz/anaconda2/bin/python2.7
lsz: 是用户名
#!/bin/bash
sudo xxx/venv/bin/python "$@"
此处我写的是:
#!/bin/bash
sudo /home/lsz/anaconda2/bin/python2.7 "$@"
修改文件权限为可执行
chmod +x python2.7_sudon.sh
启动pycharm,打开工程,选择菜单命令Preferences — Project Interpreter,选择Project Interpreter右边的齿轮图标,在弹出菜单中选择SSH Interpreter(我的是远程使用的),输入IP密码我就不说了,直接在选择解释器的时候,选择 创建的python2.7_sudon.sh,确定后即可。