用公司服务器做实验,cuda 出了问题,卸载重装。
根据:点击打开链接 重装caffe和cuda
在 sudo apt-get install cuda 时报错:cuda-7-5 (= 7.5-18) 但是它将不会被安装 E::无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
赶紧搞好,百度到解决方法:
打开更新设置,在“更新”选项卡中选择:重要安全更新 和 推荐更新
并在“其他软件”选项卡中,去掉有问题等源
强调:
独立源那两个和canonial合作伙伴两个的钩要去掉,如图:
最后在命令行里输入
sudo apt-get update
更新一下即可
这之后进行安装都不会有类似问题了
安装好跑mnist的列子,在执行sudo sh examples/mnist/create_mnist.sh
时报以下错误:
examples/mnist/create_mnist.sh: 16: examples/mnist/create_mnist.sh: build/examples/mnist/convert_mnist_data.bin: Permission denied
examples/mnist/create_mnist.sh: 18: examples/mnist/create_mnist.sh: build/examples/mnist/convert_mnist_data.bin: Permission denied
或者以下错误:
./examples/mnist/create_mnist.sh
bash: ./examples/mnist/create_mnist.sh: 权限不够
网上给出的答案就一种:
试了n次无果,百度chmod +x,发现还有chmod a+x (所有用户可执行)
换为:chmod a+x build/examples/mnist/convert_mnist_data.bin
~/caffe-master$ ./examples/mnist/create_mnist.sh
Creating lmdb...
Done.
ok!!!!
接着:
sudo sh examples/mnist/train_lenet.sh
又报错:
error while loading shared libraries: libcudnn.so.7.0: cannot open shared object file: No such file or directory
百度都是这样解决:
lib文件夹是在系统路径里的,用ls -al发现是文件权限的问题,因此用下述命令先删除软连接
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.7.0
然后修改文件权限,并创建新的软连接
sudo chmod u=rwx,g=rx,o=rx libcudnn.so.7.0.78 sudo ln -s libcudnn.so.7.0.78 libcudnn.so.7.0 sudo ln -s libcudnn.so.7.0 libcudnn.so
做了3,4次无果,灵机一动,把config里的#USE_CUDNN := 1注释 ,编译运行,生成模型,说明真是cudnn问题。
接下来解决cudnn的问题,USE_CUDNN := 1打开
在博客http://blog.csdn.net/u011534057/article/details/51115010里找到答案,仅仅一句话:sudo ldconfig
进入cudnn目录,如图:
到caffe目录:
sudo sh examples/mnist/train_lenet.sh
大功告成:
注:
权限代号: r :读权限,用数字4表示 w :写权限,用数字2表示 x :执行权限,用数字1表示 - :删除权限,用数字0表示 s :特殊权限
该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。 1). 文字设定法: chmod [who] [+ | - | =] [mode] 文件名 2). 数字设定法 我们必须首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o)。 例如,如果想让某个文件的属主有“读/写”二种权限,需要把4(可读)+2(可写)=6(读/写)。 数字设定法的一般形式为: chmod [mode] 文件名 数字与字符对应关系如下: r=4,w=2,x=1 若要rwx属性则4+2+1=7 若要rw-属性则4+2=6; 若要r-x属性则4+1=7。 4. 使用实例: 实例1:增加文件所有用户组可执行权限 命令: chmod a+x log2012.log
每次运行同一个程序,不同电脑遇到不一样的问题,折腾之后,搜索能力提高啦。。