Hướng dẫn sử dụng

API tfc.run cho phép bạn đào tạo các mô hình của mình trên quy mô lớn trên GCP.

API tfc.run có thể được sử dụng theo bốn cách khác nhau. Điều này được xác định bởi nơi bạn đang chạy API (tập lệnh Python và sổ ghi chép Python) và tham số entry_point của bạn:

  • Tệp Python dưới dạng entry_point .
  • Tệp sổ ghi chép dưới dạng entry_point .
  • run trong tập lệnh Python chứa mô hình tf.keras .
  • run trong tập lệnh sổ ghi chép có chứa mô hình tf.keras . Cách phổ biến nhất là sử dụng run trong sổ ghi chép.

entry_point là một (đường dẫn đến a) tập lệnh Python hoặc tệp sổ ghi chép hoặc None . Nếu None , toàn bộ Tệp hiện tại sẽ được gửi tới Google Cloud.

Sử dụng tệp Python làm entry_point .

Nếu bạn có mô hình tf.keras trong tệp python ( mnist_example.py ), thì bạn có thể viết tập lệnh đơn giản sau ( scale_mnist.py ) để mở rộng mô hình của mình trên GCP.

import tensorflow_cloud as tfc
tfc.run(entry_point='mnist_example.py')

Xin lưu ý rằng tất cả các tệp trong cùng cây thư mục với entry_point sẽ được đóng gói trong hình ảnh docker đã tạo, cùng với tệp entry_point . Bạn nên tạo một thư mục mới để chứa từng dự án đám mây, bao gồm các tệp cần thiết và không có gì khác để tối ưu hóa thời gian xây dựng hình ảnh.

Sử dụng tệp sổ ghi chép dưới dạng entry_point .

Nếu bạn có mô hình tf.keras trong tệp sổ ghi chép ( mnist_example.ipynb ), thì bạn có thể viết tập lệnh đơn giản sau ( scale_mnist.py ) để mở rộng mô hình của mình trên GCP.

import tensorflow_cloud as tfc
tfc.run(entry_point='mnist_example.ipynb')

Xin lưu ý rằng tất cả các tệp trong cùng cây thư mục với entry_point sẽ được đóng gói trong hình ảnh docker đã tạo, cùng với tệp entry_point . Giống như tập lệnh python entry_point ở trên, chúng tôi khuyên bạn nên tạo một thư mục mới để chứa từng dự án đám mây, bao gồm các tệp cần thiết và không có tệp nào khác để tối ưu hóa thời gian xây dựng hình ảnh.

Sử dụng run trong tập lệnh Python có chứa mô hình tf.keras .

Bạn có thể sử dụng API run từ trong tệp python chứa mô hình tf.keras ( mnist_scale.py ). Trong trường hợp sử dụng này, entry_point phải là None . API run có thể được gọi ở bất cứ đâu và toàn bộ tệp sẽ được thực thi từ xa. API có thể được gọi ở cuối để chạy tập lệnh cục bộ nhằm mục đích gỡ lỗi (có thể có ít kỷ nguyên hơn và các cờ khác).

import tensorflow_datasets as tfds
import tensorflow as tf
import tensorflow_cloud as tfc

tfc.run(
    entry_point=None,
    distribution_strategy='auto',
    requirements_txt='requirements.txt',
    chief_config=tfc.MachineConfig(
            cpu_cores=8,
            memory=30,
            accelerator_type=tfc.AcceleratorType.NVIDIA_TESLA_T4,
            accelerator_count=2),
    worker_count=0)

datasets, info = tfds.load(name='mnist', with_info=True, as_supervised=True)
mnist_train, mnist_test = datasets['train'], datasets['test']

num_train_examples = info.splits['train'].num_examples
num_test_examples = info.splits['test'].num_examples

BUFFER_SIZE = 10000
BATCH_SIZE = 64

def scale(image, label):
    image = tf.cast(image, tf.float32)
    image /= 255
    return image, label

train_dataset = mnist_train.map(scale).cache()
train_dataset = train_dataset.shuffle(BUFFER_SIZE).batch(BATCH_SIZE)

model = tf.keras.Sequential([
    tf.keras.layers.Conv2D(32, 3, activation='relu', input_shape=(
        28, 28, 1)),
    tf.keras.layers.MaxPooling2D(),
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(64, activation='relu'),
    tf.keras.layers.Dense(10, activation='softmax')
])

model.compile(loss='sparse_categorical_crossentropy',
              optimizer=tf.keras.optimizers.Adam(),
              metrics=['accuracy'])
model.fit(train_dataset, epochs=12)

Xin lưu ý rằng tất cả các tệp trong cùng cây thư mục với tập lệnh python sẽ được đóng gói trong hình ảnh docker được tạo, cùng với tệp python. Bạn nên tạo một thư mục mới để chứa từng dự án đám mây, bao gồm các tệp cần thiết và không có gì khác để tối ưu hóa thời gian xây dựng hình ảnh.

Sử dụng run trong tập lệnh sổ ghi chép có chứa mô hình tf.keras .

Hình ảnh của colab

Trong trường hợp sử dụng này, entry_point phải là None và phải chỉ định docker_config.image_build_bucket để đảm bảo bản dựng có thể được lưu trữ và xuất bản.

Điều gì xảy ra khi bạn gọi run ?

Lệnh gọi API sẽ thực hiện những việc sau:

  1. Tạo các thực thể mã như tập lệnh/sổ ghi chép Keras, đám mây và phân phối sẵn sàng .
  2. Chuyển đổi thực thể phân phối này thành vùng chứa docker với các phần phụ thuộc bắt buộc.
  3. Triển khai vùng chứa này trên quy mô lớn và đào tạo bằng cách sử dụng chiến lược phân phối TensorFlow.
  4. Truyền phát nhật ký và giám sát chúng trên TensorBoard được lưu trữ, quản lý bộ nhớ điểm kiểm tra.

Theo mặc định, trình nền Docker cục bộ để xây dựng và xuất bản hình ảnh Docker lên sổ đăng ký vùng chứa của Google. Hình ảnh được xuất bản lên gcr.io/your-gcp-project-id . Nếu bạn chỉ định docker_config.image_build_bucket thì chúng tôi sẽ sử dụng bản dựng Google Cloud để xây dựng và xuất bản hình ảnh docker.

Nền tảng Google AI được sử dụng để triển khai hình ảnh Docker trên Google Cloud.