Docker sử dụng các thùng chứa để tạo các môi trường ảo tách biệt cài đặt TensorFlow khỏi phần còn lại của hệ thống. Các chương trình TensorFlow được chạy trong môi trường ảo này có thể chia sẻ tài nguyên với máy chủ của nó (truy cập thư mục, sử dụng GPU, kết nối Internet, v.v.). Hình ảnh TensorFlow Docker được kiểm tra cho mỗi bản phát hành.
Docker là cách dễ nhất để kích hoạt hỗ trợ GPU TensorFlow trên Linux vì chỉ yêu cầu trình điều khiển GPU NVIDIA® trên máy chủ (không cần cài đặt Bộ công cụ NVIDIA® CUDA® ).
Yêu cầu về TensorFlow Docker
- Cài đặt Docker trên máy chủ cục bộ của bạn.
- Để hỗ trợ GPU trên Linux, hãy cài đặt hỗ trợ NVIDIA Docker .
- Ghi lại phiên bản Docker của bạn với
docker -v
. Các phiên bản cũ hơn 19.03 yêu cầu cờ nvidia-docker2 và--runtime=nvidia
. Trên các phiên bản bao gồm và sau ngày 19.03, bạn sẽ sử dụng góinvidia-container-toolkit
và cờ--gpus all
. Cả hai tùy chọn đều được ghi lại trên trang được liên kết ở trên.
- Ghi lại phiên bản Docker của bạn với
Tải xuống hình ảnh TensorFlow Docker
Các hình ảnh TensorFlow Docker chính thức được đặt trong kho lưu trữ Tensorflow/tensorflow Docker Hub. Bản phát hành hình ảnh được gắn thẻ bằng định dạng sau:
Nhãn | Sự miêu tả |
---|---|
latest | Bản phát hành mới nhất của hình ảnh nhị phân CPU TensorFlow. Mặc định. |
nightly | Bản dựng hàng đêm của hình ảnh TensorFlow. (Không ổn định.) |
version | Chỉ định phiên bản của hình ảnh nhị phân TensorFlow, ví dụ: 2.8.3 |
Mỗi thẻ cơ sở có các biến thể bổ sung hoặc thay đổi chức năng:
Biến thể thẻ | Sự miêu tả |
---|---|
tag -gpu | Bản phát hành thẻ được chỉ định có hỗ trợ GPU. ( Xem bên dưới ) |
tag -jupyter | Bản phát hành thẻ được chỉ định với Jupyter (bao gồm sổ ghi chép hướng dẫn TensorFlow) |
Bạn có thể sử dụng nhiều biến thể cùng một lúc. Ví dụ: các bản tải xuống TensorFlow giải phóng hình ảnh sau đây vào máy của bạn:
docker pull tensorflow/tensorflow # latest stable release
docker pull tensorflow/tensorflow:devel-gpu # nightly dev release w/ GPU support
docker pull tensorflow/tensorflow:latest-gpu-jupyter # latest release w/ GPU support and Jupyter
Bắt đầu bộ chứa TensorFlow Docker
Để bắt đầu một bộ chứa được định cấu hình TensorFlow, hãy sử dụng mẫu lệnh sau:
docker run [-it] [--rm] [-p hostPort:containerPort] tensorflow/tensorflow[:tag] [command]
Để biết chi tiết, xem tài liệu tham khảo chạy docker .
Ví dụ sử dụng hình ảnh chỉ CPU
Hãy xác minh cài đặt TensorFlow bằng hình ảnh được gắn thẻ latest
. Docker tải xuống một hình ảnh TensorFlow mới trong lần chạy đầu tiên:
docker run -it --rm tensorflow/tensorflow \ python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
Hãy trình bày thêm một số công thức TensorFlow Docker. Bắt đầu phiên bash
shell trong vùng chứa được định cấu hình TensorFlow:
docker run -it tensorflow/tensorflow bash
Trong vùng chứa, bạn có thể bắt đầu phiên python
và nhập TensorFlow.
Để chạy chương trình TensorFlow được phát triển trên máy chủ trong vùng chứa, hãy gắn thư mục máy chủ và thay đổi thư mục làm việc của vùng chứa ( -v hostDir:containerDir -w workDir
):
docker run -it --rm -v $PWD:/tmp -w /tmp tensorflow/tensorflow python ./script.py
Các vấn đề về quyền có thể phát sinh khi các tệp được tạo trong vùng chứa được hiển thị với máy chủ lưu trữ. Thông thường tốt nhất là chỉnh sửa tệp trên hệ thống máy chủ.
Khởi động máy chủ Jupyter Notebook bằng cách sử dụng bản dựng hàng đêm của TensorFlow:
docker run -it -p 8888:8888 tensorflow/tensorflow:nightly-jupyter
Làm theo hướng dẫn và mở URL trong trình duyệt web lưu trữ của bạn: http://127.0.0.1:8888/?token=...
hỗ trợ GPU
Docker là cách dễ nhất để chạy TensorFlow trên GPU vì máy chủ chỉ yêu cầu trình điều khiển NVIDIA® (không yêu cầu Bộ công cụ NVIDIA® CUDA® ).
Cài đặt Nvidia Container Toolkit để thêm hỗ trợ GPU NVIDIA® vào Docker. nvidia-container-runtime
chỉ khả dụng cho Linux. Xem Câu hỏi thường gặp về hỗ trợ nền tảng nvidia-container-runtime
để biết chi tiết.
Kiểm tra xem có GPU không:
lspci | grep -i nvidia
Xác minh cài đặt nvidia-docker
của bạn:
docker run --gpus all --rm nvidia/cuda nvidia-smi
Ví dụ sử dụng hình ảnh hỗ trợ GPU
Tải xuống và chạy hình ảnh TensorFlow hỗ trợ GPU (có thể mất vài phút):
docker run --gpus all -it --rm tensorflow/tensorflow:latest-gpu \ python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
Có thể mất một chút thời gian để thiết lập hình ảnh hỗ trợ GPU. Nếu liên tục chạy các tập lệnh dựa trên GPU, bạn có thể sử dụng docker exec
để sử dụng lại vùng chứa.
Sử dụng hình ảnh GPU TensorFlow mới nhất để bắt đầu phiên bash
shell trong vùng chứa:
docker run --gpus all -it tensorflow/tensorflow:latest-gpu bash