2017-10-08 68 views
-1

我試圖使用我自己的數據集,它由兩個類別組成。我不明白怎麼能解決這個問題。我怎樣才能解決這個問題?它看起來像模型獲取圖像的形狀作爲輸入,而不是實際的圖像。錯誤:期望的activation_4有2個維度,但有形狀的數組(14,3,150,150)

print X_train.shape 
print y_train.shape 
print X_test.shape 
print y_test.shape 

(55, 3, 150, 150) 
(55, 1) 
(14, 3, 150, 150) 
(14, 1) 

from keras.models import Sequential 
from keras.layers import Conv2D, MaxPooling2D 
from keras.layers import Activation, Dropout, Flatten, Dense 
from keras import backend as K 
K.set_image_dim_ordering('th') 

model = Sequential() 
#model.add(Convolution2D(32, kernel_size=(3, 3), input_shape=(3, IMG_SIZE, IMG_SIZE))) 
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(3,150,150))) 
#model.add(Activation('relu')) 
model.add(MaxPooling2D(pool_size=(2, 2))) 

model.add(Conv2D(32, 3, 3)) 
model.add(Activation('relu')) 
model.add(MaxPooling2D(pool_size=(2, 2))) 

model.add(Conv2D(64, 3, 3)) 
model.add(Activation('relu')) 
model.add(MaxPooling2D(pool_size=(2, 2))) 

model.add(Flatten()) 
model.add(Dense(64)) 
model.add(Activation('relu')) 
model.add(Dropout(0.5)) 
model.add(Dense(num_classes)) 
model.add(Activation('sigmoid')) 

model.compile(loss='categorical_crossentropy', 
       optimizer='rmsprop', 
       metrics=['accuracy']) 

model.summary()

ValueError: Error when checking target: expected activation_4 to have 2 dimensions, but got array with shape (14, 3, 150, 150) 
+0

'xtrain'的4個維度的含義是什麼? – hpaulj

+0

55 =樣本數量,3是通道數量,150是寬度和高度 –

+1

您的'model.fit()'語句在哪裏? – DJK

回答

2

你傳遞什麼到fit方法Y有4個維度:(14,3,150,150)

您可能會傳遞X而不是Y.根據最後一層的輸出結果,您的Y必須有形狀(14,2)

但是,如果您的Y形狀爲(14,1),則應在末尾使用Dense(1)而不是Dense(2)

相關問題