docker - 如何在 docker 中运行 tensorflow 项目?
问题描述
我是码头工人的新手,但我已经搜索了很多关于我面临的问题。
我有一个使用 tensorflow、PyQt 和其他包的代码。现在,我已经拉出了tensorflow/tensorflow:1.4.0-gpu-py3
and 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"]
需求.txt
PyOpenGL
PyQt5
opencv-python
解决方案
你有 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。
推荐阅读
- swift - 按路径从 Firebase 存储中检索图像
- c++ - 删除移动和复制构造函数的类的就地构造
- html - 文本前后行,中间是文本,右侧是按钮
- angular - Rxjs管道调用两次,当在地图内进行服务调用时
- android - 如何更新 android COSU 应用程序
- android - 如何在 Android 中实现自定义 Video Recorder App?
- python - 熊猫列提取
- python - 派格莱特。将Sprite放入Batch时如何设置Sprite的“z”轴值
- stm32 - STM32 - RTOS - 最大堆栈大小
- python-3.x - python转义解释(如何触发break)