各种常用环境配置

本文总结了在深度学习算法研发过程中常用的环境配置方法,包括VS Code 配置SSH,Docker使用,以及Conda常用指令。

VS Code中配置远程连接

假设账户为:
账户名: abc
密码:   abc001
服务器: 180.180.180.180
端口:   1000

外网

首先先本地配置ssh-key

ssh-keygen -f ~/.ssh/abc_key
ssh-copy-id -p 1000 -i ~/.ssh/abc_key abc@180.180.180.180


进入vs code中,安装remote-ssh插件,然后进入到~/.ssh/config文件(点击插件右上方设置按钮进入)

文件中输入如下内容即可完成配置

Host gpu
    HostName 180.180.180.180
    User abc
    Port 1000
    IdentityFile ~/.ssh/abc_key

内网

如果是内网访问,没有端口号的情况下:
假设账户为:
账户名:abc
密码:   abc001
服务器: 180.180.180.180
端口:   1000
配置本地ssh-key,注意这里无需-p 和端口号

ssh-keygen -f ~/.ssh/abc_key  
ssh-copy-id -i ~/.ssh/abc_key hpb@180.167.240.213
vs code中的文件也无需端口号:
Host gpu
    HostName 180.180.180.180
    User hpb
    IdentityFile ~/.ssh/hpb

错误信息

如果报错,尝试删除linux用户根目录下的.vscode_server文件夹

Docker 使用

docker是一个容器,镜像就是一个操作系统,容器就是一个虚拟机,所以使用docker的时候,需要下载一个镜像(配置运行环境的操作系统),然后开启一个容器(虚拟机)加载这个镜像,然后进入容器中,容器内就是一个独立的操作系统,无论怎么操作都跟外部系统无关。

下载镜像

下载镜像,之后可以使用下面命令加载一个镜像
nvidia-docker  load  --input  digits.17.04.tar
打包一个镜像
nvidia-docker save --output ngc-tensorflow.image.tar nvcr.io/nvidia/tensorflow:19.03-py3

基本操作


创建容器

启动一个docker容器,以 nvcr.io/nvidia/pytorch:20.02-py3 镜像为例
nvidia-docker run -it --name torch_all_pengbo -v ~/dataset:/dataset -p 4422:22  nvcr.io/nvidia/pytorch:20.02-py3
下面是容器运行参数,其中需要注意的是:
1. 通过-v设置容器外和容器内部文件夹的关联
2. -p 设置容器外和容器内部端口的映射
3. 使用--name为容器设置一个名称,方便后续查看和操作,名称要包含自己的名字,以及所使用的的GPU的编号,方便管理员管理


其中,文件夹关联映射主要是因为docker删除后,文件全部丢失,建立映射之后,可以避免数据丢失。


配置远程链接

此步骤不是必须步骤,如果需要远程直接连入docker里面的操作系统,那么需要下面步骤。
创建完docker之后,就相当于进入了一个全新的linux系统,这个时候要进行一下几个步骤,为了配置远程环境
第一步:通过docker attach XX 进入 XX docker的控制台,然后进行如下设置
apt-get update  #更新系统
apt install openssh-server # 安装ssh-server
passwd  #更改密码
配置权限,可以使用root直接进行ssh
vim /etc/ssh/sshd_config , PermitRootLogin yes  或者创建一个新用户
service ssh start

如果不想ssh直接连接docker容器,可以直接连上服务器写程序,将程序放置到共享目录中,然后在进入docker执行,目测这种方法更加方便,需要注意的是在docker里面新建的文件默认是root权限,然后在dgx中进行更改的时候会发现没有权限,所以在docker里面新建的文件需要更改一下权限 (chown -R 1021:1021 model  #根据实际情况自行更改命令)


如果不想root直接使用ssh ,可以新建一个用户
useradd -m  -G sudo -g staff user
然后本地就可以ssh直接连上docker的这个环境了
ssh -p 4422 root@192.168.15.1
注意这里需要加入端口号,另外,如果新建了一个容器的话,需要在本地将user/.ssh/known_hosts文件里面的host信息删掉,不然会报错。

容器管理命令

下面的乱码是容器编号,如果创建容器的时候,设置了容器名字,就可以直接用名字代替
查看所有运行的容器: nvidia-docker ps –a


Conda常用命令

更新包

conda update package_name
conda update --all

安装包

conda install numpy scipy pandas
conda install numpy=1.10

删除包

conda remove package_name

创建环境

conda create -n env_name list of packages
conda create -n py3 python=3

环境共享

conda env export > environment.yaml
conda env create -f environment.yaml
对于不用conda的人的共享环境方法
pip freeze > requirements.txt
pip install -r requirements.txt

列出已经安装所有环境

conda info --envs

删除环境

conda env remove -n env_name

posted @ 2020-09-12 20:15  Neo0oeN  阅读(370)  评论(1编辑  收藏  举报