TensorFlow 2.0 में वितरण रणनीति एपीआई एक शक्तिशाली उपकरण है जो कई उपकरणों और मशीनों में गणनाओं को वितरित और स्केल करने के लिए एक उच्च-स्तरीय इंटरफ़ेस प्रदान करके वितरित प्रशिक्षण को सरल बनाता है। यह डेवलपर्स को अपने मॉडलों को तेजी से और अधिक कुशलता से प्रशिक्षित करने के लिए कई जीपीयू या यहां तक कि कई मशीनों की कम्प्यूटेशनल शक्ति का आसानी से लाभ उठाने की अनुमति देता है।
बड़े डेटासेट और जटिल मॉडल को संभालने के लिए वितरित प्रशिक्षण आवश्यक है जिसके लिए महत्वपूर्ण कम्प्यूटेशनल संसाधनों की आवश्यकता होती है। वितरण रणनीति एपीआई के साथ, TensorFlow 2.0 एक ही मशीन के भीतर या कई मशीनों में GPU जैसे कई उपकरणों में गणना वितरित करने का एक सहज तरीका प्रदान करता है। यह समानांतर प्रसंस्करण को सक्षम बनाता है और तेज़ प्रशिक्षण समय की अनुमति देता है।
TensorFlow 2.0 में वितरण रणनीति एपीआई सिंक्रोनस प्रशिक्षण, एसिंक्रोनस प्रशिक्षण और पैरामीटर सर्वर सहित गणनाओं को वितरित करने के लिए विभिन्न रणनीतियों का समर्थन करती है। सिंक्रोनस प्रशिक्षण यह सुनिश्चित करता है कि प्रशिक्षण के दौरान सभी उपकरणों या मशीनों को सिंक में रखा जाता है, जबकि एसिंक्रोनस प्रशिक्षण डिवाइस या मशीन की उपलब्धता के संदर्भ में अधिक लचीलेपन की अनुमति देता है। दूसरी ओर, पैरामीटर सर्वर कई उपकरणों या मशीनों में कुशल पैरामीटर साझाकरण सक्षम करते हैं।
वितरण रणनीति एपीआई का उपयोग करने के लिए, डेवलपर्स को रणनीति के दायरे में अपने मॉडल और प्रशिक्षण लूप को परिभाषित करने की आवश्यकता होती है। यह दायरा उपयोग की जाने वाली वितरण रणनीति को निर्दिष्ट करता है और यह सुनिश्चित करता है कि सभी प्रासंगिक गणनाएँ तदनुसार वितरित की जाती हैं। TensorFlow 2.0 कई अंतर्निहित वितरण रणनीतियाँ प्रदान करता है, जैसे कि मिररडस्ट्रेटी, जो कई जीपीयू में मॉडल को समकालिक रूप से प्रशिक्षित करती है, और मल्टीवर्करमिररडस्ट्रेटी, जो कई मशीनों में प्रशिक्षण का समर्थन करने के लिए मिररडस्ट्रेटी का विस्तार करती है।
यहां एक उदाहरण दिया गया है कि वितरण रणनीति एपीआई का उपयोग TensorFlow 2.0 में कैसे किया जा सकता है:
python import tensorflow as tf strategy = tf.distribute.MirroredStrategy() with strategy.scope(): model = tf.keras.Sequential([...]) # Define your model optimizer = tf.keras.optimizers.Adam() loss_object = tf.keras.losses.SparseCategoricalCrossentropy() train_dataset = tf.data.Dataset.from_tensor_slices((x_train, y_train)).batch(batch_size) @tf.function def distributed_train_step(inputs): features, labels = inputs with tf.GradientTape() as tape: predictions = model(features, training=True) loss = loss_object(labels, predictions) gradients = tape.gradient(loss, model.trainable_variables) optimizer.apply_gradients(zip(gradients, model.trainable_variables)) return loss for epoch in range(num_epochs): total_loss = 0.0 num_batches = 0 for inputs in train_dataset: per_replica_loss = strategy.run(distributed_train_step, args=(inputs,)) total_loss += strategy.reduce(tf.distribute.ReduceOp.SUM, per_replica_loss, axis=None) num_batches += 1 average_loss = total_loss/num_batches print("Epoch {}: Loss = {}".format(epoch, average_loss))
इस उदाहरण में, हम पहले एक मिररडस्ट्रैटेजी ऑब्जेक्ट बनाते हैं, जो सभी उपलब्ध जीपीयू में गणना वितरित करेगा। फिर हम रणनीति के दायरे में अपने मॉडल, ऑप्टिमाइज़र, हानि फ़ंक्शन और प्रशिक्षण डेटासेट को परिभाषित करते हैं। `डिस्ट्रीब्यूटेड_ट्रेन_स्टेप` फ़ंक्शन को TensorFlow ग्राफ-संगत बनाने और इसके निष्पादन को अनुकूलित करने के लिए `@tf.function` से सजाया गया है।
प्रशिक्षण के दौरान, हम प्रशिक्षण डेटासेट के बैचों पर पुनरावृति करते हैं और प्रत्येक प्रतिकृति पर `distributed_train_step` फ़ंक्शन को निष्पादित करने के लिए `strategy.run` विधि को कॉल करते हैं। प्रति-प्रतिकृति हानियों को `strategy.reduce` विधि का उपयोग करके कम किया जाता है, और प्रत्येक युग के लिए औसत हानि की गणना और मुद्रित की जाती है।
TensorFlow 2.0 में वितरण रणनीति एपीआई का उपयोग करके, डेवलपर्स कई उपकरणों या मशीनों का लाभ उठाने के लिए अपनी प्रशिक्षण प्रक्रिया को आसानी से बढ़ा सकते हैं, जिसके परिणामस्वरूप उनके मॉडल का तेज़ और अधिक कुशल प्रशिक्षण हो सकता है।
संबंधित अन्य हालिया प्रश्न और उत्तर EITC/AI/TFF TensorFlow Fundamentals:
- वैक्टर के रूप में शब्दों के प्रतिनिधित्व के प्लॉट के लिए उचित अक्षों को स्वचालित रूप से निर्दिष्ट करने के लिए कोई एम्बेडिंग परत का उपयोग कैसे कर सकता है?
- सीएनएन में अधिकतम पूलिंग का उद्देश्य क्या है?
- कन्वेन्शनल न्यूरल नेटवर्क (सीएनएन) में फीचर निष्कर्षण प्रक्रिया को छवि पहचान पर कैसे लागू किया जाता है?
- क्या TensorFlow.js में चल रहे मशीन लर्निंग मॉडल के लिए एसिंक्रोनस लर्निंग फ़ंक्शन का उपयोग करना आवश्यक है?
- TensorFlow Keras टोकनेज़र API शब्दों की अधिकतम संख्या पैरामीटर क्या है?
- क्या TensorFlow Keras टोकनाइज़र API का उपयोग सबसे अधिक बार आने वाले शब्दों को खोजने के लिए किया जा सकता है?
- टोको क्या है?
- मशीन लर्निंग मॉडल में कई युगों और मॉडल चलाने से भविष्यवाणी की सटीकता के बीच क्या संबंध है?
- क्या टेन्सरफ्लो के न्यूरल स्ट्रक्चर्ड लर्निंग में पैक पड़ोसी एपीआई प्राकृतिक ग्राफ डेटा के आधार पर एक संवर्धित प्रशिक्षण डेटासेट का उत्पादन करता है?
- TensorFlow के न्यूरल स्ट्रक्चर्ड लर्निंग में पैक नेबर्स एपीआई क्या है?
EITC/AI/TFF TensorFlow Fundamentals में अधिक प्रश्न और उत्तर देखें