एक कन्वोल्यूशनल न्यूरल नेटवर्क (CNN) आमतौर पर निम्नलिखित लेयर्स के संयोजन से बना होता है: कन्वोल्यूशनल लेयर्स, पूलिंग लेयर्स और डेंस लेयर्स।
और पढ़ें: TensorFlow क्या है और Keras, TensorFlow के साथ मिलकर न्यूरल नेटवर्क कैसे बनाता है?
कन्वोल्यूशनल न्यूरल नेटवर्क का उपयोग छवि पहचान जैसी विशिष्ट समस्याओं के लिए उत्कृष्ट परिणाम प्राप्त करने के लिए किया जाता है। इसे models क्लास में मौजूद Sequential मेथड का उपयोग करके बनाया जा सकता है। add मेथड का उपयोग करके इस कन्वोल्यूशनल नेटवर्क में लेयर्स जोड़ी जा सकती हैं।
हम Keras Sequential API का उपयोग करेंगे, जो एक सिक्वेंशियल मॉडल बनाने में मदद करता है जो लेयर्स के एक साधारण स्टैक के साथ काम करता है, जहां प्रत्येक लेयर का ठीक एक इनपुट टेंसर और एक आउटपुट टेंसर होता है।
हम नीचे दिए गए कोड को चलाने के लिए Google Colaboratory का उपयोग कर रहे हैं। Google Colab या Colaboratory ब्राउज़र पर Python कोड चलाने में मदद करता है और इसके लिए शून्य कॉन्फ़िगरेशन और GPUs (ग्राफ़िकल प्रोसेसिंग यूनिट्स) तक मुफ्त पहुंच की आवश्यकता होती है। Colaboratory को Jupyter Notebook के ऊपर बनाया गया है।
print("कन्वोल्यूशनल बेस बनाया जा रहा है")
model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
print("आर्किटेक्चर का विवरण है")
model.summary()
कोड क्रेडिट: https://www.tensorflow.org/tutorials/images/cnn
आउटपुट
कन्वोल्यूशनल बेस बनाया जा रहा है
आर्किटेक्चर का विवरण है
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv2d (Conv2D) (None, 30, 30, 32) 896
_________________________________________________________________
max_pooling2d (MaxPooling2D) (None, 15, 15, 32) 0
_________________________________________________________________
conv2d_1 (Conv2D) (None, 13, 13, 64) 18496
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 6, 6, 64) 0
_________________________________________________________________
conv2d_2 (Conv2D) (None, 4, 4, 64) 36928
=================================================================
Total params: 56,320
Trainable params: 56,320
Non-trainable params: 0
व्याख्या
- उपरोक्त लाइनें एक सामान्य पैटर्न का उपयोग करके कन्वोल्यूशनल बेस को परिभाषित करने में मदद करती हैं।
- यह पैटर्न Conv2D और MaxPooling2D लेयर्स का एक स्टैक है।
- इनपुट के रूप में, जो एक CNN (image_height, image_width, color_channels) आकार के टेंसर्स लेता है, लिया जाता है।
- CNN को (32, 32, 3) आकार के इनपुट को प्रोसेस करने के लिए कॉन्फ़िगर किया गया है, जो CIFAR छवियों का प्रारूप है।
- यह हमारी पहली लेयर को
input_shapeआर्गुमेंट पास करके किया जा सकता है। - प्रत्येक Conv2D और MaxPooling2D लेयर का आउटपुट (height, width, channels) आकार का एक 3D टेंसर होता है।
- चौड़ाई और ऊंचाई के आयाम नेटवर्क के गहरे होने के साथ सिकुड़ते हैं।
- प्रत्येक Conv2D लेयर के लिए आउटपुट चैनलों की संख्या पहले आर्गुमेंट (जैसे 32 या 64) द्वारा नियंत्रित होती है।