一个Docker如何通过SSH来实现Pytorch深度学习模型的部署和部署?

时间:2020-07-16 11:27:47

标签: python docker pytorch nvidia-docker

我无法理解如何在具有Nvidia GPU的远程计算机上部署PyTorch docker映像。总的来说,我相对不熟悉Docker,这是我第一次使用Docker进行深度学习。

通过熟悉的python main.py命令行调用,我可以在本地机器上训练我的模型而不会出现问题。但是,现在我必须通过SSH进入这台机器,我才需要使用Docker。

到目前为止,我在不真正知道自己在做什么的情况下提取了一些图像。所以,这是迄今为止我最远的地方:

首先,我通过GitLab存储库将代码传输到计算机上-没什么花哨的。我还通过SSH将一些大型数据集传输到了GitLab存储库的父目录中。即,它看起来像这样:

DeepLearningProject/
├── Data_folder/
│   ├── datasets/
│   ├── results/
│   └── etc...
└── MyGitFolder/
    ├── lots_of_python_files.py
    └── main.py

接下来,由于版本号满足我们的要求,我通过docker pull anibali/pytorch:1.4.0-cuda10.1拉下了以下图片。

在这里猜谜游戏失控了。因此,我有一个包含Pytorch和所有Nvidia东西的图像,但是我仍然缺少我自己的python包依赖项。我不确定此处的安装在哪里进行,例如在requirements.txt文件中。因此,根据我在网上找到的教程,当我运行以下命令时,python报告缺少软件包:

docker run --rm -it --init \
  --gpus=all \
  --ipc=host \
  --user="$(id -u):$(id -g)" \
  --volume="$PWD:/app" \
  anibali/pytorch:1.4.0-cuda10.1 python3 main.py

因此,我想我可以通过排除上述命令的python3 main.py部分来进入bash终端。这只是打开python3解释器接口。我认为这是由于映像的Dockerfile(?)以CMD ["python3"]结尾,因此我不确定如何通过此方法安装需求。

根据要求,请在下面找到缺少的python包的错误消息示例:

Traceback (most recent call last):
  File "main.py", line 16, in <module>
    from model import (generate_model, load_pretrained_model, make_data_parallel,
  File "/app/model.py", line 4, in <module>
    from models import resnet, resnet2p1d, pre_act_resnet, wide_resnet, resnext, densenet
  File "/app/models/resnext.py", line 9, in <module>
    from utils import partialclass
  File "/app/utils.py", line 7, in <module>
    from sklearn.metrics import precision_recall_fscore_support
ModuleNotFoundError: No module named 'sklearn'

我假设此图像的sklearn中没有requirements.txt。执行requirements.txt时,有什么方法可以在自己的docker run中“管道”吗?我认为这是我的主要问题。

任何建议将不胜感激。

0 个答案:

没有答案