之前花了很长时间来查询配置环境的方法,但是大多有点老了,配置的方法也不一样,有些显得过于复杂,本人试过多种配置方法,基本上大家说过的坑都踩过,最近因为环境出了问题,所以重新配置一下,刚好写个博客记录整理一下。
1、NVIDIA驱动安装
1)默认安装的显卡驱动不是英伟达的驱动,所以先把旧的驱动删除掉。
sudo apt-get remove --purge nvidia*
如果使用.run文件安装,使用–uninstall卸载(具体方法百度)
2)禁用nouveau
安装NVIDIA需要把系统自带的驱动禁用,打开文件:
sudo gedit /etc/modprobe.d/blacklist.conf
在文本最后添加以下内容:
blacklist nouveau
option nouveau modeset=0
命令窗口会提示warn,无视之。
保存退出,执行以下命令生效:
sudo update-initramfs -u
重启电脑后输入:
lsmod | grep nouveau
没有任何输出说明禁用成功。
3)添加Graphic Drivers PPA
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
查看合适的驱动版本:
ubuntu-drivers devices
我这里选择的推荐的nvidia-415
sudo apt-get install nvidia-driver-415
4)安装完毕后重启机器:
reboot
重启后查看是否安装成功:
nvidia-smi
安装成功显示一些信息,如图
2、安装依赖库:
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-devlibgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
3、GCC版本降级
1)CUDA9.0要求GCC版本是5.x或者6.x,其他版本不可以,需要自己进行配置,通过以下命令才对GCC版本进行修改。
#版本安装
sudo apt-get install gcc-5
sudo apt-get install g++-5
2)设置默认的gcc版本
(可选)查看当前版本,不出意外的话会返回Ubuntu 18.04自带的7.3.0这个版本号,现在使用gcc命令编译时还是会用新版本。
gcc --version
(可选)查看已有的gcc版本,确认一下刚才有没有装成功。
ls /usr/bin/gcc*
通过命令替换掉之前的版本
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 50
如替换出现问题,需要手动模式,输入下面的命令根据提示进行替换:
sudo update-alternatives --config gcc
4、CUDA9.0安装
在安装CUDA和CUDNN中还没有匹配版本,最高也是17.04的版本,但实际上ubuntu18.04的版本具有很强的兼容性,所以选择17.04的也可以用
版本选择:
linux–x86-64,Ubuntu–17.04,runfile(local),下载Base Installer和4个Patch
进入下载目录后,依次执行命令:
注意:在安装过程中会提示是否需要安装显卡驱动,在这里要选择n,其他的选择y或者回车键进行安装:
sudo ./cuda_9.0.176_384.81_linux.run
sudo ./cuda_9.0.176.1_linux.run
sudo ./cuda_9.0.176.2_linux.run
sudo ./cuda_9.0.176.3_linux.run
sudo ./cuda_9.0.176.4_linux.run
安装完成后使用gedit打开环境文件:
sudo gedit ~/.bashrc
在最后添加:
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
运行
source ~/.bashrc
使其生效,然后重启一下
reboot
重启后,测试CUDA是否成功
cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
sudo make
sudo ./deviceQuery
若会输出相应的显卡性能信息,Result = PASS,表明CUDA安装成功。
查看cuda版本:
nvcc -V
卸载cuda:
sudo /usr/local/cuda-9.0/bin/uninstall_cuda_9.0.pl
sudo rm -rf /usr/local/cuda-9.0/
如果安装失败有可能是依赖没安装好,执行命令:
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
安装好后重启一下再看看
5、CUDNN7.4.1安装
下载地址(需要注册才能安装):https://developer.nvidia.com/rdp/cudnn-download
下载与CUDA9.0对应的版本,CUDNN7.4.1即可
解压下载的文件,可以看到cuda文件夹,在当前目录打开终端,执行如下命令:
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
没有报错就是全部安装完成了
查看cudnn版本:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
出现版本信息证明安装成功
6、安装Tensorflow Gpu
由于Anaconda可以提供完整的科学计算库,所以直接使用Anaconda来进行相关的安装。这应该也是最不容易出错的方法。
1)安装Anaconda
下载地址:https://www.anaconda.com/download/
这里我们下载Python 3.7 64bit 的Anaconda,下载好后直接安装即可。
sudo bash Anaconda3-5.3.0-Linux-x86_64.sh
2)更改pip和conda为国内的源
由于国内访问pip和conda比较慢,建议更改为国内的源:
a.更改pip的源为阿里云:
mkdir ~/.pip
cat > ~/.pip/pip.conf << EOF
[global]
trusted-host=mirrors.aliyun.com
index-url=https://mirrors.aliyun.com/pypi/simple/
EOF
b.更改conda的源为清华大学:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
3)在Anaconda中安装Python3.6的虚拟环境
由于Anaconda的python版本是3.7的,TensorFlow暂时不支持此版本,所以先创建一个Python的虚拟环境
conda create --name tf python=3.6 #创建tf环境
虚拟环境主要命令:
source activate tf #激活tf环境
source deactivate tf #退出tf环境
conda remove --name tf --all #删除tf环境(全部删除)
4)在Anaconda中安装TensorFlow GPU (需要哪个版本在后面添加即可,不然默认安装最新版)
pip install --ignore-installed --upgrade tensorflow-gpu
将会自动安装如下组件:
numpy 、wheel 、tensorflow-tensorboard 、six、protobuf 、html5lib 、markdown、werkzeug 、bleach、setuptools
5)使用下列代码测试安装正确性
命令行输入:
source activate tf
python
import tensorflow as tf
hello= tf.constant('Hello, TensorFlow!')
sess= tf.Session()
print(sess.run(hello))
没有报错就是配置好了。
7.安装Pytorch
直接在这个虚拟环境中安装:
conda install pytorch torchvision -c pytorch
测试Pytorch是否安装成功:
source activate tf
python
import torch
print(torch.cuda.is_available())
返回True说明安装成功了。