如何啟動 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。