社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

VS Code + Remote Docker 一种简单的深度学习炼丹环境

机器学习算法与自然语言处理 • 4 年前 • 520 次点击  

公众号关注 “ML_NLP

设为 “星标”,重磅干货,第一时间送达!


来自 | 知乎  作者 | Joya

链接|https://zhuanlan.zhihu.com/p/409445491

本文仅作学术分享,若侵权,请联系后台删文处理


关键词:VS Code, Docker, Remote-Container, Remote-SSH

适用:远程服务器上有计算环境(GPU炼丹炉)想使用 Docker 快速配置环境的 developer/researcher

简单在哪:本方案全程鼠标点点点,不需要该任何.json等配置文件。

关于 Docker 的好处这里不多赘述,可以看下面这篇文章:

https://zhuanlan.zhihu.com/p/64493662

随着宇宙第一编译器 Visual Studio 的弟弟 Visual Studio Code (我也是宇宙第一编辑器!雾)不断的迭代更新,到今天它已经极度适用于远程开发,官方对于 VS Code 远程开发的扩展三剑客:Remote-SSH,Remote-Container,Remote-WSL 给开发者和研究者带来了巨大的便利。

Remote-SSH 大家可能已经熟知,它可以用于连接远程服务器,并在其上安装扩展插件,实现如代码补全/语法检查等令人舒适的功能。

https://code.visualstudio.com/docs/remote/ssh

而 Remote-Container 则是将 Docker 与 VS Code 的优势融为一体的关键先生,可以使得像 Remote-SSH 登录服务器一般登录容器。

假使我们已经能够利用 Remote-SSH 进行远程开发,接下来想要利用 Docker 便捷地配置深度学习环境。整个过程可以简单地分为四步:

(1)利用 Remote-SSH 远程登录,然后安装 Docker 与 Remote-Container 插件:

(2)直接从 dockerhub 拖下来 pytorch 的合适镜像。如果想灵活一点,可以自己 docker build,笔者的 Dockerfile 如下:

FROM pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel# By default, GPU support is built if CUDA is found and torch.cuda.is_available() is true. # It’s possible to force building GPU support by setting FORCE_CUDA=1 environment variable, # which is useful when building a docker image.ENV FORCE_CUDA=1

# From Detectron2# This will by default build detectron2 for all common cuda architectures and take a lot more time,# because inside `docker build`, there is no way to tell which architecture will be used.ARG TORCH_CUDA_ARCH_LIST="Kepler;Kepler+Tesla;Maxwell;Maxwell+Tegra;Pascal;Volta;Turing"ENV TORCH_CUDA_ARCH_LIST="${TORCH_CUDA_ARCH_LIST}"# From MMAction2. Not necessary.RUN apt-get updateRUN apt-get install git vim libgl1-mesa-glx ffmpeg ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6# Not necessary.RUN pip install gpustat pycocotools scipy opencv-python

(3)实例化镜像(images)生成容器(containers):

此处需要注意,用 docker run 实例化镜像时,需要带上 gpu 相关的命令参数,否则在容器里可能看不到 gpu。如,可以使用下列命令:

docker run --gpus all --shm-size=8g -it -v /home/chenjoya/data/:/data chenjoya/pytorch

其中,-v 的意思是 volume,为容器添加与服务器上联通的数据卷。命令最后的参数为镜像名,可以自己设置 tag。

(4)Attach VS Code:

右键容器 attach vs code,开启神奇之旅!

此时 VS Code 会提示我们安装 docker desktop,按照指示安装即可。另,第一次 attach 会比较慢,vs code 会检测正在运行的容器,可以在容器里打开一个文件什么的,让它检测到。

进入容器后,可以安装 python扩展,享受写码的便利:


祝大家开开心心生活,快快乐乐炼丹!


推荐阅读:

H.T. Kung 关于研究的有用建议

什么是Transformer位置编码?

17篇注意力机制PyTorch实现,包含MLP、Re-Parameter系列热门论文

点击下方卡片,关注公众号“机器学习算法与自然语言处理”,获取更多信息:

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/119987
 
520 次点击