Ubuntu1804_CUDA10.0_Cudnn7.6.3深度学习环境搭建
Ban
ChangAn University预备材料:
- Ubuntu 18.04
目标环境:
- Anaconda 3
- Python 3.6
- Pytorch 1.3
- Tensorflow-gpu 1.13.1
- CUDA10.0
- Cudnn 7.6.3
1. 更换Ubuntu源
更换阿里源
左下角点开,找到软件更新器
-> 设置 -> ubuntu软件 选项卡 -> 下载自 -> 其他源 -> mirrors.aliyun.com/ubuntu
关闭窗口
2. 安装Nvidia显卡驱动
- 官网下载驱动
2.1 安装之前先卸载已经存在的驱动版本
sudo apt-get remove --purge nvidia*
sudo /usr/bin/nvidia-uninstall
sudo apt-get update
sudo apt-get install dkms build-essential linux-headers-generic
2.2 禁用 nouveau
只有在禁用掉 nouveau 后才能顺利安装 NVIDIA 显卡驱动,禁用方法就是在 /etc/modprobe.d/blacklist-nouveau.conf 文件中添加一条禁用命令,首先需要打开该文件,通过以下命令打开:
sudo gedit /etc/modprobe.d/blacklist.conf
在最后一行加上:
blacklist nouveau
options nouveau modeset=0
将Ubuntu自带显卡驱动加入黑名单
使禁用生效
sudo update-initramfs -u
2.3 开始安装驱动
重启,不要登录,使用Ctrl
+ALt
+F2
进入文字界面,输入账户名
和密码
登录;
安装Lighdm
sudo apt-get install lightdm关闭Lightdm
sudo service lightdm stop安装Nvidia驱动
# 修改驱动文件权限sudo chmod 777 NVIDIA-Linux-x86_64-430.xx.run#执行安装文件sudo sh ./NVIDIA-Linux-x86_64-430.xx.run –no-opengl-files开启Lightdm
sudo service lightdm startCtrl
+F1
登录验证安装
sudo nvidia-smi
3. 安装CUDA 10.0
- 下载
3.1 安装依赖
sudo apt-get install freeglut3-dev libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
3.2 安装CUDA
sudo sh cuda_10.0.130_410.48_linux.run
根据提示安装:
Do you accept the previously read EULA?acceptInstall NVIDIA Accelerated Graphics Driver for Linux-x86_64 410.48?NoInstall the CUDA 10.0 Toolkit?yesEnter Toolkit Location回车Do you want to install a symbolic link at /usr/local/cuda?yesInstall the CUDA 10.0 Samples?yesEnter CUDA Samples Location回车添加环境变量
sudo gedit ~/.bashrc在末尾添加:
export PATH=$PATH:/usr/local/cuda-10.0/binexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.0/lib64export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-10.0/lib64生效:
# 必须开启另一个终端执行source .bashrc验证安装
nvcc -V出现版本信息则安装成功
4. 安装Cudnn 7.6.3
搜索Cudnn官网,弄一个号进去,选择历史版本,选择7.6.3, 下载libaray for linux
, 不要选ubuntu版本
安装
#cudnn安装(文件名自己换)tar -zxvf cudnn-10.0-linux-x64-v7.5.0.56.tgz#这三句不用换sudo cp cuda/include/cudnn.h /usr/local/cuda/includesudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
5. 安装Anaconda
下载
搜索
清华源
,进入清华大学镜像网站, 进入anaconda/archive
搜索
Anaconda3-2019.10-Linux-x86_64.sh
修改Anaconda文件夹权限
sudo chown 用户名 anaconda3/ -Rsudo chown 用户名 .conda/ -R修改Anaconda为清华源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --set show_channel_urls yes创建名为py36的Python3.6虚拟环境
conda create -n py36 python=3.6切换环境
source activate py36
6. 下载与设置Pycharm
下载Pycharm社区版
将Pycharm默认环境设置为py36
/*settings ->Project Interpreter ->右上角小齿轮 ->add ->conda Enviornment ->Exisiting Environment ->设置路径 ->/home/你的用户名/anaconda3/envs/py36/bin/python3勾选 Make available to all projects*/
7. 离线安装Pytorch和Torchvision
7.1 下载与安装
进入清华源,进入
anaconda/cloud/pytorch
搜索pytorch1.3 py36 cuda100 linux
搜索torchvision 0.4.0
激活py36环境,用以下命令离线安装
conda install --offline XXXX..tar.bz2
7.2 测试
导入有错的话,解决方式请看附录
from __future__ import print_function
import torch
x = torch.rand(5, 3)
print(x)
import torch
print(torch.cuda.is_available())
8. 安装tensorFlow-gpu 1.13.1
8.1 激活py36环境,使用清华源安装
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==1.13.1
8.2 测试
import tensorflow as tf
with tf.device('/cpu:0'):
a = tf.constant([1.0, 2.0, 3.0], shape=[3], name='a')
b = tf.constant([1.0, 2.0, 3.0], shape=[3], name='b')
with tf.device('/gpu:1'):
c = a + b
# 注意:allow_soft_placement=True表明:计算设备可自行选择,如果没有这个参数,会报错。
# 因为不是所有的操作都可以被放在GPU上,如果强行将无法放在GPU上的操作指定到GPU上,将会报错。
sess = tf.Session(config=tf.ConfigProto(allow_soft_placement=True, log_device_placement=True))
# sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
sess.run(tf.global_variables_initializer())
print(sess.run(c))
附录
pip使用清华源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==1.13.1(换你要装的包)
Pycharm内置pip更换清华源
https://www.jianshu.com/p/21982f0f6b55
Pytorch与TensorFlow各种导入问题
更新numpy
pip uninstall numpypip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy缺各种mkl文件的情况
# libmkl_intel_lp64.so: cannot open shared object file: No such file or directory# 通过命令查找文件位置sudo find /home -name libmkl_intel_lp64.so# 将查到的文件路径复制到usr/local/lib目录下sudo cp /home/cesky001/anaconda3/lib/libmkl_intel_lp64.so /usr/local/lib/libmkl_intel_lp64.so && sudo ldconfig缺各种cuda文件的情况
# 将相应的库文件复制到/usr/lib(根据缺失文件自行修改)sudo cp /usr/local/cuda-10.0/lib64/libcudnn.so.7 /usr/local/lib/libcudnn.so.7 && sudo ldconfig#ldconfig命令是一个动态链接库管理命令,是为了让动态链接库为系统共享
设置Ubuntu屏幕分辨率
1. 查看工作模式
xrandr
2. 生成Modeline
cvt 1920 1080
3. 用modeline创建新的分辨率模式
xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
4. 用addmode将模式添加在显示器上
xrandr --addmode VGA1 "1920x1080_60.00"
5. 调用分辨率
xrandr --output VGA1 --mode "1920x1080_60.00"