tfc.run
API आपको अपने मॉडलों को GCP पर बड़े पैमाने पर प्रशिक्षित करने की अनुमति देता है।
tfc.run
API का उपयोग चार अलग-अलग तरीकों से किया जा सकता है। इसे इस बात से परिभाषित किया जाता है कि आप एपीआई कहां चला रहे हैं (पायथन स्क्रिप्ट बनाम पायथन नोटबुक), और आपका entry_point
पैरामीटर:
- Python फ़ाइल को
entry_point
के रूप में। - नोटबुक फ़ाइल को
entry_point
के रूप में। - एक पायथन स्क्रिप्ट के भीतर
run
जिसमेंtf.keras
मॉडल शामिल है। - एक नोटबुक स्क्रिप्ट के भीतर
run
जिसमेंtf.keras
मॉडल शामिल है। सबसे आम तरीका नोटबुक के भीतरrun
उपयोग करना है।
entry_point
एक (पाथ टू ए) पायथन स्क्रिप्ट या नोटबुक फ़ाइल, या None
है। यदि None
, तो संपूर्ण वर्तमान फ़ाइल Google क्लाउड पर भेज दी जाती है।
Python फ़ाइल को entry_point
के रूप में उपयोग करना।
यदि आपका tf.keras
मॉडल एक पायथन फ़ाइल ( mnist_example.py
) में है, तो आप GCP पर अपने मॉडल को स्केल करने के लिए निम्नलिखित सरल स्क्रिप्ट ( scale_mnist.py
) लिख सकते हैं।
import tensorflow_cloud as tfc
tfc.run(entry_point='mnist_example.py')
कृपया ध्यान दें कि entry_point
के समान निर्देशिका ट्री की सभी फाइलें entry_point
फ़ाइल के साथ बनाई गई डॉकर छवि में पैक की जाएंगी। छवि निर्माण समय को अनुकूलित करने के लिए प्रत्येक क्लाउड प्रोजेक्ट को रखने के लिए एक नई निर्देशिका बनाने की अनुशंसा की जाती है जिसमें आवश्यक फ़ाइलें शामिल हों और कुछ नहीं।
एक नोटबुक फ़ाइल को entry_point
के रूप में उपयोग करना।
यदि आपके पास नोटबुक फ़ाइल ( mnist_example.ipynb
) में अपना tf.keras
मॉडल है, तो आप GCP पर अपने मॉडल को स्केल करने के लिए निम्नलिखित सरल स्क्रिप्ट ( scale_mnist.py
) लिख सकते हैं।
import tensorflow_cloud as tfc
tfc.run(entry_point='mnist_example.ipynb')
कृपया ध्यान दें कि entry_point
के समान निर्देशिका ट्री की सभी फाइलें entry_point
फ़ाइल के साथ बनाई गई डॉकर छवि में पैक की जाएंगी। उपरोक्त पायथन स्क्रिप्ट entry_point
की तरह, हमने छवि निर्माण समय को अनुकूलित करने के लिए प्रत्येक क्लाउड प्रोजेक्ट को रखने के लिए एक नई निर्देशिका बनाने की सिफारिश की है जिसमें आवश्यक फाइलें शामिल हैं और कुछ नहीं।
पायथन स्क्रिप्ट के भीतर run
उपयोग करना जिसमें tf.keras
मॉडल शामिल है।
आप अपनी पायथन फ़ाइल के भीतर से run
एपीआई का उपयोग कर सकते हैं जिसमें tf.keras
मॉडल ( mnist_scale.py
) शामिल है। इस उपयोग के मामले में, entry_point
None
होना चाहिए। run
एपीआई को कहीं भी कॉल किया जा सकता है और पूरी फाइल को दूरस्थ रूप से निष्पादित किया जाएगा। डिबगिंग उद्देश्यों के लिए स्क्रिप्ट को स्थानीय रूप से चलाने के लिए एपीआई को अंत में बुलाया जा सकता है (संभवतः कम युगों और अन्य झंडों के साथ)।
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
कहते हैं तो क्या होता है?
एपीआई कॉल निम्नलिखित को पूरा करेगी:
- केरस स्क्रिप्ट/नोटबुक, क्लाउड और वितरण जैसी कोड इकाइयों को तैयार करना।
- इस वितरण इकाई को आवश्यक निर्भरता वाले डॉकर कंटेनर में परिवर्तित करना।
- इस कंटेनर को बड़े पैमाने पर तैनात करें और TensorFlow वितरण रणनीतियों का उपयोग करके प्रशिक्षित करें।
- लॉग स्ट्रीम करें और होस्ट किए गए TensorBoard पर उनकी निगरानी करें, चेकपॉइंट स्टोरेज प्रबंधित करें।
डिफ़ॉल्ट रूप से, Google कंटेनर रजिस्ट्री में डॉकर छवियां बनाने और प्रकाशित करने के लिए स्थानीय डॉकर डेमॉन। छवियाँ gcr.io/your-gcp-project-id
पर प्रकाशित की जाती हैं। यदि आप docker_config.image_build_bucket
निर्दिष्ट करते हैं, तो हम docker छवियों को बनाने और प्रकाशित करने के लिए Google क्लाउड बिल्ड का उपयोग करेंगे।
Google AI प्लेटफ़ॉर्म का उपयोग Google क्लाउड पर डॉकर छवियों को तैनात करने के लिए किया जाता है।