Ubuntu18.04安装cuda9.0,cudnn7.0.5,Anaconda3-5.2.0和TensorFlow-gpu1.8.0

目录

1. 前言

2. 安装显卡驱动

3. 禁止第三方开源驱动

3.1 修改文本有三种方式,以修改软件环境为例

4. 更新NVIDIA驱动

5. gcc降级为4.8

6. 安装CUDA和cuDNN

6.1 安装CUDA 

6.2 安装cuDNN

6.3 测试CUDA

6.4 测试cuDNN

6.5 查看CUDA和cuDNN版本

6.6 卸载CUDA

7. 安装Anaconda

7.1 安装Anaconda3-5.2.0

7.2 修改Python版本为3.6

7.3 conda常用命令

7.4 卸载Anaconda

8. 安装tensorflow-gpu

9. 远程访问jupyter

9.1 安装ssh工具

9.2 jupyter文件配置

10. 安装keras2.1.6

11. numpy版本


 


1. 前言

本人新手,花费了不少时间搭建ubuntu18.04的深度学习环境,整理如下。

奉劝一句,不要追求高版本,另外老版本有更多帖子可参考去解决问题。

硬件条件:CPU: i5-8400; GPU: GTX1060 3G;

软件环境:Ubuntu18.04,自带Python版本是3.7

预装DL环境:cuda_9.0.176_384.81_linux.run;cudnn-9.0-linux-x64-v7.tgz;

                       Anaconda3-5.2.0-Linux-x86_64.sh;tensorflow-gpu==1.8.0

2. 安装显卡驱动

先更新软件源

参考资料:https://blog.csdn.net/zxy131072/article/details/84259967

#查看更新源文件
sudo gedit /etc/apt/sources.list

软件和更新——附加驱动——选择第一项——应用——自动识别安装

参考资料:https://blog.csdn.net/m0_37407756/article/details/80769952

3. 禁止第三方开源驱动

打开终端,输入

sudo gedit /etc/modprobe.d/blacklist.conf

在打开的文本最后添加

blacklist nouveau
options nouveau modeset=0

右上角保存后关闭,终端输入使其生效

sudo update-initramfs -u

重启电脑,终端输入

lsmod | grep nouveau  #如果屏幕没有输出则禁用nouveau成功

3.1 修改文本有三种方式,以修改软件环境为例

sudo gedit ~/.bashrc  #系统自带,适合新手,修改后直接右上角保存退出
sudo vi ~/.bashrc     #系统自带,建议升级vim,文件保存等常规操作和vim一样
sudo vim ~/.bashrc    #需要安装,按i或insert键修改文件,修改后保存退出:按esc键,同时按shift+;, 输入wq。

source ~/.bashrc      #使修改文件生效

4. 更新NVIDIA驱动

安装的显卡驱动版本必须高于或等于CUDA自带的驱动版本

英伟达官方要求:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

查看显卡驱动版本

nvcc-smi

更新NVIDIA驱动

sudo ubuntu-drivers list        #查看可更新版本
sudo apt-get install nvidia-XXX #选择任意版本安装,建议最新

或到官网下载https://www.geforce.com/drivers,再自行安装,可参考:

https://my.oschina.net/u/2306127/blog/2877804?from=timeline&isappinstalled=0

5. gcc降级为4.8

#安装
sudo apt-get install -y gcc-4.8
sudo apt-get install -y g++-4.8
#设置
cd /usr/bin
sudo rm gcc
sudo ln -s gcc-4.8 gcc
sudo rm g++
sudo ln -s g++-4.8 g++
#查询版本
gcc --version
g++ --version

参考资料:https://blog.csdn.net/qq_33160790/article/details/80464473

6. 安装CUDA和cuDNN

6.1 安装CUDA 

sudo sh cuda_9.0.176_384.81_linux.run

#安装4个补丁包
sudo sh cuda_9.0.176.1_linux.run
sudo sh cuda_9.0.176.2_linux.run
sudo sh cuda_9.0.176.3_linux.run
sudo sh cuda_9.0.176.4_linux.run

是否安装显卡驱动的时候选择no,其余选择yes。

#修改环境变量
sudo gedit ~/.bashrc

#再打开的文本末行添加
export PATH=$PATH:$LD_LIBRARY_PATH:$CUDA_HOME
export LD_LIBRARY_PATH=LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64/
export CUDA_HOME=/usr/local/cuda-9.0/bin

#右上角保存退出,终端输入使其生效
source ~/.bashrc

6.2 安装cuDNN

tar -zxvf cudnn-9.0-linux-x64-v7.1.tgz                  #解压
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*          #修改权限

6.3 测试CUDA

cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery

cd ../bandwidthTest
sudo make
./bandwidthTest

看到Result = PASS 即可。

6.4 测试cuDNN

官网下载3个测试demo:https://developer.nvidia.com/rdp/cudnn-archive,再安装测试

