手把手教你玩转深度学习环境搭建2--Tensorflow、PyTorch镜像使用

目录

前言

一、Tensorflow容器的创建与配置

1.创建容器

2.配置容器

3.提交容器为镜像

二、PyTorch容器的创建与配置

1.创建容器

2.安装jupyter

3.配置容器

4.提交容器为镜像

三、容器的使用

1.从新的镜像中创建容器

2.进入容器并配置

3.使用容器

总结



前言

上一篇文章中,我们已经介绍了如何配置深度学习的基础环境,本文中将继续介绍利用镜像创建容器并使用容器的方法。

基础环境的搭建:

手把手教你玩转深度学习环境搭建1--服务器基础环境搭建


一、Tensorflow容器的创建与配置

上文中已经将Tensorflow1和Tensorflow2的镜像下载完成,由于对于Tensorflow1和Tensorflow2的操作一致,本文将以Tensorflow2为例进行说明

1.创建容器

1).查看目前已有镜像,输入命令:

docker images

 可以看到目前已有的所有镜像,如图:

2).从下载的镜像中运行容器:

docker run -d -it --name="XX" --gpus all XXXXX /bin/bash

其中XX为容器的名称,XXXXX为镜像的名称,如tensorflow/tensorflow:2.2.1-gpu-py3-jupyter等

运行成功后可以通过docker ps命令查询到当前容器:

3).进入容器,输入命令:

docker attach “容器名称”

docker exec -it “容器名称” /bin/bash

 成功进入如图所示,可以看到Tensorflow的logo了:

到这一步,其实已经能够使用Tensorflow,为了更加方便使用,我们后面又安装了一些功能,大家可以根据自己的需要自行选择

2.配置容器

1).安装VIM

更新apt源

apt-get update

安装VIM

apt-get install vim

2).开启SSH

更新apt源

apt-get update

安装SSH

apt-get install openssh-server

允许root远程连接

vim /etc/ssh/sshd_config

PermitRootLogin prohibit-password修改为PermitRootLogin yes

为root设置密码

passwd root

3).配置Jupyter

因为配置本服务器的目的是让更多的人共享服务器,因此需要将容器中的jupyter设置成能通过个人主机进行远程访问使用

生成jupyter的配置文件:

jupyter notebook --generate-config

使用ipython生成密码,生成密码:

ipython
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password: 
Verify password: 
Out[2]: 'sha1:******'

 修改配置文件:

vim "配置文件路径"

修改以下内容:

c.NotebookApp.ip='*'                          #绑定所有地址
c.NotebookApp.password = u'刚才生成的密码'
c.NotebookApp.open_browser = False            #启动后是否在浏览器中自动打开
c.NotebookApp.port =8888                      #指定一个访问端口,默认8888,注意和映射的docker端口对应

3.提交容器为镜像

退出容器:

Ctrl+P+Q

 提交容器

docker commit -m "关于容器的说明" "要提交的容器名称" "提交后的镜像名称"

如我把刚才创建的容器提交为tensorflow2:v1镜像,则:

docker commit -m "关于容器的说明" tf2_test3 tensorflow2:v1

二、PyTorch容器的创建与配置

1.创建容器

PyTorch容器的创建和Tensorflow容器的创建一样,只是在执行docker run时所选择的镜像改为PyTorch镜像,如:

docker run -dit --name="pt_test3" --gpus all pytorch/pytorch:1.7.0-cuda11.0-cudnn8-runtime /bin/bash

2.安装jupyter

不同于Tensorflow的镜像,PyTorch的镜像中并没有预先安装jupyter,因此需要我们在容器中自行安装,安装步骤如下:

1)进入容器

docker exec -it pt_test3 /bin/bash

2)更新apt源

apt-get update

3)安装jupyter

pip install jupyter

3.配置容器

同上面Tensorflow的操作

4.提交容器为镜像

同上面Tensorflow的操作,如:

docker commit -m "关于容器的说明" pt_test3 pytorch:v1

三、容器的使用

创建完成新的镜像后,就可以开始使用容器进行深度学习的训练了,我们需要做如下操作:

1.从新的镜像中创建容器

根据个人需要,可以选择从不同环境,如Tensorflow1、Tensorflow2、PyTorch等。

创建容器的时候,需要将SSH端口和Jupyter端口进行映射,同时把宿主机的文件夹和容器文件夹进行映射,方便日后拷贝文件。

执行如下命令:

docker run -d  -it -p XXXX:22 -p XXX:8888 -v "宿主机文件夹路径":"容器文件夹路径" --name="XX" --gpus all XXXXX /bin/bash

其中: 第一个XXXX为ssh映射端口号,第二个XXXX为jupyter的映射端口号 第三个XX为容器名称,建议容器名称为自己名字的缩写+环境,如hwj_tensorflow,第四个为XXXXX为镜像名称,如pytorch环境使用pytorch:v1 tensorflow环境使用tensorflow:v1

2.进入容器并配置

1)进入容器

docker attach “容器名称”

docker exec -it “容器名称” /bin/bash

2)开启SSH服务

service ssh start

3)开启Jupyter

jupyter notebook --allow-root

如出现jupyter命令没有被找到的情况:

export PATH=$PATH:~/.local/bin

3.使用容器

大家可以通过SSH和Jupyter两种方式进行使用,如果只是日常编写代码,建议直接通过自己的个人电脑连接容器中的jupyter更为方便。如果需要其他操作,如传文件等,建议使用SSH远程连接。

1)通过SSH使用,可以下载XShell软件或使用windows 10自带的ssh远程连接功能,通过服务器地址+映射后的端口号即可,如110.123.456.789:3309

ssh -p 端口号 用户名@服务器IP地址

2)通过jupter连接,只需要在个人电脑浏览器中输入服务器地址+映射后的jupyter端口号即可,如:http://110.123.456.789:9999

注意:两种连接方法,都是连接的容器,因此要使用我们在创建容器时做的映射端口,不是服务器本机的端口。


4.问题汇总

问题1:通过SSH远程连接PyTorch容器时,Python环境不能使用

解决方法:

在 /etc/profile中添加以下代码:

for item in `cat /proc/1/environ |tr '\0' '\n'`
do
 export $item
done

总结

到此,我们就通过两篇文章,完成了最基本的多人GPU服务器共享与环境搭建,在使用的过程中,每人一个容器,相当于每人分到了一个独立的主机,可以在其中进行任意操作而不受其他人的影响。

值得注意的是,在使用的过程中,会有更多的关于docker、jupyter、Tensorflow、PyTorch的使用,我们会通过后面的文章和大家分享。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MrHender

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值