Я использовал контейнер Nvidia NGC Tensorflow для своего проекта (казалось, путь наименьшего сопротивления для запуска и работы с использованием Tensorflow на моем GPU).Мой текущий рабочий процесс:
1.) Запустите контейнер с помощью утилиты nvidia-docker
2.) Перейдите в каталог моего кода (мои локальные диски видны из контейнера)
3.) Работа с кодом
4.) (По-старому) Выполнение тестов носа из контейнера для выполнения моих тестов
Я принял решение перейти на Pytestи использовать токсикНасколько я понимаю, система Tox использует виртуальные среды для установки вашего модуля Python, а затем запускает тесты Pytest.
Если бы я установил Tensorflow вручную в виртуальной среде Conda или Python, то я мог бы получить доступ к чему-то вродефайл yaml, содержащий информацию о зависимостях, которую Tox может использовать для создания среды тестирования (если я правильно понимаю).Но в настоящее время эта информация о зависимостях находится только в моем Dockerfile, в котором есть какие дополнительные пакеты Python, которые нужно добавить к базовому образу Tensorflow.
Я не совсем понимаю, что будет лучшим способомработать с Pytest & Tox из контейнера Nvidia Docker. Похоже, что контейнер не использует какие-либо виртуальные среды, поэтому все изменения, которые сделал Nvidia, похоже, относятся к системной версии Python3.5, который запускается в контейнере.
Dockerfile, который я использую:
FROM nvcr.io/nvidia/tensorflow:19.01-py3
#For running the neural style example: https://github.com/anishathalye/neural-style
RUN pip install pillow
RUN pip install tox
RUN pip install -U pytest
RUN pip install nose
RUN pip install coverage
RUN pip install logger
RUN pip install scikit-image
RUN pip install keras
#For runing Jupyter notebooks within container
RUN pip install jupyter
EXPOSE 8888
COPY .vimrc /root/.vimrc