[英]How to run an application based on TensorFlow 2 in Docker container?
我對 TensorFlow 比較陌生,所以我一直在嘗試在本地運行簡單的應用程序,一切都很順利。
在某個時候,我想 Dockerize 我的應用程序。 構建 Docker 映像沒有任何錯誤,但是,當我嘗試運行我的應用程序時,我收到以下錯誤:
AttributeError: module 'tensorflow' has no attribute 'gfile'. Did you mean: 'fill'?
在谷歌上搜索了這個問題后,我了解到這是由 TF1 和 TF2 之間的版本差異引起的。 關於我發現的問題的解釋之一是在這里找到。
在本地,我在虛擬環境中使用 TF2(特別是2.9.1
)。
在 dockerizing 時,我還從 docker 容器內部確認我的 TF 版本是相同的。
我還嘗試在交互模式下運行容器,創建虛擬環境,並手動安裝所有依賴項,與我在本地執行的方式完全相同,但仍然沒有成功。
我的 Dockerfile 如下:
FROM python:3-slim
# ENV VIRTUAL_ENV=/opt/venv
# RUN python3 -m venv $VIRTUAL_ENV
# ENV PATH="$VIRTUAL_ENV/bin:$PATH"
WORKDIR /objectDetector
RUN apt-get update
RUN apt-get install -y protobuf-compiler
RUN apt-get install ffmpeg libsm6 libxext6 -y
RUN pip3 install update && python3 -m pip install --upgrade pip
RUN pip3 install tensorflow==2.9.1
RUN pip3 install tensorflow-object-detection-api
RUN pip3 install opencv-python
RUN pip3 install opencv-contrib-python
COPY detect_objects.py .
COPY detector.py .
COPY helloWorld.py .
ADD data data /objectDetector/data/
ADD models /objectDetector/models/
所以我的問題是:如何使用 docker 容器中的 TensorFlow 2 運行應用程序? 我在這里錯過了什么嗎?
提前感謝您的任何幫助或解釋。
我相信在 tensorflow 2.0 中: tf.gfile
被替換為tf.io.gfile
你能試試這個嗎?
祝你今天過得愉快,
加布里埃爾
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.