【发布时间】:2019-07-21 15:47:18
【问题描述】:
我们正在将 docker 容器部署到使用 Keras 进行机器学习模型的生产中。所以根据 Keras 和 TensorFlow 文档,我们需要 Anaconda 和 Python 3.6(不是 3.7)和两个 python 包 keras 和 tensorflow。
因此,在我们的 dockerfile 中,我们通过安装最新的 Miniconda 即 Python 3.7,然后降级到 Python 3.6.8 来安装低于 3.7(即 3.6.8)的最新版本的 Python:
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 约为 250mb * 降级到 python 3.6.8 增加了 ~200mb * python 包增加了~600mb
有没有办法让这个更轻?当您只想运行模型而不是训练模型时,感觉应该有某种轻量级版本的 TensorFlow 和 Keras。似乎应该有一种方法来清理 python 降级以删除一些不再需要的文件。
更新 澄清一下,这是 larger docker container 的一部分,因此不能选择使用预构建的 tensorflow/tensorflow。
【问题讨论】:
-
这个特定服务器的可管理大小是多少?例如,什么不是巨大的?你能忍受什么?
-
您需要 miniconda 吗?问,因为你是 pip 安装 tf 和 keras。如果没有,或许可以考虑使用 Python:3.6.8-slim 作为基础镜像。
-
[Tensorflow Docker][1] 的这些文档没有说明需要 conda。您能否链接您引用的文档? [1]:tensorflow.org/install/docker
-
Scott——我们希望低于 2gb,但由于我们在容器中安装了一堆其他东西(主要是 R 和 R 包),我们对此没有硬性规定跨度>
-
很奇怪,我一度认为 tensorflow 文档说需要 anaconda,但是当我查看 tensorflow.org/install/pip 时,我认为不需要它。这可能会减少安装的大小。
标签: python docker tensorflow keras anaconda