तो मैं एक स्याम देश तंत्रिका नेटवर्क के बारे में this कागज को लागू करने की कोशिश कर रहा हूँ । मैं इसके बजाय CIFAR10 dataset का उपयोग कर रहा हूं, हालांकि, 10 कक्षाओं के साथ।Keras
पैरों में से एक के विनिर्देश सुविधा के लिए पुन: उत्पन्न किए जाते हैं। नोटेशन: सी_एक्स एक संकल्प परत है, एस_एक्स एक सबमप्लिंग परत है और एफ_एक्स पूरी तरह से जुड़ा हुआ परत है;
- सी 1: सुविधा नक्शे: 15, गिरी आकार = (7, 7)
- S2: सुविधा नक्शे: 15, क्षेत्र के देखने = (2, 2) एक साझा सूचकांक एक्स के साथ
- सी 3: सुविधा नक्शे: 45, गिरी आकार = (6, 6)
- एस 4: सुविधा नक्शे: 45, क्षेत्र के देखने = (4, 3)
- सी 5: सुविधा नक्शे: 250, गिरी आकार = (5, 5)
- एफ 6 (पूरी तरह से जुड़े परत): नहीं। इकाइयों के = 50
क्या मैं
model = Sequential()
#C1
model.add(Convolution2D(15, 7, 7,
activation='relu',
border_mode='same',
input_shape=input_img_shape))
print("C1 shape: ", model.output_shape)
#S2
model.add(MaxPooling2D((2,2), border_mode='same'))
print("S2 shape: ", model.output_shape)
#...
#C5
model.add(Convolution2D(250, 5, 5,
activation='relu',
border_mode='same'))
print("C5 shape: ", model.output_shape)
#F6
model.add(Dense(50))
यह एक लंबे त्रुटि संदेश है, जो मेरा मानना है कि एक आकृति बदलें त्रुटि है फेंकता कोशिश की है। त्रुटि का एक स्निपेट:
Exception: Input 0 is incompatible with layer dense_13: expected
ndim=2, found ndim=4
मुझे पता है कि समस्या यह है कि अंतिम घने परत में अलग है क्योंकि कोड सुचारू रूप से आगे बढ़ती है, तो मैं इसे टिप्पणी बाहर। लेकिन मुझे यकीन नहीं है कि मुझे अपनी अंतिम पूरी तरह से जुड़े परत को आकार/निर्दिष्ट करना चाहिए ताकि यह पूर्व रूपांतरण परत के साथ संगत हो?
कुछ स्थान जहां मैं देखा है
This किसी समस्या से जूझ, हालांकि कार्यान्वयन थोड़ा अलग है है (ऐसा लगता है वहाँ एक 'स्याम देश' कोर इस लेखन के समय पर keras में परत नहीं है कि)। मुझे पता है कि implementations in Theano भी हैं, जो मुझे दिमाग में लगेगा अगर मैं इसे कैमरे में करने में सक्षम नहीं हूं।
धन्यवाद!
संकल्पनात्मक रूप से, क्या मैं पूछ सकता हूं कि आपको "फ़्लैटन" परत क्यों चाहिए? यह मेरे लिए नया है क्योंकि मैंने इसे पेपर में उल्लेख नहीं किया है। धन्यवाद! – AndreyIto
@AndreyIto यह एक कार्यान्वयन विस्तार से अधिक है: केरास में, परत 'कनवॉल्यूशन 2 डी' के आउटपुट में 4 आयाम होते हैं [(स्रोत देखें)] (https://github.com/fchollet/keras/blob/master/keras/layers /convolutional.py#L248) जबकि 'डेन्स' परत का इनपुट आयाम 2 होना चाहिए [(स्रोत देखें)] (https://github.com/fchollet/keras/blob/master/keras/layers/core.py # L567)। इसलिए आपको 'डेटा' परत से गुज़रने से पहले अपने डेटा को 'फ़्लैटन' परत के साथ फ़्लैट करना होगा। – sytrus