【问题标题】:How to run tensorflow project in docker?如何在 docker 中运行 tensorflow 项目?
【发布时间】:2018-12-13 07:35:29
【问题描述】:

我是 docker 的新手,但我已经搜索了很多关于我面临的问题。

我有一个代码,我在其中使用 tensorflow、PyQt 和其他包。现在,我拉出了tensorflow/tensorflow:1.4.0-gpu-py3nvidia/cuda:8.0-cudnn6-runtime。此外,我还构建了具有一些依赖项的应用程序映像。

我尝试使用 docker-compose 运行上述所有图像,如下所示:

version: '3'
services:
  nvidia:
    image: "nvidia/cuda:8.0-cudnn6-runtime"

  tensorflow:
    image: "tensorflow/tensorflow:1.4.0-gpu-py3"

  app:
    image: my_app

但我收到错误ImportError: No module named 'tensorflow'

请通过建议我应该解决这个问题的方式来帮助我。

编辑:

以下代码示例只是我的几行代码。

import sys
from PyQt5 import QtCore, QtGui, QtQml, QtQuick
from OpenGL import GL
import cv2 # .cv2 as cv2
from multiprocessing import Process,Queue, Value, Manager
import os
import tensorflow as tf

编辑:

# Use an official Python runtime as a parent image
FROM ubuntu:16.04

# Set the working directory to /app
WORKDIR /app

# Copy the current directory contents into the container at /app
COPY . /app

RUN \
  apt-get update && \
  apt-get install -y python python-dev python-pip python-virtualenv && \
  rm -rf /var/lib/apt/lists/*


RUN apt-get update && apt-get install -y --no-install-recommends apt-utils && apt-get install -y libgtk2.0-dev python python-dev python3 python3-dev python3-pip

RUN apt-get update && apt-get install -y build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

RUN pip install setuptools pip --upgrade --force-reinstall


# Install any needed packages specified in requirements.txt
RUN pip install --trusted-host pypi.python.org -r requirements.txt

#RUN apt-get update -y

# Install packages
#RUN apt-get install -y curl
#RUN apt-get install -y postgresql
#RUN apt-get install -y postgresql-client
#RUN apt-get install -y python3-numpy python3-opengl python-qt4 python-qt4-gl


# Run app.py when the container launches
CMD ["python3", "Working.py"]

requirement.txt

PyOpenGL
PyQt5
opencv-python

【问题讨论】:

  • 请分享my_app图片代码
  • @Edmhs:我已经添加了。 working.py 是由qt 代码组成的简单图像分类代码。

标签: docker tensorflow docker-compose dockerfile docker-swarm


【解决方案1】:

您有 3 个独立的 docker 容器,Nvidia、Tensorflow 和您的应用程序。

当你在 python 应用程序中包含 tensorflow 时,那里没有 Tensorflow 包,它在单独的容器中。

建议移除Tensor-flow容器,将app添加到tensorflow镜像中。

在你的 Dockerfile 中更改 FROM 映像:

FROM ubuntu:16.04 to FROM tensorflow/tensorflow:1.4.0-gpu-py3

然后更改Dockerfile安装的其他部分,因为tensorflow镜像已经安装了python3。

【讨论】:

  • 谢谢@Edmhs,这几乎对我有用。我收到qt.qpa.screen: QXcbConnection: Could not connect to display Could not connect to any X display. 错误
  • 这个错误与Display apps有关,可能是python-qt4,你应该研究“Running GUI apps with Docker”
猜你喜欢
  • 1970-01-01
  • 2020-01-26
  • 2019-06-19
  • 1970-01-01
  • 2016-04-14
  • 2019-05-21
  • 1970-01-01
  • 1970-01-01
  • 2021-10-02
相关资源
最近更新 更多