tfc.run
API به شما امکان می دهد مدل های خود را در مقیاس GCP آموزش دهید.
tfc.run
API را می توان به چهار روش مختلف استفاده کرد. این با محل اجرای API (اسکریپت پایتون در مقابل نوت بوک پایتون) و پارامتر entry_point
شما تعریف می شود:
- فایل پایتون به عنوان
entry_point
. - فایل نوت بوک به عنوان
entry_point
. - در یک اسکریپت پایتون که شامل مدل
tf.keras
استrun
. - در یک اسکریپت نوت بوک که شامل مدل
tf.keras
استrun
. رایج ترین راه استفاده ازrun
in notebook است.
entry_point
یک (مسیر به a) اسکریپت پایتون یا فایل نوت بوک یا None
است. اگر None
، کل فایل فعلی به Google Cloud ارسال میشود.
استفاده از فایل پایتون به عنوان entry_point
.
اگر مدل tf.keras
خود را در یک فایل پایتون ( mnist_example.py
) دارید، می توانید اسکریپت ساده زیر ( scale_mnist.py
) را بنویسید تا مدل خود را در GCP مقیاس کنید.
import tensorflow_cloud as tfc
tfc.run(entry_point='mnist_example.py')
لطفاً توجه داشته باشید که تمام فایلهای موجود در درخت دایرکتوری مشابه entry_point
در تصویر docker ایجاد شده به همراه فایل entry_point
بستهبندی میشوند. توصیه می شود برای بهینه سازی زمان ساخت تصویر، یک دایرکتوری جدید برای قرار دادن هر پروژه ابری ایجاد کنید که شامل فایل های ضروری و هیچ چیز دیگری نیست.
استفاده از فایل نوت بوک به عنوان entry_point
.
اگر مدل tf.keras
خود را در یک فایل نوت بوک ( mnist_example.ipynb
) دارید، می توانید اسکریپت ساده زیر ( scale_mnist.py
) را بنویسید تا مدل خود را در GCP مقیاس کنید.
import tensorflow_cloud as tfc
tfc.run(entry_point='mnist_example.ipynb')
لطفاً توجه داشته باشید که تمام فایلهای موجود در درخت دایرکتوری مشابه entry_point
در تصویر docker ایجاد شده به همراه فایل entry_point
بستهبندی میشوند. مانند اسکریپت پایتون entry_point
بالا، ما توصیه میکنیم یک فهرست جدید برای قرار دادن هر پروژه ابری ایجاد کنید که شامل فایلهای ضروری و هیچ چیز دیگری نیست، تا زمان ساخت تصویر را بهینه کنید.
استفاده از run
در اسکریپت پایتون که شامل مدل tf.keras
است.
می توانید از API run
از داخل فایل پایتون خود که حاوی مدل tf.keras
( mnist_scale.py
) است استفاده کنید. در این مورد، entry_point
باید None
باشد. API run
را می توان در هر جایی فراخوانی کرد و کل فایل از راه دور اجرا می شود. API را می توان در پایان فراخوانی کرد تا اسکریپت را به صورت محلی برای اهداف اشکال زدایی اجرا کند (احتمالاً با دوره های کمتر و سایر پرچم ها).
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)
لطفاً توجه داشته باشید که همه فایلهای موجود در درخت دایرکتوری مشابه با اسکریپت پایتون در تصویر داکر ایجاد شده به همراه فایل پایتون بستهبندی میشوند. توصیه می شود برای بهینه سازی زمان ساخت تصویر، یک دایرکتوری جدید برای قرار دادن هر پروژه ابری ایجاد کنید که شامل فایل های ضروری و هیچ چیز دیگری نیست.
استفاده از run
در یک اسکریپت نوت بوک که شامل مدل tf.keras
است.
در این مورد، entry_point
باید None
باشد و docker_config.image_build_bucket
باید مشخص شود تا اطمینان حاصل شود که ساخت میتواند ذخیره و منتشر شود.
چه اتفاقی میافتد وقتی به run
زنگ میزنید؟
فراخوانی API موارد زیر را انجام می دهد:
- آماده سازی موجودیت های کد مانند اسکریپت/نوت بوک Keras، ابر و توزیع .
- تبدیل این موجودیت توزیع به یک داکر کانتینر با وابستگی های مورد نیاز.
- این ظرف را در مقیاس مستقر کنید و با استفاده از استراتژی های توزیع TensorFlow آموزش دهید.
- گزارشها را پخش کنید و آنها را در TensorBoard میزبانی شده نظارت کنید، ذخیرهسازی پست بازرسی را مدیریت کنید.
به طور پیش فرض، شبح محلی Docker برای ساخت و انتشار تصاویر Docker در رجیستری کانتینر Google. تصاویر در gcr.io/your-gcp-project-id
منتشر میشوند. اگر docker_config.image_build_bucket
را مشخص کنید، ما از Google Cloud build برای ساخت و انتشار تصاویر داکر استفاده خواهیم کرد.
پلتفرم هوش مصنوعی گوگل برای استقرار تصاویر Docker در Google Cloud استفاده می شود.