总说
采用的Ubuntu是14.04, 安装的cuda是7.5的cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64。cudnn是7.5 的, cudnn-7.5-linux-x64-v5.0-ga.tgz。
参考:链接:https://github.com/jcjohnson/neural-style/blob/master/INSTALL.md
neural-style
其实这篇已经讲的很清楚怎么安装了,但是安装时还是碰到了不少坑。
坑1:torch的依赖库很多!!
curl -s https://raw.githubusercontent.com/torch/ezinstall/master/install-deps | bash
curl -s https://raw.githubusercontent.com/torch/ezinstall/master/install-deps | bash
运行这个时,一定会经过较长时间的安装!!!!由于我这里的网很差,所以如果你的也有类似的情况,那么可能会出现:“xxx 校验和不符”。这时说明完全没有安装依赖库好吧!!我以前以为已经装好了,直接下完neural-style,然后./install.sh。我擦,结果出现什么cmake not found之类的。然后我还傻乎乎的去 sudo apt-get install cmake。结果又出现其他乱七八糟的,现在就是一句话:curl -s https://raw.githubusercontent.com/torch/ezinstall/master/install-deps | bash是把所有的依赖库都会安装好!!并且安装完之后会有类似提示:“torch dependencies have already installed.”
坑2:安装cuda,版本不符
wget http://developer.download.nvidia.com/compute/cuda/7_0/Prod/local_installers/rpmdeb/cuda-repo-ubuntu1404-7-0-local_7.0-28_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1204-7-0-local_7.0-28_amd64.deb
wget http://developer.download.nvidia.com/compute/cuda/7_0/Prod/local_installers/rpmdeb/cuda-repo-ubuntu1404-7-0-local_7.0-28_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1204-7-0-local_7.0-28_amd64.deb
这个理论上貌似没错,但是后面
sudo apt-get update
sudo apt-get install cuda
这里用的apt-get得到的是cuda7.5的!!和上面安装的版本不符合!所以正确方式:
自己去官网下载,然后安装!
根据我的ubuntu版本,因此我选择
cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb
以后如果apt-get得到的cuda版本更高了,就一定要安装对应的版本即可!
坑3 cudnn和cuda版本一定要对应!
原文
tar -xzvf cudnn-7.0-linux-x64-v4.0-prod.tgz
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-7.0/lib64/
sudo cp cuda/include/cudnn.h /usr/local/cuda-7.0/include/
luarocks install cudnn
此处自己去下载for cuda7.5的,此处即为cudnn-7.5-linux-x64-v5.0-ga.tgz
当然了,把
sudo cp cuda/include/cudnn.h /usr/local/cuda-7.0/include/
的7.0改成7.5。
坑4 可能出现’libcudnn not found in library path’的情况
截取其中一段错误信息:
Please install CuDNN from https://developer.nvidia.com/cuDNN
Then make sure files named as libcudnn.so.5 or libcudnn.5.dylib are placed in your library load path (for example /usr/local/lib , or manually add a path to LD_LIBRARY_PATH)
LD_LIBRARY_PATH是该环境变量,主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。由于刚才已经将
“libcudnn*”复制到了/usr/local/cuda-7.5/lib64/下面,因此需要
- sudo gedit /etc/ld.so.conf.d/cudnn.conf 就是新建一个conf文件。名字随便
- 加入刚才的路径/usr/local/cuda-7.5/lib64/
- 反正我还添加了/usr/local/cuda-7.5/include/,这个估计不要也行。
- 保存后,再sudo ldconfig来更新缓存。(可能会出现libcudnn.so.5不是符号连接的问题,不过无所谓了!!)
此时运行
th neural_style.lua -gpu 0 -backend cudnn
成功了!!!!
发现用cudnn时,变成50个50个一显示了,速度快了些。刚才但存用cuda只是1个1个显示的。不说了,歇会儿。
总结
一定要版本对应!!以后apt-get会得到更高的版本的cuda和cudnn,这时候一定要根据实际情况下载对应版本的进行安装。方法类似。
更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-07/133208.htm