pytorch: 使用docker

2020-09-15  本文已影响0人  不太聪明的亚子

为了不用搭环境去使用GPU服务,然鹅太费钱了,每一分钟都在烧钱,扛不住了,决定自己搭环境吧,毕竟有GPU可用。

1. 服务器上已有的环境就是docker集群,所以很简单,pull一个pytorch的镜像就可以开始啦

官网找合适的pytorch镜像版本,服务器上cuda是11.0的,但官网上面没有该版本,我选择了10.1版本的。

docker pull pytorch/pytorch:1.3-cuda10.1-cudnn7-devel,如果权限不够需要加sudo

(有博客说要和cuda版本一致,否则docker run会报错,我是没办法,只能一试,发现可以run。)

耐心等待就好。

2. 使用docker images查看,看看镜像仓库里是不是有了我们刚刚拉取的镜像

pytorch/pytorch是镜像名称, 1.3-coda10.1-cudnn7-devel是标签, fe0f6ec79dbf是镜像id

3. 使用该镜像创建运行一个容器:sudo docker run -t -i pytorch/pytorch:1.3-cuda10.1-cudnn7-devel /bin/bash

如果想在一开始就设置容器在后台运行,那么需要在-it后面加-d,会返回容器ID

如果想要使用gpu加速, 将docker run改成docker-nvidia run即可。

想直接使用jupyter编辑容器里面的代码可以看这篇.

参数说明:

    -i: 交互式操作。

    -t: 终端。

    pytorch/pytorch:1.3-cuda10.1-cudnn7-devel: 这是指用 pytorch:1.3-cuda10.1-cudnn7-devel 版本镜像为基础来启动容器。

    /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。

@后面的0d10ba3b0aaf就是启动的容器id

4. 常用命令

 docker exit:退出容器(即使run的时候规定了-d后台运行,一样会结束)

Ctrl + P + Q:退出容器保持后台运行

docker ps:查看已有容器 (docker ps -n 1:可以看到刚刚操作的容器,做一个筛选)

因为run的时候没有规定容器的命名,所以想办法改一下这个容器的这些属性。

首先看到容器有ID和名字,但都有点难记,所以还是自己给它命名一个好记。

docker rename old_name  new_name :重命名容器

docker start:启动已被停止的容器

docker stop:停止运行中的容器

docker restart:重启容器

docker exec -it ContainerName /bin/bash:再次进入一个正在运行的容器,使用docker exit也不会真的结束。

docker exec -u 0 -it ContainerName /bin/bash: 以root身份进入容器

docker attach 容器名或id:从后台进入正在运行的容器

docker cp 本地路径 容器ID:容器路径:拷贝本地文件到容器

5. 把数据都拷贝完了之后,就可以使用python xx.py开始跑代码啦,缺什么包就pip安装,优先使用国内源。

pip in install xx -i https://pypi/tuna/tsinghua.edu.cn/simple

如果要指定GPU有好几种方法:

(1)CUDA_VISIBLE_DEVICES = 1 python xx.py (命令行)

(2)os.environ['CUDA_VISIBLE_DEVICES'] = '1' (代码里)

(3)net = Net.cuda(1) (代码里,没试过)

(4)net = torch.nn.DataParallel(model, device_ids=[1]) (代码里,没试过)

推荐一款全能终端神器:MobaXterm,上传下载删除文件很快,对界面用户非常友好,还特别可爱!待机时间长了会有可达鸭飞出来!

上一篇 下一篇

猜你喜欢

热点阅读