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 _________________________________________________________________
स्पष्टीकरण
-
किसी भी मॉडल को एक 'इनपुट' या किसी अन्य परत के आउटपुट पर लागू करके एक परत के रूप में माना जा सकता है।
-
जब मॉडल को कॉल किया जाता है, तो आर्किटेक्चर का पुन:उपयोग किया जा रहा है।
-
इसके अलावा, वज़न का भी पुन:उपयोग किया जा रहा है।
-
एन्कोडर मॉडल, एक डिकोडर मॉडल का उपयोग करके ऑटोएन्कोडर मॉडल बनाया जा सकता है।
-
ऑटोएन्कोडर मॉडल प्राप्त करने के लिए इन दो मॉडलों को दो कॉलों में एक साथ जंजीर से बांधा गया है।