tensorflow gpu docker映像中的Python 3.6

时间:2018-07-03 06:45:57

标签: python-3.x docker tensorflow

如何在tensorflow docker images中使用python3.6。

我尝试过的所有图像(最新的,晚安的)都使用python3.5,并且我不想修改所有脚本。

4 个答案:

答案 0 :(得分:1)

Tensorflow映像基于Ubuntu 16.04,如您从Dockerfile所见。此版本标配Python 3.5。

因此,即使您需要使用parameterized_docker_build.sh脚本进行实际构建,也必须重新构建映像,并且Dockerfile需要进行编辑。

This answer on ask Ubuntu介绍了如何在Ubuntu 16.04上获取Python 3.6

最简单的方法可能只是将Dockerfile中的From行更改为FROM ubuntu:16.10,并将初始python行中的python3.6更改为apt-get install

当然,这可能会破坏某些其他Ubuntu版本特定的功能,因此一种替代方法是保留Ubuntu 16.04并安装链接的答案中也列出的替代ppa之一:

RUN add-apt-repository ppa:deadsnakes/ppa &&
    apt-get update &&
    apt-get install -y python3.6
  • 请注意,您需要在初始apt-get install之后使用它,因为这会安装software-properties-common,您需要添加ppa。
  • 还请注意,如对链接答案的注释一样,您将需要符号链接到Python 3.6。
  • 最后,请注意,我还没有尝试过任何方法。可能很麻烦,您可能需要进行其他更改以确保正在运行的容器使用了正确的Python版本。

David Zarebski的回答很明确。您确定要使用Python 3.6吗?

答案 1 :(得分:1)

您可以使用第三方提供的稳定图像,例如ufoym/deepo。 可以使用here找到适合TensorFlow,python3.6和cuda10的版本,也可以使用命令docker pull ufoym/deepo:py36-cu100

直接将其拉出

我一直在使用他们的图像,从未遇到问题

答案 2 :(得分:0)

也许我创建的图像可以为您提供帮助。它基于cuda-10.0-devel映像并且安装了tensorflow 2.0a-gpu。

您可以将其用作自己的实现的基础映像。图像本身不执行任何操作。我将图像放在dockerhub https://cloud.docker.com/repository/docker/patientzero/tensorflow2.0a-gpu-py3.6

github仓库位于此处:https://github.com/patientzero/tensorflow2.0-python3.6-Docker

拉它并不会做很多事情,但是为了完整性:

$ docker pull patientzero/tensorflow2.0-gpu-py3.6

edit:更改为常规tensorflow 2.0x图像。 同样如here所述,测试版2.0的正式映像现在带有python 3.6支持

答案 3 :(得分:0)

有了这个答案,我只想说明如何解决此问题(SiHa的先前答案对我有很大帮助,但我必须添加一些步骤才能完全起作用)。

上下文:

我正在使用一个需要unet++tensorflow==1.4.0的软件包(keras==2.2.2的细分模型)。 我尝试将docker映像用于tensorflow 1.4.0,但是此映像的python默认版本为3.5,与我的软件包不兼容。

由于以下文件,我设法在docker映像上安装了python3.6

我的Dockerfile包含以下几行:

Dockerfile:

FROM tensorflow/tensorflow:1.4.0-gpu-py3

RUN mkdir /AI_PLATFORM
WORKDIR /AI_PLATFORM

COPY ./install.sh ./install.sh
COPY ./requirements.txt ./requirements.txt
COPY ./computer_vision ./computer_vision
COPY ./config.ini ./config.ini

RUN bash install.sh

Install.sh:

#!/urs/bin/env bash

pip install --upgrade pip
apt-get update
apt-get install -y python3-pip
add-apt-repository ppa:deadsnakes/ppa &&
apt-get update &&
apt-get install python3.6 --assume-yes
apt-get install libpython3.6
python3.6 -m pip install --upgrade pip
python3.6 -m pip install -r requirements.txt

三件事很重要:

  • 使用python3.6 -m pip代替pip,否则将软件包安装在python 3.5默认版本的Ubuntu 16.04
  • 使用docker run python3.6 <command>python==3.6运行容器
  • 在requirements.txt文件中,我必须指定以下内容:
h5py==2.10.0
tensorflow-gpu==1.4.1
keras==2.2.2
keras-applications==1.0.4
keras-preprocessing==1.0.2

我希望这个答案会有用