我試圖運行一個簡單的碼頭容器與Tensorflow可用(首先與CPU)。我認爲只設置一次Dockerimage是一個好主意(即每次運行容器時都不更新張量流版本)。在碼頭集裝箱或碼頭影像中使用Tensorflow的正確方法是什麼?
# This means you derive your docker image from the tensorflow docker image
FROM gcr.io/tensorflow/tensorflow
然而
,當我跑我的碼頭工人容器我做pip list
和沒:
爲此,我建議做,因爲在我的Dockerfile遵循(註釋從給我的建議,源來) 「看不到Tensorflow可在任何地方加上當我跑我的劇本,我得到了熟悉的錯誤:
ImportError: No module named 'tensorflow'
我想到了一個辦法來解決這個由僅僅有我Dockerfile明確pip3 install
tensorflow。我計劃做一個bash腳本,並有我的Dockerfile運行:
# bash script intall_tensorflow.sh
# to install Tensorflow in container
export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.12.0rc1-py3-none-any.whl
pip3 install --upgrade $TF_BINARY_URL
,然後只需添加到泊塢窗文件:
RUN sh intall_tensorflow.sh
然而,我的直覺告訴我,這可能是錯誤的或過於哈克。爲什麼我會首先需要tensorflow基礎圖像FROM gcr.io/tensorflow/tensorflow
,如果我以後要手動安裝Tensorflow?
我試過在線研究gcr.io/tensorflow/tensorflow
可能在做什麼,但我還沒有發現任何超級有用的東西。是否有人知道什麼是從圖像本身(例如,構建Docker鏡像)在Docker容器中提供Tensorflow的正確方法?
對不起,如果我真的很密集,但它只是覺得我做錯了什麼,我找不到解決我的問題的在線問題。
在看了答案後,似乎主要問題可能是python 3由於某種原因找不到tensorflow,但是python 2可以。這是否意味着我需要自己直接安裝TensorFlow(在docker映像中使用pip)以便正確版本的TensorFlow可用?
我複製了你的建議。看來,當我做python3它不能識別tensorflow被安裝。也許'gcr.io/tensorflow/tensorflow'使用tensorflow二進制python 2.你知道這是真的嗎?另外,是否沒有其他方式,除了手動(如我所建議的),在docker中安裝python 3的tensorflow? –
另外,爲什麼你需要在docker運行結束時使用bash命令,似乎沒有它,這個特定的圖像會出現一些奇怪的筆記本警告,這些警告似乎存在安全問題。但是,似乎運行沒有其他圖像bash的容器是好的。你知道爲什麼有時需要打屁股,有時不打算? –
是的,實際上,只需使用適當的標籤,例如gcr。io/tensorflow/tensorflow:latest-py3。對於不同標籤的列表,您可以在這裏查找示例:https://hub.docker.com/r/tensorflow/tensorflow/tags/或者只需按照瀏覽器中的gcr.io/tensorflow/tensorflow鏈接 –