如何啟動 TensorFlow Docker Jupyter Notebook?
簡介
Jupyter Notebook 對於編寫、測試和除錯程式碼很有用。TensorFlow 是一個機器學習框架,可以與 Jupyter Notebook 一起使用。
在本文中,我們將探討如何使用 Docker 啟動 TensorFlow Jupyter Notebook,這將使我們能夠利用這兩個工具的優勢。
先決條件
在開始之前,您需要在您的機器上安裝 Docker 和 Docker Compose。您可以使用以下命令檢查是否已安裝:
$ docker --version $ docker-compose --version
您可以按照此處提供的作業系統安裝說明進行操作:
https://dockerdocs.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。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP