Мы внедряем док-контейнеры в производство, которые используют Keras для моделей машинного обучения.Итак, в соответствии с документацией Keras и TensorFlow, нам нужно иметь Anaconda с Python 3.6 (не 3.7) и два пакета python keras и tenorflow.
Итак, в нашем dockerfile мы устанавливаем последнюю версию Python ниже 3.7 (т. Е. 3.6.8), устанавливая последнюю версию Miniconda, которая является Python 3.7, а затем понижаем версию до Python 3.6.8:
RUN wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-4.5.12-Linux-x86_64.sh -O ~/miniconda.sh && \
/bin/bash ~/miniconda.sh -b -p /opt/conda && \
rm ~/miniconda.sh && \
/opt/conda/bin/conda clean -tipsy && \
ln -s /opt/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh && \
echo ". /opt/conda/etc/profile.d/conda.sh" >> ~/.bashrc && \
echo "conda activate base" >> ~/.bashrc
ENV PATH /opt/conda/bin:$PATH
RUN /opt/conda/bin/conda install python=3.6.8
Затем мы устанавливаем необходимые библиотеки python:
RUN /opt/conda/bin/pip install --no-cache-dir keras tensorflow
В итоге получается очень много: * Miniconda составляет ~ 250 МБ * Снижение до Python 3.6.8 добавляет ~ 200 МБ * Пакеты Python добавляют ~ 600 МБ
Есть ли способы сделать это легче? чувствует, что как будто должна быть какая-то облегченная версия TensorFlow и Keras, когда вы хотите только запускать модели, а не обучать их.Также кажется, что должен быть способ очистить версию Python, чтобы удалить некоторые ненужные файлы.
Обновление Для пояснения, это часть более крупного док-контейнера , поэтому использование встроенного метода tenorflow / tenorflow не является возможным.