如何啟動 TensorFlow Docker Jupyter Notebook?


簡介

Jupyter Notebook 對於編寫、測試和除錯程式碼很有用。TensorFlow 是一個機器學習框架,可以與 Jupyter Notebook 一起使用。

在本文中,我們將探討如何使用 Docker 啟動 TensorFlow Jupyter Notebook,這將使我們能夠利用這兩個工具的優勢。

先決條件

在開始之前,您需要在您的機器上安裝 Docker 和 Docker Compose。您可以使用以下命令檢查是否已安裝:

$ docker --version 
$ docker-compose --version

您可以按照此處提供的作業系統安裝說明進行操作:

https://docs.container.club.tw/get-docker/。

此外,如果您希望使用 TensorFlow,則必須擁有一個 Jupyter Notebook 檔案。如果您還沒有 Jupyter Notebook 檔案,可以透過訪問 Jupyter 主頁並選擇“新建”來建立一個新的 Jupyter Notebook 檔案。

方法

您可以利用 Docker 啟動 TensorFlow Jupyter Notebook 的方法有很多。

以下是三種常見的方法,我們將在本文中討論:

  • 使用 Docker Pull 命令

  • 使用自定義 Docker 映象

讓我們詳細探討這三種方法,並透過一些示例來鞏固我們的理解。

使用 Docker Pull 命令

docker pull 命令用於從登錄檔下載 Docker 映象。當您想要啟動 TensorFlow Docker Jupyter Notebook 時,這很有用,因為它允許您拉取一個預先構建的映象,該映象已安裝 TensorFlow 和 Jupyter,而不是自己構建映象。

示例

以下是如何使用 Docker Pull 命令啟動帶有 TensorFlow 的 Jupyter Notebook 伺服器的示例。

步驟 1 − 透過在終端中執行以下命令,從 Docker Hub 拉取 TensorFlow Jupyter Notebook Docker 映象:

$ docker pull tensorflow/tensorflow:latest-jupyter

輸出

latest-jupyter: Pulling from tensorflow/tensorflow
eaead16dc43b: Pulling fs layer
83bb66f4018d: Pulling fs layer
a9d243755566: Pulling fs layer
38d8f03945ed: Waiting
0e62e78ef96b: Pulling fs layer
311604e9ab28: Waiting
584c5149ce07: Waiting
3b5c5b94152b: Waiting
bc4c0cbbecee: Pulling fs layer
e54d9b2b9c14: Waiting
744251fdb607: Pull complete
4b8f13a1718e: Pull complete
576cd80cf2ef: Pull complete
ab9e5d943e8a: Pull complete
948afa4f3678: Pull complete
2881ce411453: Pull complete
3b726e62f5fc: Pull complete
2f02f34d5aa5: Pull complete
b294ff4151bd: Pull complete
48f3a326b505: Pull complete
72ab8332d21f: Pull complete
d6381c50d9a3: Pull complete
77237dfb2f16: Pull complete
Digest: sha256:553be1359899095780cfcfc5bf1c26bca487a606f07a37ba31e1808a98072785
Status: Downloaded newer image for tensorflow/tensorflow:latest-jupyter
docker.io/tensorflow/tensorflow:latest-jupyter

步驟 2 − 使用以下命令執行 TensorFlow Jupyter Notebook Docker 容器:

$ docker run -it -p 8888:8888 tensorflow/tensorflow:latest-jupyter

此命令將在 Docker 容器中啟動 TensorFlow Jupyter Notebook 並公開埠 8888。

輸出

