感谢您关注 Google I/O 大会。欢迎点播观看所有专题演讲点播观看

docker

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

  1. Cài đặt Docker trên máy chủ cục bộ của bạn.
  2. Để 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ó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 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