Docker sử dụng vùng chứa để tạo môi trường ảo cô lập cài đặt TensorFlow vớ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 với Internet, v.v.). Các hình ảnh TensorFlow Docker được thử nghiệm 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ỉ cần có 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 của TensorFlow Docker
- Cài đặt Docker trên máy chủ cục bộ của bạn.
- Để được hỗ trợ GPU trên Linux, hãy cài đặt hỗ trợ NVIDIA Docker .
- Ghi chú phiên bản Docker của bạn với
docker -v
. Các phiên bản trước 19.03 yêu cầu nvidia-docker2 và cờ --runtime--runtime=nvidia
. Trên các phiên bản bao gồm và sau 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 chú 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 nằm 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 | Các 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.1.0 |
devel | Hàng đêm xây dựng môi trường phát triển master TensorFlow. Bao gồm mã nguồn TensorFlow. |
custom-op | Hình ảnh thử nghiệm đặc biệt để phát triển các hoạt động tùy chỉnh TF. Thông tin thêm ở đây . |
Mỗi thẻ cơ sở có các biến thể thêm hoặc thay đổi chức năng:
Các 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ụ: tải xuống hình ảnh phát hành TensorFlow 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 một vùng chứa TensorFlow Docker
Để bắt đầu một vùng chứa được 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, hãy xem tham chiếu 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 hình ảnh TensorFlow mới lần đầu tiên nó được chạy:
docker run -it --rm tensorflow/tensorflow \ python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
Hãy cùng minh họa thêm một số công thức TensorFlow Docker. Bắt đầu phiên shell bash
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 kết 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 tiếp xúc với máy chủ. Tốt nhất là bạn nên chỉnh sửa tệp trên hệ thống máy chủ.
Khởi động máy chủ Jupyter Notebook bằ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 chủ 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 đặtBộ công cụ vùng chứa Nvidia để thêm hỗ trợ GPU NVIDIA® cho 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 lúc để 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 trình docker exec
để sử dụng lại một vùng chứa.
Sử dụng hình ảnh GPU TensorFlow mới nhất để bắt đầu phiên shell bash
trong vùng chứa:
docker run --gpus all -it tensorflow/tensorflow:latest-gpu bash