Yukyukuon / blog

博客的文章
1 stars 0 forks source link

环境配置的一些坑和笔记 #21

Open Yukyukuon opened 1 year ago

Yukyukuon commented 1 year ago

环境配置

公用服务器的个人conda环境配置

写在开头~ 因为是公用的服务器,并且没有管理员权限。并且,为了使用jupyter notebook,索性就在自己的个人用户下建了自己的conda深度学习环境。

Conda下载

因为服务器的下载速度实在是太慢了,这里下载的是Miniconda,这部分没啥坑,略过Orz

CUDA安装

首先查看服务器信息,用到的linux指令是:

#查看系统
lsb_release -a
#查看显卡信息
lspci | grep -i nvidia

这里可以得到服务器的系统和版本号,查看一下显卡和允许安装的最大的CUDA版本(因为服务器已经安装好了CUDA Driver)

nvidia-smi

确认好之后,我觉得在这里先查看要下载的Tensorflow版本,然后确定CUDA和cuDNN的版本。

官网选择要下载的CUDA Toolkit版本。按照自己的要求一步一步选择就行(注意:此处最后的Installer Type 我建议选择 runfile(loacl),操作比较方便就是了)

可以先新建一个文件夹来装CUDA,按照官网给的指令进行安装,accept协议之后会有如下画面: CUDA

出现这个界面后,只保留Toolkit和Samples的安装就行(其它的都木有权限),然后进入options→Toolkit Options,全部都取消勾选,修改cuda安装的路径,把路径改到你自己的路径,要是按照默认路径没有权限安装不了 Toolkit Options 最后Install

cuDNN安装

相对而言,cudnn的安装过程简单了许多,进入cuDNN官网,选择对应版本,建议安装后缀为tgz的,然后解压,复制一些文件,记得把路径改成你自己的

tar -zxvf cudnn-10.0-linux-x64-v7.6.4.38.tgz
#将解压出来的include/cudnn.h复制到CUDA路径下
cp include/cudnn.h /your_path/include/ 
#将lib/libcudnn*复制到CUDA路径下
cp lib64/libcudnn* /your_path/lib64/

# 给刚才复制过来的文件加一个权限
chmod a+r /your_path/include/cudnn.h
chmod a+r /your_path/lib64/libcudnn*

环境变量的配置

将CUDA加入到环境变量中去,在.bashrc最后添加上,同样记得修改路径

export PATH=/home/yifanjia/app/cuda/cuda-11.2/bin:$PATH
export LD_LIBRARY_PATH=/home/yifanjia/app/cuda/cuda-11.2/lib64:$LD_LIBRARY_PATH

#下面修改路径代码备用
export PATH="$PATH:/home/yifanjia/app/cuda/cuda-11.2/bin"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/yifanjia/app/cuda/cuda-11.2/lib64/"
export LIBRARY_PATH="$LIBRARY_PATH:/home/yifanjia/app/cuda/cuda-11.2/lib64"

更新一下

source .bashrc

Tensorflow GPU

注意!!! 官网上说:tensorflow2 支持 CPU 和 GPU 的最新稳定版(适用于 Ubuntu 和 Windows),而对于 TensorFlow 1.x,CPU 和 GPU 软件包是分开的。这句话很有迷惑性,乍一看还以为是tensorflow2 把CPU 和 GPU 合并在一起了,其实不然,你要想使用gpu版本,还得在后面加个-gpu。

确认好想要的版本用conda下载安装,但是只能下载和搜到低版本的包

#查找可下载的包
conda search tensorflow-gpu

Tensorflow search

解决的办法是去Conda的仓库里找指定的版本。
Conda仓库

#找到对应版本下载
conda install -c anaconda tensorflow-gpu==2.6.0

Jupyter Notebook的配置

首先是在服务器上安装好jupyter,然后添加配置文件

jupyter notebook --generate-config

通过这个命令创建一个文件,其在./jupyter文件夹中,现在我们打开对其进行编辑

vim ~/.jupyter/jupyter_notebook_config.py

在文件的底部插入如下的操作

c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
#设置服务器访问端口为8888(可以自己选择端口)
c.NotebookApp.port = 8888
c.NotebookApp.allow_remote_access = True

设置Jupyter的密码

jupyter notebook password

上述操作就完成了在服务器端配置jupyter note book

服务器端的启动和本地的访问

终端输入命令启动服务

jupyter notebook

会显示服务地址 此处的后半部分是之前设置的端口号,前半部分的网址得换成服务器实际ip地址
在本地浏览器输入上述 ip地址:端口号 就可以访问了

端口映射

如果想使用本地端口(localhost)直接访问。
本地打开cmd(命令行模式)。注意这个打开之后就不要关闭了,否则会使得jupyter断开。
输入如下

#对于我个人的命令
ssh -N -L localhost:8888:localhost:8888 yifanjia@cordial21a.asic.regza.com

这里我们用到了SSH客户端的三个参数,下面我们一一做出解释:

在上一步正确输入密码之后,打开你的浏览器,在网址栏输入本地映射端口就可以访问了(此处是localhost:8888)

详细的想要了解请查看 SSH隧道

Jupyter notebook更改Kernel

jupyter notebook访问的时候默认一个python3环境,如果想添加自己的conda环境方法如下
进入想添加的conda虚拟环境,安装ipykernel

conda install ipykernel

将环境加入到notebook的kernel中

python -m ipykernel install --user --name=自己的环境名称