2017-10-08 66 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)

相关问题