Ubuntu16.04深度学习环境及框架配置

        前言:原来的1080带不动网络了,所以借用朋友的Tesla K80,不过遗憾的是师兄的一键安装脚本不管用了,所以记录一下自己的配置过程,希望以后不要踩坑。
        Ubuntu16.04 + Nvidia + CUDA8.0 + Opencv +Caffe + Tensorflow + Pytorch


Ubuntu16.04的安装

        注意Ubuntu的版本:推荐Ubuntu16.04或者Kylin16.04。一开始我是装的enhanced版,出现了某些问题,后面会详细说。至于硬盘什么的,就直接从实验室的机箱里面拆啦(⁎⁍̴̛ᴗ⁍̴̛⁎),注意关闭security boot。

注意事项:如果安装Ubuntu后登陆进去,出现显示界面卡顿,窗口像PPT一样不断一帧一帧的刷新,而鼠标移动显示却很正常,请参考以下解决方案。

        出现上述问题,其实不是系统卡机。经过验证,这种一般都是分辨率问题导致的:

# 解决方案:改分辨率
# 打开grub文件
sudo vim /etc/deafault/grub
# 打开GRUB_GFXMODE选项,或者修改为
GRUB_GFXMODE=1024*768

        注意去掉选项前面的注释符号 #,分辨率原本为 × 号,建议改成 * 号,反正我用 × 号仍然会导致问题, * 号就不会。如果你没有遇到,那可能是我人品吧ಥ_ಥ。

# 使配置文件生效
sudo update-grub

Nvidia显卡驱动安装

       对的,没错,最坑的就是这个,相信装过的人就知道这是一个大坑!所以我决定写的废话一点,详细说一下安装过程步骤的几大坑!

1.禁用草根驱动nouveau

        我一直很好奇系统自带的驱动怎么了,非要禁用他,心疼。但是他跟Nvidia冲突了,对不起,我...只能向邪恶势力低头了...
        不要听信网上乱七八糟的改blacklist.conf的方法,真的是欺骗我的感情。不喜欢nouveau,就请直接了当的移除他好嘛,改来改去他不难过嘛!!!

# 移除并备份驱动,注意文件路径
cd /lib/modules/4.4.0-21-generic/kernel/drivers/gpu/drm/nouveau
mv ./nouveau.ko ./nouveau.ko.bak
# 重新加载
update-initramfs -u

2.下载Nvidia驱动

驱动下载

注意事项:一定要选择run版本,不怕循环登录问题的大可以安装deb(微笑)

        注意产品类型以及CUDA版本对应,更重要的是,一定要下载run版本!run版本!run版本!重要的事说三遍~~另外,Tesla K80的驱动有一个坑,只有选择操作系统为:Linux 64-bit,才是run版本,选择Ubuntu的话,就是deb版本,害的我找了好久。

# 进入文本模式
Ctrl+Alt+F1
# 关闭桌面服务
sudo service lightdm stop
# 安装驱动,定位到驱动所在路径,建议之前就放在home目录下
sudo ./NVIDIA-Linux-x86_61-384 --no-x-check --no-nouveau-check --no-opengl-files
# 重启计算机reboot,查看是否安装成功
nvidia-smi

3.可能会出现的问题

        OK,如果你能成功安装,并且重启之后能正常登陆,请感谢我(害羞),如果不能请参照下面我踩过的两个坑。

问题1:安装过程中出现 ERROR :an error accurred while performing the step:building kernel modules

        出现这个问题是因为Nvidia显卡驱动不适应Linux的内核版本造成。这就是笔者一开始说的建议安装Ubuntu16.04而不是其他版本的原因,enhanced版本虽然不会出现上述的分辨率PPT问题,但可能会报如上的错误。

解决方案1:去Nvidia官网下最新驱动
解决方法2:换系统版本:建议Ubuntu16.04

        对于Tesla K80的显卡驱动,笔者只找到这个run版本,你大可以安装deb版本,只要你觉得自己天赋点点够了,不怕循环登陆(再次微笑)。对于其他显卡驱动,视情况而定,不过还是建议run版本。所以最简单的还是方法2啦(摊手)。

问题2:安装完成重启后,循环登录

        这个问题就很司空见惯了,如果用deb驱动版本的小伙伴遇到了这个问题,我只能说:不听老人言(哈哈哈)。究其原因,是因为安装的过程中,没有禁止opengl。deb版本是一键自动安装,所以没有选项,而run版本可以避免这个问题,加上选项参数,即:

--no-x-check --no-nouveau-check --no-opengl-files

        请注意在出现上述问题重装驱动的时候,先要完全卸载原先的Nvidia显卡驱动。

sudo apt-get remove nvidia-*
sudo nvidia-uninstall

CUDA 安装

        这个就很easy,也不会出什么问题,请自行官网下载run版本CUDA安装包。

