इस्तेमाल के लिए गाइड

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 कहते हैं तो क्या होता है?

एपीआई कॉल निम्नलिखित को पूरा करेगी:

  1. केरस स्क्रिप्ट/नोटबुक, क्लाउड और वितरण जैसी कोड इकाइयों को तैयार करना।
  2. इस वितरण इकाई को आवश्यक निर्भरता वाले डॉकर कंटेनर में परिवर्तित करना।
  3. इस कंटेनर को बड़े पैमाने पर तैनात करें और TensorFlow वितरण रणनीतियों का उपयोग करके प्रशिक्षित करें।
  4. लॉग स्ट्रीम करें और होस्ट किए गए TensorBoard पर उनकी निगरानी करें, चेकपॉइंट स्टोरेज प्रबंधित करें।

डिफ़ॉल्ट रूप से, Google कंटेनर रजिस्ट्री में डॉकर छवियां बनाने और प्रकाशित करने के लिए स्थानीय डॉकर डेमॉन। छवियाँ gcr.io/your-gcp-project-id पर प्रकाशित की जाती हैं। यदि आप docker_config.image_build_bucket निर्दिष्ट करते हैं, तो हम docker छवियों को बनाने और प्रकाशित करने के लिए Google क्लाउड बिल्ड का उपयोग करेंगे।

Google AI प्लेटफ़ॉर्म का उपयोग Google क्लाउड पर डॉकर छवियों को तैनात करने के लिए किया जाता है।