在linux下搭建深度学习环境并通过windows远程连接
一、确定显卡版本
nvidia driver、cuda、CUDNN、tensorflow的版本有严格的对应关系,先检查自己的显卡型号,再确定对应的driver和cuda版本,以及tensorflow-gpu、python版本。
二、安装
1.使用anaconda搭建虚拟环境
不同的项目可能依赖不同版本的库,使用虚拟环境可以将不同项目的运行环境分离开来。
官方下载地址:https://www.anaconda.com/products/distribution#Downloads
3.NVDIA显卡驱动(nvidia driver)
安装nvidia显卡驱动首先需要禁用nouveau,不然会碰到冲突的问题,导致无法安装nvidia显卡驱动。
当前版本:410.73
官方下载地址:https://www.nvidia.com/download/index.aspx
4.CUDA
1)如果已经安装过driver了,在提示是否安装cudadriver时输入n取消
2)在安装多个版本的cuda时,可能遇到错误:
error: supported compiler: 10.0.2, use --override to....
只要根据提示在bash cuda.run时末尾加上--override
即可。
3)如果报错找不到某个文件,例如找不到libcublas.so.10,但路径下有libcublas.so,则在该路径下输入命令cp libcublas.co libcublas.so.10
。
4)如果系统中装了多个cuda版本,通过修改~/.bashrc配置文件的cuda路径即可更改当前使用的cuda版本
(source ~/.bashrc后,通过nvcc -V检查版本号时可能已经更改,但运行时报版本号不对应的错误,可能需要重启才能生效)
5)cuda默认安装路径为/usr/local,也可以在安装时自定义安装路径装在用户目录下(也是非root用户安装方式)
检查当前版本:nvcc -V
5.CUDNN
cuDNN是GPU加速库(一定要注意版本对应)
官方下载地址:https://developer.nvidia.com/rdp/cudnn-download(下载需要注册/登录英伟达账号)
命令:nvidia-smi
,可以检查当前可用的GPU编号,GPU名称,性能,温度,功率等信息。
指定GPU(指定想要使用的显卡编号):
import os
os.environ['CUDA_VISIBLE_DEVICES']='0'
6.TesnsorFlow
安装版本:tensorflow-gpu-2.2.0
1) 如果报keras等库版本号不对应的错误,通过pip uninstall [keras] 和 pip install [keras]==[对应版本号]的命令修改版本。
检查是否成功安装:
import tensorflow as tf
print(tf.__version__)
检查可用GPU:
print(tf.config.list_physical_devices('GPU'))
三、搭建Jupyter Notebook远程服务器
在远程服务器上安装jupyter(可能在安装conda时已经安装了,可以检查一下)
-
安装命令:
pip install jupyter
-
生成jupyter notebook配置文件
jupyter notebook --generate-config
-
设置密码(用于配置以及登录)
python
>>>from notebook.auth import passwd
>>>passwd() #输入两次密码
sha1************************** #生成密钥
此处的sha1*******需要复制,用于下面的配置文件
- 修改配置文件
vi ~/.jupyter/jupyter_notebook_config.py
增加配置信息
c.NotebookApp.ip='*'
c.NotebookApp.port=8888
c.NotebookApp.open_browser=False
c.NotebookApp.notebook_dir='/home/usr/Desktop/jupyProjects'
c.NotebookApp.allw_root=True
c.NotebookApp.password='shal:***************' #粘贴刚刚复制的密钥
- 启动jupyter远程服务器
jupyter notebook
或者指定端口和IP
jupyter notebook --nobrowser --port 8888 --ip=192.168.10.11
-
windows远程连接服务器的jupyter notebook
1). 通过git或者powershell或者cmd连接远程服务器
ssh -L[本地端口]:localhost:[远程端口] 用户名@远程服务器ip
例如
ssh -L8888:localhost:8888 user@*.*.*.*
2).打开浏览器,输入localhost:[本地端口],输入前面设置的密码,即可远程连接服务器的jupyter notebook -
Jupyter notebook 更换kernel
jupyter notebook访问时默认使用anaconda的base环境
1). 安装ipykernel:
#激活虚拟环境
conda install nb_conda_kernels
#将环境写入notebook的kernel中
python -m ipykernel install --user --name 环境名 --display-name 显示的环境名