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

Python का उपयोग करके एन्कोडर और डिकोडर से ऑटोएन्कोडर कैसे उत्पन्न करें?


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

'tensorflow' पैकेज को Windows पर नीचे दिए गए कोड की लाइन का उपयोग करके इंस्टॉल किया जा सकता है:

pip install tensorflow

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

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

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

import tensorflow from tensorflow import keras

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

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

उदाहरण

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 _________________________________________________________________

व्याख्या

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

  • इन लेयर्स पर ग्लोबल मैक्स पूलिंग की जाती है।

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

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

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

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

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


  1. Python और Bokeh का उपयोग करके एक्सिस-अलाइन्ड आयतों को कैसे विज़ुअलाइज़ करें? Python और Bokeh का उपयोग करके एक्सिस-अलाइन्ड आयतों को कैसे विज़ुअलाइज़ करें?

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

  1. पायथन में Bokeh का उपयोग करके वर्टिकल बार ग्राफ़ कैसे विज़ुअलाइज़ करें? पायथन में Bokeh का उपयोग करके वर्टिकल बार ग्राफ़ कैसे विज़ुअलाइज़ करें?

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

  1. Matplotlib और Python का उपयोग करके एक ही फिगर में कई प्लॉट कैसे बनाएं? Matplotlib और Python का उपयोग करके एक ही फिगर में कई प्लॉट कैसे बनाएं?

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