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

क्या केरस मॉडल को सिर्फ एक परत के रूप में माना जा सकता है और पायथन का उपयोग करके लागू किया जा सकता है? यदि हां, तो इसे प्रदर्शित करें

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

केरस को प्रोजेक्ट ONEIROS (ओपन एंडेड न्यूरो-इलेक्ट्रॉनिक इंटेलिजेंट रोबोट ऑपरेटिंग सिस्टम) के लिए अनुसंधान के एक भाग के रूप में विकसित किया गया था। केरस एक डीप लर्निंग एपीआई है, जिसे पायथन में लिखा गया है। यह एक उच्च-स्तरीय एपीआई है जिसमें एक उत्पादक इंटरफ़ेस है जो मशीन सीखने की समस्याओं को हल करने में मदद करता है। यह Tensorflow ढांचे के शीर्ष पर चलता है। इसे त्वरित तरीके से प्रयोग में मदद करने के लिए बनाया गया था। यह आवश्यक सार तत्व और बिल्डिंग ब्लॉक्स प्रदान करता है जो मशीन लर्निंग सॉल्यूशंस को विकसित करने और इनकैप्सुलेट करने के लिए आवश्यक हैं।

यह अत्यधिक स्केलेबल है, और क्रॉस प्लेटफॉर्म क्षमताओं के साथ आता है। इसका मतलब है कि केरस को टीपीयू या जीपीयू के क्लस्टर पर चलाया जा सकता है। केरस मॉडल को वेब ब्राउज़र या मोबाइल फोन में भी चलाने के लिए निर्यात किया जा सकता है।

केरस पहले से ही Tensorflow पैकेज में मौजूद है। इसे कोड की नीचे दी गई लाइन का उपयोग करके एक्सेस किया जा सकता है।

import tensorflow
from tensorflow import keras

हां, एक केरस मॉडल को सिर्फ एक परत के रूप में माना जाता है और पायथन का उपयोग करके इसे लागू किया जाता है। केरस कार्यात्मक एपीआई ऐसे मॉडल बनाने में मदद करता है जो अनुक्रमिक एपीआई का उपयोग करके बनाए गए मॉडल की तुलना में अधिक लचीले होते हैं। कार्यात्मक एपीआई उन मॉडलों के साथ काम कर सकता है जिनमें गैर-रेखीय टोपोलॉजी है, परतों को साझा कर सकते हैं और कई इनपुट और आउटपुट के साथ काम कर सकते हैं। एक गहन शिक्षण मॉडल आमतौर पर एक निर्देशित चक्रीय ग्राफ (DAG) होता है जिसमें कई परतें होती हैं। कार्यात्मक एपीआई परतों का ग्राफ बनाने में मदद करता है।

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

उदाहरण

Encoder_input = keras.Input(shape=(28, 28, 1), name=”original_img”)
print("Adding layers to the model")
x = layers.Conv2D(16, 3, activation="relu")(encoder_input)
x = layers.Conv2D(32, 3, activation="relu")(x)
x = layers.MaxPooling2D(3)(x)
x = layers.Conv2D(32, 3, activation="relu")(x)
x = layers.Conv2D(16, 3, activation="relu")(x)
print("Performing golbal max pooling")
encoder_output = layers.GlobalMaxPooling2D()(x)

print("Creating a model using the layers")
encoder = keras.Model(encoder_input, encoder_output, name="encoder")
print("More information about the model")
encoder.summary()
decoder_input = keras.Input(shape=(16,), name="encoded_img")
print("Reshaping the layers in the model")
x = layers.Reshape((4, 4, 1))(decoder_input)
x = layers.Conv2DTranspose(16, 3, activation="relu")(x)
x = layers.Conv2DTranspose(32, 3, activation="relu")(x)
x = layers.UpSampling2D(3)(x)
x = layers.Conv2DTranspose(16, 3, activation="relu")(x)
decoder_output = layers.Conv2DTranspose(1, 3, activation="relu")(x)
print("Creating a model using the layers")
decoder = keras.Model(decoder_input, decoder_output, name="decoder")
print("More information about the model")
decoder.summary()

autoencoder_input = keras.Input(shape=(28, 28, 1), name="img")
encoded_img = encoder(autoencoder_input)
decoded_img = decoder(encoded_img)
autoencoder = keras.Model(autoencoder_input, decoded_img, name="autoencoder")
print("More information about the model")
autoencoder.summary()