docker run -it -p 8888:8888 tensorflow/tensorflow:latest-jupyter
[I 12:23:48.212 NotebookApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret
jupyter_http_over_ws extension initialized. Listening on /http_over_websocket
[I 12:23:50.824 NotebookApp] Serving notebooks from local directory: /tf
[I 12:23:50.825 NotebookApp] Jupyter Notebook 6.5.2 is running at:
[I 12:23:50.825 NotebookApp] http://2f07aa29bf45:8888/?token=d2b59435738257715a8a74b73d6c6f13e305008d4451c937
[I 12:23:50.825 NotebookApp] or http://127.0.0.1:8888/?token=d2b59435738257715a8a74b73d6c6f13e305008d4451c937
[I 12:23:50.826 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 12:23:50.845 NotebookApp]
To access the notebook, open this file in a browser:
file:///root/.local/share/jupyter/runtime/nbserver-1-open.html
Or copy and paste one of these URLs:
http://2f07aa29bf45:8888/?token=d2b59435738257715a8a74b73d6c6f13e305008d4451c937
or http://127.0.0.1:8888/?token=d2b59435738257715a8a74b73d6c6f13e305008d4451c937
[I 12:24:09.148 NotebookApp] 302 GET / (172.17.0.1) 3.370000ms
[I 12:24:09.212 NotebookApp] 302 GET /tree? (172.17.0.1) 2.230000ms

步驟 3 − TensorFlow Jupyter Notebook 啟動並執行後,您可以透過在 Web 瀏覽器中訪問 https://:8888 來訪問它:

步驟 3 − 要停止 TensorFlow Jupyter Notebook,請在執行 Docker 容器的終端視窗中按“Ctrl+C”。

輸出

^C[I 12:42:41.867 NotebookApp] interrupted

Serving notebooks from local directory: /tf 0 active kernels Jupyter Notebook 6.5.2 is running at: http://2f07aa29bf45:8888/?token=d2b59435738257715a8a74b73d6c6f13e305008d4451c937 or http://127.0.0.1:8888/?token=d2b59435738257715a8a74b73d6c6f13e305008d4451c937 Shutdown this notebook server (y/[n])? y [C 12:42:43.742 NotebookApp] Shutdown confirmed [I 12:42:43.766 NotebookApp] Shutting down 0 kernels [I 12:42:43.804 NotebookApp] Shutting down 0 terminals

步驟 4 − 要再次啟動 TensorFlow Jupyter Notebook,您可以使用與之前相同的 Docker run 命令:

$ docker run -it -p 8888:8888 tensorflow/tensorflow:latest-jupyter

使用自定義 Docker 映象

您可以建立自己的 Docker 映象來自定義 TensorFlow Jupyter Notebook 的環境。為此,您必須編寫一個 Dockerfile,詳細說明基本映象以及您希望包含在內的任何其他依賴項。

要建立自定義 Docker 映象,您需要建立一個定義映象的 Dockerfile。

示例

以下是一個安裝 TensorFlow 和 Jupyter 的 Dockerfile 示例。

步驟 1 − 為您的專案建立一個新目錄並導航到該目錄。

步驟 2 − 在專案目錄中建立一個名為“Dockerfile”的檔案,內容如下:

FROM python:3.8 
RUN pip install tensorflow 
RUN pip install jupyter

這些命令用於從 Python 3.8 版本安裝 TensorFlow 和 Jupyter。

步驟 2 − 要構建映象,您可以在終端中執行以下命令:

$ docker build -t mytensorflow .

構建此 TensorFlow 映象需要一段時間。結果將是一個名為“mytensorflow”的映象。

輸出

[+] Building 465.6s (7/7) FINISHED
=> [internal] load build definition from Dockerfile 0.1s
=> => transferring dockerfile: 107B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/library/python:3.8 2.9s
=> CACHED [1/3] FROM docker.io/library/python:3.8@sha256:3a519327ab069a4e356a8aa279e80b7ef6270e17c5df1493dd0a5b2817 0.0s
=> [2/3] RUN pip install tensorflow 311.0s
=> [3/3] RUN pip install jupyter 75.9s
=> exporting to image 75.4s
=> => exporting layers 75.3s
=> => writing image sha256:14ff4caa7e8b3d2fef9e2a911839f682f720873bd35b8402efda52e8c8ff754f 0.0s
=> => naming to docker.io/library/mytensorflow 0.0s

使用“docker scan”對映象執行 Snyk 測試以查詢漏洞並瞭解如何修復它們

步驟 3 − 在終端中執行以下命令以使用此映象啟動 Jupyter Notebook 伺服器:

$ docker run -it -p 8888:8888 mytensorflow

如果此命令似乎不起作用,請嘗試以下命令:

$ docker run -it -p 8888:8888 tensorflow/tensorflow:latest-jupyter

步驟 4 − 如果前一個命令有效,您應該會在終端中看到一個列印的連結,如果使用備用命令,請使用此連結在新視窗中啟動 TensorFlow Jupyter Notebook:

https://:8888

結論

在本文中,我們探討了如何啟動 TensorFlow Docker Jupyter Notebook。我們查看了啟動 TensorFlow Jupyter Notebook 的三種不同方法,包括使用 TensorFlow Docker 映象、建立自定義 Docker 映象和使用 Docker Compose。使用任何這些方法,您都可以輕鬆設定 TensorFlow Jupyter Notebook 並開始在 Docker 容器中使用 TensorFlow。

更新於: 2023年1月17日

2K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告