2017-01-10 12 views
11

मैं निम्नलिखित परत के साथ शुरू गहन नेटवर्क को प्रशिक्षित करना चाहते हैं:समय त्रुटि जाँच मॉडल इनपुट: उम्मीद convolution2d_input_1 4 आयाम है, लेकिन आकार के साथ सरणी मिल गया (32, 32, 3)

model = Sequential() 
model.add(Conv2D(32, 3, 3, input_shape=(32, 32, 3))) 

का उपयोग कर
history = model.fit_generator(get_training_data(), 
       samples_per_epoch=1, nb_epoch=1,nb_val_samples=5, 
       verbose=1,validation_data=get_validation_data() 
निम्नलिखित जनरेटर के साथ

:

def get_training_data(self): 
    while 1: 
     for i in range(1,5): 
      image = self.X_train[i] 
      label = self.Y_train[i] 
      yield (image,label) 

(मान्यता जनरेटर समान दिखता है)। एक पहली परत

model.add(Conv2D(32, 3, 3, input_shape=(32, 32, 3))) 

साथ,

Error when checking model input: expected convolution2d_input_1 to have 4 
dimensions, but got array with shape (32, 32, 3) 

कि कैसे हो सकता है:

प्रशिक्षण के दौरान, मैं त्रुटि मिलती है?

+2

आप इसे कैसे ठीक किया तहत मिल सकती है? –

उत्तर

15

आपके द्वारा परिभाषित इनपुट आकार एक नमूना का आकार है। मॉडल स्वयं नमूने के कुछ सरणी इनपुट के रूप में अपेक्षा करता है (भले ही इसकी लंबाई 1 की सरणी हो)।

नमूना की गणना करने के लिए पहले आयाम के साथ आपका आउटपुट वास्तव में 4-डी होना चाहिए। यानी एक छवि के लिए आपको एक आकार (1, 32, 32, 3) वापस करना चाहिए।

आप अधिक जानकारी के here "Convolution2D"/"इनपुट आकार"

+0

क्या बदलना है? मुझे एक ही त्रुटि मिल रही थी-https: //paste.ubuntu.com/24188374/ –

+0

@ अभिषेक भाटिया आपको x_ip_shape को उसी तरीके से बदलना चाहिए। – ginge

+9

इनपुट आकार को बदलने से त्रुटि को बदलना पड़ता है "इनपुट 0 परत conv2d_1 के साथ असंगत है: अपेक्षित ndim = 4, मिला ndim = 5"। किसी को भी कुछ मदद है? – Stormsson

संबंधित मुद्दे