做深度算法相关研究,一个好的GPU加上CUDA框架必不可少。但是网上纷繁复杂的CUDA教程很是复杂,我在经过各种尝试后找到了一个比较好的方法,因为很多教程的步骤不仅复杂,而且经常出现无法正常开机(其实就是显卡驱动没装好),所以很多新手最大的困难不是如何运用神经网络,而是装好一个运行环境。希望大家看完后不要再为装框架花去多余的时间,我已将相关文件分享到百度云,链接在这里。首先你需要装一个ubuntu系统,这个比较简单就不说了,去官网下载稳定版本(也就是偶数版本)安装即可。
1 安装CUDA框架
安装好ubuntu后,你首先需要做的是更新系统,按住Ctrl+Alt+t,打开终端,然后键入以下命令:
sudo apt-get update
sudo apt-get upgrade
一旦装上CUDA和显卡驱动,更新系统内核就会出现问题,所以提前更新系统很重要。
然后cd到你下载的.deb的CUDA安装包文件夹目录下,如果菜鸟的话就直接在文件夹下右键然后选择在终端打开,输入以下命令:
sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
然后等待运行完毕,然后键入:
sudo apt-get install cuda
然后需要将CUDA路径添加到系统环境变量中,终端下输入:
sudo gedit /etc/profile
在文件末尾直接复制添加如下文字:
CUDA_HOME=/usr/local/cuda-8.0
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
然后保存退出,在终端中输入如下命令来更新变量:
source /etc/profile
这样CUDA就安装完成了,如果想要测试就在终端输入:
nvcc -V
如果你能看到相应信息,说明CUDA已经配置成功
2 cuDNN库加速
在很多的框架中,比如Tensorflow以及使用TF作为后端的更高层框架Keras,如果你需要使用GPU加速,cuDNN必不可少,我也放在网盘里面,是对应CUDA8.0的6.0版本,大家直接提取到当前目录下,然后进入解压的目录,键入如下命令复制文件:
sudo cp include/cudnn.h /usr/local/cuda/include/
sudo cp lib64/* /usr/local/cuda/lib64/
到此cuDNN也安装完成,步骤很简单。
3 安装深度学习框架并测试
在这里我用现在最热门的框架Tensorflow作为示例,首先安装pip(Python2默认是pip,Python3常常用pip3表示):
sudo apt-get install python-pip
sudo apt-get install python3-pip
上面第一条是Python2的命令,下面是Python3的命令,大家按需使用。然后输入下面命令安装Python程序包:
sudo pip install -U --pre setuptools wheel
sudo pip install -U --pre numpy scipy matplotlib scikit-learn scikit-image
sudo pip install -U --pre tensorflow-gpu
如果是Python3,则将上面的pip改为pip3即可,身在国内会发现上面命令速度会很慢,想要加快速度的话,请参照这个这里使用国内镜像进行安装。
安装完毕后,在终端中输入python(同样的,如果你用的python3请输入python3),然后输入:
import tensorflow
没有报错说明你已经可以正常使用了!
问题:
ImportError: libcudnn.so.6: cannot open shared object file: No such file or directory
解决:
因为cuda的路径可能设置错了
sudo ldconfig /usr/local/cuda/lib64
你这个问题是由于你安装CUDNN的时候吧cudnn放在了/usr/local/cuda/lib64
目录下,而没有放在/usr/local/cuda8.0/lib64
目录下。有部分攻略在安装CUDA8.0会在~/.bashrc中声明export LD_LIBRARY_PATH=/usr/local/cuda8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
, 即为CUDA库函数地址。但这个路径是错误的,改成export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
,就不会出现以上错误了。