#安装demo
sudo dpkg -i libcudnn7_7.0.5.15-1+cuda9.0_amd64.deb
sudo dpkg -i libcudnn7-dev_7.0.5.15-1+cuda9.0_amd64.deb
sudo dpkg -i libcudnn7-doc_7.0.5.15-1+cuda9.0_amd64.deb

#测试
cd /usr/src/cudnn_samples_v7/mnistCUDNN
sudo make clean
sudo make
./mnistCUDNN

看到Test passed即可。

参考资料:https://www.cnblogs.com/zzb-Dream-90Time/p/9679779.html

https://blog.csdn.net/m0_37407756/article/details/80769952

6.5 查看CUDA和cuDNN版本

#查看CUDA版本
cat /usr/local/cuda/version.txt
#查看cuDNN版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

6.6 卸载CUDA

#卸载cuda
sudo /usr/local/cuda-9.0/bin/uninstall_cuda_9.0.pl
#删除残留文件夹
sudo rm -rf /usr/local/cuda-9.0/

7. 安装Anaconda

TensorFlow-gpu版本必须与CUDA,cuDNN和Python的版本匹配,不然运行会出现一大堆错误。

可参考TensorFlow官方经过测试的构建配置:https://tensorflow.google.cn/install/source

7.1 安装Anaconda3-5.2.0

bash Anaconda3-5.2.0-Linux-x86_64.sh

7.2 修改Python版本为3.6

Anaconda3-5.2.0的Python版本为3.6,将ubuntu终端默认的Python3.7改为Anaconda3-5.2.0的Python3.6.5

#修改环境变量
sudo gedit ~/.bashrc

#在打开的文件末尾添加
export PATH="/home/xxx/anaconda3/bin:$PATH"  #xxx:user

#使文件生效
source ~/.bashrc

7.3 conda常用命令

#所有库
conda list
#安装库
conda install package_name
#卸载库
conda remove package_name
#更新库
conda update package_name
#更新所有库
conda update --all

7.4 卸载Anaconda

#卸载anaconda3
rm -rf anaconda3

8. 安装tensorflow-gpu

pip3 install --user --upgrade tensorflow-gpu==1.8.0    #1.12.0版本也安装过,测试成功。

测试是否安装成功

python
>>import tensorflow as tf
#测试是否安装成功
>>hello= tf.constant('Hello, TensorFlow!')
>>sess= tf.Session()
>>print(sess.run(hello))
#查询版本
>>tf.__version__
#查询安装路径
>>tf.__path__

9. 远程访问jupyter

9.1 安装ssh工具

#安装ssh
sudo apt-get install openssh-server
#启动ssh
/etc/init.d/ssh start
/etc/init.d/ssh restart   #重启SSH服务
/etc/init.d/ssh stop      #关闭SSH服务
#查看进程
ps -e | grep sshd
#查询本机ip地址
ifconfig

参考资料:https://blog.csdn.net/qq_36659192/article/details/82942794

9.2 jupyter文件配置

#生成配置文件
jupyter notebook --generate-config

#使用ipython生成密文密码,密码不能太简单
ipython
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password: 
Verify password: 
Out[2]: 'sha1:ce23d945972f:34769685a7ccd3d08c84a18c63968a41f1140274'
In [3]: exit

#修改配置文件前,jupyter notebook自动打开浏览器,显示token值,配置文件后不见token值
#修改配置文件
sudo gedit ~/.jupyter/jupyter_notebook_config.py 
c.NotebookApp.ip='*'
c.NotebookApp.open_browser = False
c.NotebookApp.password = 'sha:ce...刚才复制的那个密文' 
c.NotebookApp.port =8888 #随便指定一个端口

#远程访问
jupyter notebook 
浏览器输入127.0.0.1:8888
#启动失败,尝试jupyter notebook --ip 0.0.0.0或jupyter-notebook

参考资料:http://www.cnblogs.com/yangxiaolan/p/5778305.html

10. 安装keras2.1.6

过了两个月再帮人配环境时,发现安装的keras过高,import keras提示no module named 'keras'。

cuda9.0-cudnn7.0.5-python3.6-tensorflow-gpu1.8.0(或1.12.0)对应的keras的版本为2.1.6。

sudo pip3 install keras                     #安装最新版本的keras
sudo pip3 install keras==2.1.6              #安装指定版本
sudo pip3 install --upgrade keras==2.1.6    #升级到指定版本

#查询keras版本
python3
import keras
print(keras.__version__)

参考资料:https://blog.csdn.net/qq_15192373/article/details/81638018

https://blog.csdn.net/xijuezhu8128/article/details/86608299

11. numpy版本

对应的numpy版本要低于1.17,import tensorflow是才不会出现警告FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.

sudo pip3 uninstall numpy
sudo pip3 install numpy==1.16.0    #安装1.16.0版本即可:

参考资料:https://blog.csdn.net/GodLordGee/article/details/100579932

 

你可能感兴趣的:(ubuntu,tensorflow-gpu,cuda)