Я пытаюсь обучить мою модель cnn на наборе данных изображений с размером изображения 200 x 200 x 3.
Размеры моего x_train (25290, 200, 200, 3)
, а x_test имеет размер (7026, 200, 200, 3).
Я уже пытался использовать fit_generator
, но ошибка все еще сохраняется
Вот модель, которую я построил
model = Sequential()
model.add(Conv2D(64, kernel_size=3, activation='relu', input_shape=(200,200,3)))
model.add(Conv2D(50, kernel_size=3, activation='relu'))
model.add(MaxPooling2D(pool_size=(1,2)))
model.add(Conv2D(25, kernel_size=6, activation='relu'))
model.add(MaxPooling2D(pool_size=(1,2)))
model.add(Conv2D(5, kernel_size=16, activation='relu'))
model.add(Flatten())
model.add(Dense(550))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(Dropout(0.25))
model.add(Dense(250))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(Dropout(0.25))
model.add(Dense(100))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(Dropout(0.25))
#model.add(Flatten())
model.add(Dense(25))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(Dropout(0.25))
model.add(Dense(2))
model.add(Activation('softmax'))
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
model.fit_generator(x_train, y_train,
steps_per_epoch = int(ceil(float(len(x_train)//50))),
epochs=1,
verbose=1,
validation_data=(x_val, y_val),callbacks=[monitor])
При запуске модели я получаю следующую ошибку
Error when checking target: expected activation_31 to have 2 dimensions,
but got array with shape (25290, 2, 2)
Здесь активация_31 - последний уровень активации model.add(Activation('softmax'))