Почему изображение Docker Pytorch не поставляется с факелом? - PullRequest
0 голосов
/ 07 июля 2019

Я пытаюсь создать Docker-контейнер, который позволит мне запускать мой код, для которого требуется модуль python torch.

Я решил запустить свое изображение из базового образа pytorch/pytorch:latest и вручную добавить несколько необходимых модулей.Сборка, отправка и извлечение на удаленный сервер прошли успешно (по крайней мере, без сообщений об ошибках).

В настоящее время мой Dockerfile выглядит следующим образом:

FROM pytorch/pytorch:latest

RUN apt-get update \
     && apt-get install -y \
        libgl1-mesa-glx \
        libx11-xcb1 \
     && apt-get clean all \
     && rm -r /var/lib/apt/lists/*

RUN /opt/conda/bin/conda install --yes \
    astropy \
    matplotlib \
    pandas \
    glob2 \
    PIL \
    scikit-learn \
    scikit-image \
    numpy

Однако при запуске сценария Pythonвнутри контейнера я получаю ImportError: No module named torch.Это кажется мне довольно странным, так как заставляет меня предположить, что базовый образ pytorch не включает модуль факела ...?

Я, тем не менее, пытался добавить torch в список модулей для установкив Dockerfile, но тогда первоначальная сборка уже завершится с ошибкой PackagesNotFoundError: The following packages are not available from current channels: - torch.Следование совету, данному здесь , к сожалению, не помогло мне.

Буду признателен за любое объяснение того, почему модуль горелки не может быть найден внутри встроенного контейнера, и, конечно, за любую помощьисправить эту проблему!Спасибо!

1 Ответ

1 голос
/ 07 июля 2019

Во-первых, ваше предположение неверно, чтобы проверить это, вам просто нужно запустить контейнер из базового образа, так как вы можете проверить официальный Dockerfile или запустить сначала базовый образ, который pytorch / pytorch: последняя и убедитесь, что базовый образ работает так, как вам нужно?

Вот список установленных модулей в официальном образе, а внизу списка вы можете увидеть факел.

enter image description here

Вот простой пример с факелом, использующим базовое изображение.

enter image description here

Что касается вашего Dockerfile, то пакет PIL ломает сборку Docker с нуля, но этого не видно, если pytorch является базовым образом.

enter image description here

По какой-то причине на дочернем изображении мне не удалось найти факел, поэтому он установил его с помощью pip intall и затем смог работать.

enter image description here

Вот Dockerfile ОТ pytorch / pytorch: последние

RUN apt-get update \
     && apt-get install -y \
        libgl1-mesa-glx \
        libx11-xcb1 \
     && apt-get clean all \
     && rm -r /var/lib/apt/lists/*

RUN /opt/conda/bin/conda install --yes \
    astropy \
    matplotlib \
    pandas \
    glob2 \
    scikit-learn \
    scikit-image \
    numpy \ 
    torch

Обновлено: Вот способ сделать факел доступным

    FROM pytorch/pytorch:latest

RUN apt-get update \
     && apt-get install -y \
        libgl1-mesa-glx \
        libx11-xcb1 \
     && apt-get clean all \
     && rm -r /var/lib/apt/lists/*

RUN /opt/conda/bin/conda install --yes \
    astropy \
    matplotlib \
    pandas \
    scikit-learn \
    scikit-image 

RUN pip install torch

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...