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

पाइथन का उपयोग करके एन्कोडर और डिकोडर का उपयोग करके ऑटोएन्कोडर कैसे उत्पन्न किया जा सकता है?

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

कोड की निम्न पंक्ति का उपयोग करके विंडोज़ पर 'टेंसरफ़्लो' पैकेज स्थापित किया जा सकता है -

pip install tensorflow

Tensor एक डेटा संरचना है जिसका उपयोग TensorFlow में किया जाता है। यह प्रवाह आरेख में किनारों को जोड़ने में मदद करता है। इस प्रवाह आरेख को 'डेटा प्रवाह ग्राफ' के रूप में जाना जाता है। टेंसर और कुछ नहीं बल्कि एक बहुआयामी सरणी या एक सूची है।

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

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

import tensorflow
from tensorflow import keras

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

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

उदाहरण

encoder_input = keras.Input(shape=(28, 28, 1), name="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 global 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()

print("Reshaping the layers in the model")
x = layers.Reshape((4, 4, 1))(encoder_output)
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)

autoencoder = keras.Model(encoder_input, decoder_output, name="autoencoder")
print("More information about the autoencoder")
autoencoder.summary()

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

आउटपुट

Adding layers to the model
Performing global max pooling
Creating a model using the layers
More information about the model
Model: "encoder"
_________________________________________________________________
Layer (type)                Output Shape             Param #
=================================================================
img (InputLayer)            [(None, 28, 28, 1)]       0
_________________________________________________________________
conv2d (Conv2D)             (None, 26, 26, 16)       160
_________________________________________________________________
conv2d_1 (Conv2D)           (None, 24, 24, 32)       4640
_________________________________________________________________
max_pooling2d (MaxPooling2D) (None, 8, 8, 32)          0
_________________________________________________________________
conv2d_2 (Conv2D)             (None, 6, 6, 32)       9248
_________________________________________________________________
conv2d_3 (Conv2D)             (None, 4, 4, 16)       4624
_________________________________________________________________
global_max_pooling2d          (Global (None, 16)       0
=================================================================
Total params: 18,672
Trainable params: 18,672
Non-trainable params: 0
_________________________________________________________________
Reshaping the layers in the model
More information about the autoencoder
Model: "autoencoder"
_________________________________________________________________
Layer (type)                Output Shape          Param #
=================================================================
img (InputLayer)            [(None, 28, 28, 1)]    0
_________________________________________________________________
conv2d (Conv2D)             (None, 26, 26, 16)    160
_________________________________________________________________
conv2d_1 (Conv2D)           (None, 24, 24, 32)    4640
_________________________________________________________________
max_pooling2d (MaxPooling2D) (None, 8, 8, 32)       0
_________________________________________________________________
conv2d_2 (Conv2D)          (None, 6, 6, 32)       9248
_________________________________________________________________
conv2d_3 (Conv2D)          (None, 4, 4, 16)       4624
_________________________________________________________________
global_max_pooling2d       (Global (None, 16)       0
_________________________________________________________________
reshape (Reshape)          (None, 4, 4, 1)          0
_________________________________________________________________
conv2d_transpose (Conv2DTran (None, 6, 6, 16)       160
_________________________________________________________________
conv2d_transpose_1 (Conv2DTr (None, 8, 8, 32)       4640
_________________________________________________________________
up_sampling2d (UpSampling2D) (None, 24, 24, 32)       0
_________________________________________________________________
conv2d_transpose_2 (Conv2DTr (None, 26, 26, 16)       4624
_________________________________________________________________
conv2d_transpose_3 (Conv2DTr (None, 28, 28, 1)       145
=================================================================
Total params: 28,241
Trainable params: 28,241
Non-trainable params: 0
_________________________________________________________________

स्पष्टीकरण

  • मॉडल में परतें जोड़ी जाती हैं।

  • वैश्विक अधिकतम पूलिंग इन परतों पर की जाती है

  • परतों का उपयोग करके एक मॉडल बनाया जाता है।

  • मॉडल के बारे में अधिक जानकारी 'सारांश' पद्धति का उपयोग करके प्रदर्शित की जा सकती है।

  • कार्यात्मक एपीआई का उपयोग करके, ग्राफ-ऑफ-लेयर्स के लिए इनपुट और आउटपुट निर्दिष्ट करने के बाद मॉडल बनाए जाते हैं।

  • यह इंगित करता है कि एक ही ग्राफ का उपयोग कई मॉडल बनाने के लिए किया जा सकता है।

  • यहां, परतों के ढेर का उपयोग दो मॉडलों को तत्काल करने के लिए किया जाता है- एक एन्कोडर जो छवि इनपुट को 16-आयामी वैक्टर में बदल देता है और एक ऑटोएन्कोडर मॉडल जिसका उपयोग प्रशिक्षण के लिए किया जाता है।


  1. पायथन और बोकेह का उपयोग करके अक्ष संरेखित आयतों की कल्पना कैसे की जा सकती है?

    बोकेह एक पायथन पैकेज है जो डेटा विज़ुअलाइज़ेशन में मदद करता है। यह एक ओपन सोर्स प्रोजेक्ट है। बोकेह एचटीएमएल और जावास्क्रिप्ट का उपयोग करके अपनी साजिश प्रस्तुत करता है। यह इंगित करता है कि वेब-आधारित डैशबोर्ड के साथ काम करते समय यह उपयोगी है। बोकेह डेटा स्रोत को JSON फ़ाइल में कनवर्ट करता है। इस फ़

  1. बोकेह और पायथन का उपयोग करके एक लंबवत बार ग्राफ को कैसे देखा जा सकता है?

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

  1. Matplotlib और Python का उपयोग करके एक ही आकृति में एकाधिक भूखंडों को कैसे प्लॉट किया जा सकता है?

    Matplotlib एक लोकप्रिय पायथन पैकेज है जिसका उपयोग डेटा विज़ुअलाइज़ेशन के लिए किया जाता है। डेटा को विज़ुअलाइज़ करना एक महत्वपूर्ण कदम है क्योंकि यह यह समझने में मदद करता है कि वास्तव में संख्याओं को देखे बिना और जटिल गणना किए बिना डेटा में क्या हो रहा है। यह दर्शकों को मात्रात्मक अंतर्दृष्टि को प्