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ìnhtf.keras
. -
run
trong tập lệnh sổ ghi chép có chứa mô hìnhtf.keras
. Cách phổ biến nhất là sử dụngrun
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
.
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:
- 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 .
- 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.
- 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.
- 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.