Docker

Docker sử dụng các thùng chứa để tạo môi trường ảo cách ly 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 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ỉ 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

  1. Cài đặt Docker trên máy chủ cục bộ của bạn.
  2. Để được hỗ trợ GPU trên Linux, hãy cài đặt hỗ trợ NVIDIA Docker .
    • Hãy lưu ý phiên bản Docker của bạn với docker -v . Các phiên bản trước ngày 19.03 yêu cầu nvidia-docker2 và cờ --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ói nvidia-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.

Tải xuống hình ảnh Docker TensorFlow

Các hình ảnh TensorFlow Docker chính thức được đặt trong kho lưu trữ Docker Hub tensorflow/tensorflow . 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ổ tay 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ụ: phần sau tải xuống hình ảnh phát hành TensorFlow về 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

Khởi động vùng chứa Docker TensorFlow

Để khởi động vùng 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, hãy xem tài liệu tham khảo docker run .

Ví dụ sử dụng hình ảnh chỉ dành cho 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 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 diễn 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 một 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ị trên máy chủ. Thông thường tốt nhất là chỉnh sửa các tập tin 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 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 cần Bộ công cụ NVIDIA® CUDA® ).

Cài đặt Bộ công cụ chứa Nvidia để thêm hỗ trợ GPU NVIDIA® cho Docker. nvidia-container-runtime chỉ có sẵn 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 GPU có sẵn 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 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