目录
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版本
本人新手,花费了不少时间搭建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
先更新软件源
参考资料:https://blog.csdn.net/zxy131072/article/details/84259967
#查看更新源文件
sudo gedit /etc/apt/sources.list
软件和更新——附加驱动——选择第一项——应用——自动识别安装
参考资料:https://blog.csdn.net/m0_37407756/article/details/80769952
打开终端,输入
sudo gedit /etc/modprobe.d/blacklist.conf
在打开的文本最后添加
blacklist nouveau
options nouveau modeset=0
右上角保存后关闭,终端输入使其生效
sudo update-initramfs -u
重启电脑,终端输入
lsmod | grep nouveau #如果屏幕没有输出则禁用nouveau成功
sudo gedit ~/.bashrc #系统自带,适合新手,修改后直接右上角保存退出
sudo vi ~/.bashrc #系统自带,建议升级vim,文件保存等常规操作和vim一样
sudo vim ~/.bashrc #需要安装,按i或insert键修改文件,修改后保存退出:按esc键,同时按shift+;, 输入wq。
source ~/.bashrc #使修改文件生效
安装的显卡驱动版本必须高于或等于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
#安装
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
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
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* #修改权限
cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
cd ../bandwidthTest
sudo make
./bandwidthTest
看到Result = PASS 即可。
官网下载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
#查看CUDA版本
cat /usr/local/cuda/version.txt
#查看cuDNN版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
#卸载cuda
sudo /usr/local/cuda-9.0/bin/uninstall_cuda_9.0.pl
#删除残留文件夹
sudo rm -rf /usr/local/cuda-9.0/
TensorFlow-gpu版本必须与CUDA,cuDNN和Python的版本匹配,不然运行会出现一大堆错误。
可参考TensorFlow官方经过测试的构建配置:https://tensorflow.google.cn/install/source
bash Anaconda3-5.2.0-Linux-x86_64.sh
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
#所有库
conda list
#安装库
conda install package_name
#卸载库
conda remove package_name
#更新库
conda update package_name
#更新所有库
conda update --all
#卸载anaconda3
rm -rf anaconda3
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__
#安装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
#生成配置文件
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
过了两个月再帮人配环境时,发现安装的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
对应的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