本文详细记录了tensorflow2配置的详细过程,如有疑问可以通过私信与我交流。
关注公众号 打代码的苏比特,获取java面试百问百答和面试高频算法题~
安装环境
- ubuntu 16.04
- GPU tesla V100
本文记录的安装程序版本为:
-
Driver Version 440.64.00
-
CUDA 10.2
文章目录
一、安装NVIDIA驱动程序
-
下载合适的NVIDIA驱动程序
进入NVIDIA官网NAVIDIA官网,下载与本机显卡以及操作系统相对应的驱动程序。我的环境配置为ubuntu 16.04,显卡为Tesla V100,CUDA版本选择10.2,按照我的配置,选择的信息如下:
-
禁用nouveau
鉴于禁用nouveau后,ubuntu有可能启动黑屏,并且按ctrl+alt+f1键无用,可以在禁用nouveau之前先安装openssh-server,这样子启动之后就可以通过远程的方式安装驱动。 关于openssh-server的安装可以参考:https://www.cnblogs.com/smallredness/p/11141719.html
执行如下命令
sudo vim /etc/modprobe.d/blacklist.conf
在打开的文本最后添加如下代码后保存退出
blacklist nouveau options nouveau modeset=0
保存完成后,执行
sudo update-initramfs -u
随后执行重启操作,如果重启后黑屏,这是正常的,按Ctrl-Alt+F1进入命令行界面。如若上述操作没有反应,可以用上文中提到的ssh远程连接的方式,来执行后续操作。
重启后,执行如下命令,没有输出则证明nouveau禁用成功。
lsmod | grep nouveau
-
用命令安装驱动
在下载的驱动的保存目录执行如下命令,给驱动run文件赋予执行权限
sudo chmod +x NVIDIA-*.run
执行如下命令,使用run文件安装驱动
sudo ./NVIDIA-*.run –no-opengl-files –no-x-check
其中一些选项的选择如下
The distribution-provided pre-install script failed! Are you sure you want to continue? 选择 yes 继续 Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later? 选择 No 继续 Nvidia’s 32-bit compatibility libraries? 选择 No 继续 Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up. 选择 Yes 继续
安装完成后输入如下命令,出现如下界面显示出显卡信息,则安装成功
nvidia-smi
安装完成没有报错之后,执行如下命令,启动图形界面即可将ubuntu图形界面恢复显示
sudo service lightdm start
二、安装CUDA
- 选择对应的版本,下载CUDA安装文件,我这里下载10.2的版本,官方下载地址
-
在文件下载的保存路径,执行如下命令,开始安装CUDA
sudo chmod +x cuda_*.run sudo ./cuda_*.run --no-opengl-libs
-
安装过程中的配置选项如下
1 accept #同意安装 2 n #不安装Driver,因为已安装最新驱动 3 y #安装CUDA Toolkit 4 <Enter> #安装到默认目录 5 y #创建安装目录的软链接 6 n #不复制Samples,因为在安装目录下有/samples
-
安装完成后,执行如下三条命令,编译并测试设备deviceQuery
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery sudo make ./deviceQuery
-
执行如下三条命令,编译并测试带宽 bandwidthTest
cd ../bandwidthTest sudo make ./bandwidthTest
-
如果这两个测试的最后都没有报错,顺利执行,说明CUDA安装成功
-
执行如下命令,配置CUDA环境变量
sudo gedit ~/.bashrc
将安装路径添加到文本末尾(此处需要按照自己的实际安装路径与安装版本,修改对应的文本)
export PATH=/usr/local/cuda-10.2/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH
执行如下命令,使路径生效
. ~/.bashrc
-
终端输入如下命令,如果输出CUDA版本信息,这CUDA配置大功告成啦!
nvcc -V
三、安装cudnn
- 在官网下载CUDA对应的cudnn版本官网下载链接
-
下载完成以后将其解压到Cuda的目录当中,依次执行如下命令(命令中的文件名以及路径需要按照你的环境进行更改)
tar -xzvf cudnn-8.0-linux-x64-v6.0.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 /usr/local/cuda/lib64/libcudnn*
四、安装配置anaconda
-
在清华镜像站下载好anaconda的.sh安装包
-
sh ./Anaconda* 进行安装,安装过程中,可以选择yes自动配置环境变量,选择No不安装vscode
-
安装完成后不再需要配置环境变量,添加国内清华源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --set show_channel_urls yes
五、创建虚环境安装tensorflow-gpu
-
执行如下命令
//查看存在的环境列表 conda env list //创建虚环境,此时可以指定环境名称和python版本 conda create --name YourEnvName python=3.6 //激活虚环境 source activate YourEnvName //安装依赖包 conda install pandas conda install Scikit-learn pip install matplotlib
-
安装tensorflow-gpu,指定了源和安装版本
conda install --channel https://mirrors.ustc.edu.cn/anaconda/pkgs/main/ tensorflow-gpu==2.1.0
六、配置jupyter notebook远程访问
配置远程访问jupyter notebook,这样子就可以在自己的电脑上跑代码啦~~~
-
在终端输入python,进入ipython,输入如下代码,将输出的sha1值记录下来
from notebook.auth import passwd passwd() Enter password: Verify password: //会输出一个sha1值,记住这个值 Out[2]: 'sha1:94226d8776a2:fda32aaaef068f2852806ecbbc7ba5439558d057'
-
修改配置文件
gedit .jupyter/jupyter_notebook_config.py
打开配置文件,按如下方式配置
c.NotebookApp.ip='0.0.0.0' # 配置为所有ip都可访问 c.NotebookApp.password = u'sha1:94226d8776a2:fda32aaaef068f2852806ecbbc7ba5439558d057' # ipython下生成的密文 c.NotebookApp.open_browser = False # 默认不打开浏览器 c.NotebookApp.port =8888 # 任意端口,此设为常用端口 c.NotebookApp.notebook_dir = '/home/ubuntu/jupyter' # jupyter notebook的工作目录
-
启动 jupyter notebook
在终端输入,启动jupyter notebook
jupyter notebook
-
远程访问服务器
在浏览器中输入地址http://serverIP:8888/,按提示输入先前设置好的密码
程序已经在服务器端工作