Как запустить проект tenorflow в докере? - PullRequest
0 голосов
/ 13 декабря 2018

Я новичок в докере, но я столько искал о проблеме, с которой сталкиваюсь.

У меня есть код, в котором я использую tenorflow, PyQt и другие пакеты.Теперь я вытащил tensorflow/tensorflow:1.4.0-gpu-py3 и nvidia/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"]

require.txt

PyOpenGL
PyQt5
opencv-python

1 Ответ

0 голосов
/ 13 декабря 2018

У вас есть 3 отдельных контейнера докеров, Nvidia, Tensorflow и ваше приложение.

Когда вы включаете TennSflow в приложение Python, там нет пакета Tensorflow, он находится в отдельном контейнере.

Предложение состоит в том, чтобы удалить контейнер Tensor-flow и добавить приложение в образ tenorflow.

В вашем Dockerfile измените FROM-образ:

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

Затем измените другие части установки Dockerfile, так как изображение tenorflowуже установлен python3.

...