Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में टेंसरफ्लो का उपयोग करके लेयर कैसे कंपोज़ करें?


टेंसरफ्लो का उपयोग 'ResnetIdentityBlock' से विरासत में मिली क्लास को परिभाषित करके लेयर कंपोज़ करने के लिए किया जा सकता है। इसका उपयोग एक ब्लॉक को परिभाषित करने के लिए किया जाता है जिसका उपयोग लेयर कंपोज़ करने के लिए किया जा सकता है।

और पढ़ें: टेंसरफ्लो क्या है और केरस टेंसरफ्लो के साथ न्यूरल नेटवर्क बनाने में कैसे काम करता है?

एक न्यूरल नेटवर्क जिसमें कम से कम एक लेयर होती है, कन्वोल्यूशनल लेयर के रूप में जानी जाती है। हम कन्वोल्यूशनल न्यूरल नेटवर्क का उपयोग लर्निंग मॉडल बनाने के लिए कर सकते हैं।

टेंसरफ्लो हब एक रिपॉजिटरी है जिसमें प्री-ट्रेंड टेंसरफ्लो मॉडल होते हैं। टेंसरफ्लो का उपयोग लर्निंग मॉडल को फाइन-ट्यून करने के लिए किया जा सकता है। हम समझेंगे कि tf.keras के साथ टेंसरफ्लो हब से मॉडल का उपयोग कैसे करें, टेंसरफ्लो हब से एक इमेज क्लासिफिकेशन मॉडल का उपयोग करें। एक बार यह हो जाने के बाद, कस्टमाइज़्ड इमेज क्लास के लिए मॉडल को फाइन-ट्यून करने के लिए ट्रांसफर लर्निंग किया जा सकता है। यह एक प्री-ट्रेंड क्लासिफायर मॉडल का उपयोग करके एक इमेज लेता है और भविष्यवाणी करता है कि यह क्या है। यह बिना किसी प्रशिक्षण की आवश्यकता के किया जा सकता है।

हम नीचे दिए गए कोड को चलाने के लिए Google Colaboratory का उपयोग कर रहे हैं। Google Colab या कोलेबोरेटरी ब्राउज़र पर पायथन कोड चलाने में मदद करता है और इसके लिए शून्य कॉन्फ़िगरेशन और GPU (ग्राफिकल प्रोसेसिंग यूनिट्स) तक मुफ्त पहुंच की आवश्यकता होती है। कोलेबोरेटरी को जुपिटर नोटबुक के शीर्ष पर बनाया गया है।

उदाहरण

print("लेयर कंपोज़ करना")
class ResnetIdentityBlock(tf.keras.Model):
    def __init__(self, kernel_size, filters):
        super(ResnetIdentityBlock, self).__init__(name='')
        filters1, filters2, filters3 = filters
        self.conv2a = tf.keras.layers.Conv2D(filters1, (1, 1))
        self.bn2a = tf.keras.layers.BatchNormalization()
        self.conv2b = tf.keras.layers.Conv2D(filters2, kernel_size, padding='same')
        self.bn2b = tf.keras.layers.BatchNormalization()
        self.conv2c = tf.keras.layers.Conv2D(filters3, (1, 1))
        self.bn2c = tf.keras.layers.BatchNormalization()

    def call(self, input_tensor, training=False):
        x = self.conv2a(input_tensor)
        x = self.bn2a(x, training=training)
        x = tf.nn.relu(x)
        x = self.conv2b(x)
        x = self.bn2b(x, training=training)
        x = tf.nn.relu(x)
        x = self.conv2c(x)
        x = self.bn2c(x, training=training)
        x += input_tensor
        return tf.nn.relu(x)

print("लेयर को कॉल किया गया")
block = ResnetIdentityBlock(1, [1, 2, 3])
_ = block(tf.zeros([1, 2, 3, 3]))
block.layers
len(block.variables)
block.summary()

कोड क्रेडिट - https://www.tensorflow.org/tutorials/customization/custom_layers

आउटपुट

लेयर कंपोज़ करना
लेयर को कॉल किया गया
Model: "resnet_identity_block"
_________________________________________________________________
Layer (type)                 Output Shape              Param #
=================================================================
conv2d (Conv2D)              multiple                  4
_________________________________________________________________
batch_normalization (BatchNo multiple                  4
_________________________________________________________________
conv2d_1 (Conv2D)            multiple                  4
_________________________________________________________________
batch_normalization_1 (Batch multiple                  8
_________________________________________________________________
conv2d_2 (Conv2D)            multiple                  9
_________________________________________________________________
batch_normalization_2 (Batch multiple                  12
=================================================================
Total params: 41
Trainable params: 29
Non-trainable params: 12

व्याख्या

  • ResNet में प्रत्येक अवशिष्ट ब्लॉक कन्वोल्यूशन, बैच नॉर्मलाइज़ेशन और एक शॉर्टकट से बना होता है।

  • लेयर को अन्य लेयर के अंदर नेस्ट किया जा सकता है।

  • जब हमें Model.fit, Model.evaluate, और Model.save जैसे मॉडल मेथड की आवश्यकता होती है, तो इसे keras.Model से विरासत में लिया जा सकता है।

  • keras.Model का उपयोग keras.layers.Layer के बजाय किया जाता है, जो वेरिएबल को ट्रैक करने में मदद करता है।

  • एक keras.Model अपनी आंतरिक लेयर को ट्रैक करता है, जिससे लेयर का निरीक्षण करना आसान हो जाता है।

  1. Python का उपयोग करके TensorFlow में दो मैट्रिक्स को कैसे जोड़ें? Python का उपयोग करके TensorFlow में दो मैट्रिक्स को कैसे जोड़ें?

    TensorFlow, Google द्वारा प्रदान किया गया एक मशीन लर्निंग फ्रेमवर्क है। यह एक ओपन-सोर्स फ्रेमवर्क है जिसे Python के साथ मिलकर एल्गोरिदम, डीप लर्निंग एप्लिकेशन और बहुत कुछ लागू करने के लिए उपयोग किया जाता है। इसका उपयोग अनुसंधान और उत्पादन उद्देश्यों के लिए किया जाता है। इसमें ऑप्टिमाइज़ेशन तकनीकें ह

  1. Python का उपयोग करके Keras से मॉडल कैसे प्लॉट करें? Python का उपयोग करके Keras से मॉडल कैसे प्लॉट करें?

    Tensorflow Google द्वारा प्रदान किया गया एक मशीन लर्निंग फ्रेमवर्क है। यह एक ओपन-सोर्स फ्रेमवर्क है जिसे Python के साथ संयोजन में एल्गोरिदम, डीप लर्निंग एप्लिकेशन और बहुत कुछ लागू करने के लिए उपयोग किया जाता है। इसका उपयोग शोध और उत्पादन उद्देश्यों के लिए किया जाता है। इसमें ऑप्टिमाइज़ेशन तकनीकें है

  1. Python का उपयोग करके Keras फंक्शनल API से लेयर्स कैसे बनाएं? Python का उपयोग करके Keras फंक्शनल API से लेयर्स कैसे बनाएं?

    Tensorflow Google द्वारा प्रदान किया गया एक मशीन लर्निंग फ्रेमवर्क है। यह एक ओपन-सोर्स फ्रेमवर्क है जिसे Python के साथ संयोजन में एल्गोरिदम, डीप लर्निंग एप्लिकेशन और बहुत कुछ लागू करने के लिए उपयोग किया जाता है। इसका उपयोग शोध और उत्पादन उद्देश्यों के लिए किया जाता है। इसमें ऑप्टिमाइज़ेशन तकनीकें है