Convolutional1D, Convolutional2D और Convolutional3D के बीच अंतर क्या हैं?


10

मैं कन्वर्सेशनल न्यूरल नेटवर्क्स के बारे में सीख रहा हूं। जब पर देख Kerasउदाहरण, मैं तीन अलग अलग तरीकों घुमाव के बारे में जाना। अर्थात्, 1 डी, 2 डी और 3 डी। इन तीन परतों के बीच अंतर क्या हैं? उनके उपयोग के मामले क्या हैं? क्या उनके उपयोग मामलों को दिखाने के लिए कुछ लिंक या संदर्भ हैं?

जवाबों:


5

एकमात्र अंतर इनपुट स्पेस की आयामीता है। एक संकरी परत के इनपुट में निम्नलिखित आकृति है:

input_shape = (batch_size, input_dims, चैनल)

  • Conv1d के लिए इनपुट आकार : ( बैच_साइज़ , डब्ल्यू, चैनल)

    उदाहरण: 1 सेकंड स्टीरियो वॉयस सिग्नल 44100 हर्ट्ज, आकार में नमूना: (बैच_साइज़, 44100,2)

  • Conv2d के लिए इनपुट आकार : ( बैच_साइज़ , (एच, डब्ल्यू), चैनल)

    उदाहरण: 32x32 RGB छवि, आकार: (बैच_साइज़, 32,32,3)

  • Conv3d के लिए इनपुट आकार : ( बैच_साइज़ , (एच, डब्ल्यू, डी), चैनल)

    उदाहरण (अधिक मुश्किल): 24 एफपीएस पर 32x32 आरजीबी छवियों का 1 दूसरा वीडियो, आकार: (बैच_साइज, 32,32,3,24)

चैनल क्या है?

मुख्य बात यह सोचना है कि हमारे इनपुट डेटा के लिए चैनल का क्या मतलब है। दृढ़ चैनल परत प्रत्येक चैनल के लिए अलग-अलग फ़िल्टर लागू करती है, इस प्रकार, दोषी परत की लंबाई का आकार निम्न होता है:

(kernel_size,num_channels,num_filter_per_channels)

उदाहरण:

3. फिल्टर के साथ 12 परत और आकार के वर्ग कर्नेल मैट्रिक्स के साथ संवेदी परत। यह परत प्रत्येक चैनल के लिए 12 अलग-अलग फ़िल्टर लागू करेगी। पहले दिए गए उदाहरणों में:

  • 1 सेकंड स्टीरियो वॉयस सिग्नल को 44100 हर्ट्ज पर गिना गया, कर्नेल_साइज़ = 3

    12 x 2 = 24 एक-आयामी फ़िल्टर, प्रत्येक चैनल के लिए 12 फ़िल्टर

     Weigths shape: (3, 2, 12)
  • 32x32 RGB छवि, कर्नेल_साइज़ = (3,3)

    12 x 3 = 36 दो आयामी फिल्टर, प्रत्येक चैनल के लिए 12 फ़िल्टर

    Weights shape: (3, 3, 3, 12)
  • 24 एफपीएस पर 32x32 आरजीबी छवियों का 1 दूसरा वीडियो, कर्नेल_साइज = (3,3,3)

    24 x 12 = 288 तीन आयामी फिल्टर, प्रत्येक चैनल के लिए 12 फ़िल्टर

    Weights shape: (3, 3, 3, 24, 12)

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

यह ध्यान रखना महत्वपूर्ण है कि इनपुट आयाम डी के साथ एक संकेत को एक चैनल के साथ डी + 1 आयाम के संकेत के रूप में माना जा सकता है, लेकिन परिणामस्वरूप सुविधा स्थान कम प्रतिनिधि / उपयोगी हो सकता है :

 (44100,2) --> expand_dimension(axis=-1)--> ((44100,2),1)

उदाहरणों का समर्थन करते हुए कोड्स कोड

from keras import Input, Conv1D, Conv2D, Conv3D
#1D
in_ = Input(shape=(44100,2))
layer = Conv1D(filters=12,kernel_size=3)
out_ = layer(in_)
print("Weights shape: {}".format(layer.get_weights()[0].shape))

#2D
in_ = Input(shape=(32,32,3))
layer = Conv2D(filters=12,kernel_size=3)
out_ = layer(in_)
print("Weights shape: {}".format(layer.get_weights()[0].shape))

#3D
in_ = Input(shape=(32,32,3,24))
layer = Conv3D(filters=12,kernel_size=3)
out_ = layer(in_)
print("Weights shape: {}".format(layer.get_weights()[0].shape))

8

Conv1D का उपयोग इनपुट संकेतों के लिए किया जाता है जो आवाज के समान होते हैं। उन्हें नियोजित करके आप संकेत भर में पैटर्न पा सकते हैं। उदाहरण के लिए, आपके पास एक ध्वनि संकेत है और आपके पास एक दृढ़ परत है। प्रत्येक कनवल्शन एक लागत फ़ंक्शन को नियोजित करके सार्थक पैटर्न खोजने के लिए आवाज का पता लगाता है।

Conv2D का उपयोग छवियों के लिए किया जाता है। यह उपयोग मामला बहुत लोकप्रिय है। इस परत के लिए उपयोग की जाने वाली कन्वेक्शन विधि को वॉल्यूम पर कनवल्शन कहा जाता है । इसका मतलब है कि आपके पास एक द्वि-आयामी छवि है जिसमें एक उदाहरण के रूप में कई चैनल, RGB हैं। इस मामले में, प्रत्येक कनफ्लुएंसियल फिल्टर को वास्तव में छवि के साथ उचित पैटर्न खोजने के लिए छवि के साथ, पार-सहसंबद्ध होने के लिए तीन आयामी फिल्टर होना चाहिए।

Conv3D आमतौर पर उन वीडियो के लिए उपयोग किया जाता है जहां आपके पास प्रत्येक समय अवधि के लिए फ़्रेम होता है। इन परतों में आमतौर पर पिछली परतों की तुलना में अधिक पैरामीटर होते हैं। कारण हम उन्हें कहते हैं3डीयह है कि प्रत्येक फ्रेम के लिए छवियों के अलावा, असतत मूल्यों वाले समय नामक एक और अक्ष है , और उनमें से प्रत्येक एक विशेष फ्रेम से मेल खाती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.