कोड क्रेडिट - https://www.tensorflow.org/guide/keras/functional

आउटपुट

original_img (InputLayer)    [(None, 28, 28, 1)]       0
_________________________________________________________________
conv2d_28 (Conv2D)          (None, 26, 26, 16)       160
_________________________________________________________________
conv2d_29 (Conv2D)          (None, 24, 24, 32)       4640
_________________________________________________________________
max_pooling2d_7 (MaxPooling2 (None, 8, 8, 32)          0
_________________________________________________________________
conv2d_30 (Conv2D)          (None, 6, 6, 32)          9248
_________________________________________________________________
conv2d_31 (Conv2D)          (None, 4, 4, 16)          4624
_________________________________________________________________
global_max_pooling2d_3       (Glob (None, 16)          0
=================================================================
Total params: 18,672
Trainable params: 18,672
Non-trainable params: 0
_________________________________________________________________
Reshaping the layers in the model
Creating a model using the layers
More information about the model
Model: "decoder"
_________________________________________________________________
Layer (type)                Output Shape             Param #
=================================================================
encoded_img (InputLayer)    [(None, 16)]             0
_________________________________________________________________
reshape_1 (Reshape)          (None, 4, 4, 1)         0
_________________________________________________________________
conv2d_transpose_4 (Conv2DTr (None, 6, 6, 16)       160
_________________________________________________________________
conv2d_transpose_5 (Conv2DTr (None, 8, 8, 32)       4640
_________________________________________________________________
up_sampling2d_1 (UpSampling2 (None, 24, 24, 32)       0
_________________________________________________________________
conv2d_transpose_6 (Conv2DTr (None, 26, 26, 16)      4624
_________________________________________________________________
conv2d_transpose_7 (Conv2DTr (None, 28, 28, 1)       145
=================================================================
Total params: 9,569
Trainable params: 9,569
Non-trainable params: 0
_________________________________________________________________
More information about the model
Model: "autoencoder"
_________________________________________________________________
Layer (type)             Output Shape          Param #
=================================================================
img (InputLayer)       [(None, 28, 28, 1)]       0
_________________________________________________________________
encoder (Functional)    (None, 16)             18672
_________________________________________________________________
decoder (Functional)    (None, 28, 28, 1)       9569
=================================================================
Total params: 28,241
Trainable params: 28,241
Non-trainable params: 0
_________________________________________________________________

स्पष्टीकरण

  • किसी भी मॉडल को एक 'इनपुट' या किसी अन्य परत के आउटपुट पर लागू करके एक परत के रूप में माना जा सकता है।

  • जब मॉडल को कॉल किया जाता है, तो आर्किटेक्चर का पुन:उपयोग किया जा रहा है।

  • इसके अलावा, वज़न का भी पुन:उपयोग किया जा रहा है।

  • एन्कोडर मॉडल, एक डिकोडर मॉडल का उपयोग करके ऑटोएन्कोडर मॉडल बनाया जा सकता है।

  • ऑटोएन्कोडर मॉडल प्राप्त करने के लिए इन दो मॉडलों को दो कॉलों में एक साथ जंजीर से बांधा गया है।


  1. पायथन प्रोग्राम का उपयोग करके मॉडल को प्लॉट करने के लिए केरस का उपयोग कैसे किया जा सकता है?

    ग्रीक में केरस का अर्थ सींग होता है। केरस को प्रोजेक्ट ONEIROS (ओपन एंडेड न्यूरो-इलेक्ट्रॉनिक इंटेलिजेंट रोबोट ऑपरेटिंग सिस्टम) के लिए अनुसंधान के एक भाग के रूप में विकसित किया गया था। केरस एक डीप लर्निंग एपीआई है, जिसे पायथन में लिखा गया है। यह एक उच्च-स्तरीय एपीआई है जिसमें एक उत्पादक इंटरफ़ेस है

  1. पायथन का उपयोग करके मॉडल को प्लॉट करने के लिए केरस का उपयोग कैसे किया जा सकता है?

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

  1. केरस का उपयोग मॉडल को ग्राफ के रूप में प्लॉट करने और पायथन का उपयोग करके इनपुट और आउटपुट आकृतियों को प्रदर्शित करने के लिए कैसे किया जा सकता है?

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