# Ctrl + Alt + F1 进入文本模式
# 关闭图像界面服务
sudo service lightdm stop
# 安装Cuda,建议安装包先放在home下
sudo sh cuda_8*.run --no-opengl-libs

        之后等到出现0%之后,长按空格增长到100%阅读完毕,按照提示安装完成,reboot重启计算机即可。注意跳过Nvidia驱动安装,一般情况下来讲,自带的驱动安装总会出问题(滑稽)。

# 打开配置文件
sudo gedit ~/.bashrc
# 在末尾加入
export PATH=/usr/local/cuda-8.0/bin:$PATH 
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
# 保存更改,刷新使配置生效
source ~/.bashrc

OpenCV安装

        一行命令解决问题,好奇为什么那么多人说要编译。。。

# python2.7
pip install opencv-python
# python3
pip3 install opencv-python

pip换源

        如果上述pip的时候速度太慢,或者在安装python其他库的时候速度根本上不去,这时候就换个源吧,速度飞起!从104k/s到3M/s的快感ψ(`∇´)ψ

方法1:conf文件配置

sudo mkdir ~./pip
sudo vim ~./pip/pip.conf
# 写入如下的阿里云配置
[global]
index-url=http://mirrors.aliyun.com/pypi/simple
[install]
trusted-host=mirrors.aliyun.com

方法2 :pqi切换:简单方便

# 下载qpi模块
sudo pip install pqi
# 查看可使用源
pqi ls
# 切换源
pqi use aliyun

apt 换源

        感谢室友提供给我的脚本,清华源——给你飞一般的感觉╮ ( ̄ 3 ̄)

# sh脚本文件内容如下
cp /etc/apt/sources.list /etc/apt/sources.list.back
echo "
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
" > /etc/apt/sources.list
apt-get update

Caffe 安装

        caffe 安装包已经备份到百度云,推荐离线安装。

链接: https://pan.baidu.com/s/1kB5bMgEygd3duWNK-V0T2Q 密码: xq5t

        一键安装脚本如下,造福小伙伴,请自建shell文件,内容如下:

# config
CAFFE_INSTALL=~
sudo apt-get install -y cmake
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev
sudo apt-get install -y libboost-system-dev libboost-filesystem-dev libboost-thread-dev libboost-chrono-dev libboost-date-time-dev libboost-atomic-dev libboost-python-dev 
sudo apt-get install -y libgflags-dev libgoogle-glog-dev protobuf-compiler liblmdb-dev libatlas-base-dev doxygen
sudo pip install scikit-image
tar -zxvf caffe.tar.gz
CAFFE_ROOT=$CAFFE_INSTALL/caffe
mv caffe $CAFFE_INSTALL/
cd $CAFFE_ROOT
mkdir build
cd build
cmake ..
#make -j $(($(nproc) + 1))
make -j 4
make install
echo "export PYTHONPATH=$CAFFE_ROOT/build/install/python:\$PYTHONPATH" | sudo tee -a /etc/profile

Tensorflow 安装

        tensorflow 安装包已经备份到百度云,推荐离线安装。

链接: https://pan.baidu.com/s/16KSir54pg4VMIpMkuOVNrQ 密码: a4rp

        脚本内容如下:

sudo pip install tensorflow_gpu-1.4.0-cp27-cp27mu-manylinux1_x86_64.whl
pip install scipy
pip install h5py keras 

Pytorch 安装

        Pytorch 官网下载即可,检查Python和Cuda对应的版本,安装命令如下:

sudo pip install torch-0.3.0.post4-cp27-cp27mu-linux_x86_64.whl
sudo pip install torchvision

Pycharm 安装

        我觉得Pycharm挺好用的,分享一下百度云链接,造福小伙伴:

链接: https://pan.baidu.com/s/1fiEfUW1s-w7jvslF-IHxvw 密码: d7kp

       还是一键安装脚本,自建shell文件哦,脚本如下:

# install pycharm
tar -xf "pycharm-community-2017.3.3.tar.gz"
rm -f ~/.local/share/applications/jetbrains-pycharm-ce.desktop
sudo mv pycharm-community-2017.3.3 /opt/
sudo ln -s -f /opt/pycharm-community-2017.3.3/bin/pycharm.sh /usr/bin/pycharm
# run pycharm
pycharm

        到这里,深度学习框架就安装完毕啦,so easy。在这里强推Pytorch,超好用!
        什么,你问我为什么要强推Pytorch?naive,难道你不知道贾大神已经说了caffe2要并入Pytorch嘛!!!(手动斜眼)
        刚起步博客小白一只,请多多指教。加班太晚了,先回去休息,日后(字面意思)有空再更新。

你可能感兴趣的:(Ubuntu16.04深度学习环境及框架配置)