def CNN():
noOfFilters = 60
sizeOfFilter1 = (5, 5)
sizeOfFilter2 = (3, 3)
sizeOfPool = (2, 2)
noOfNode = 500
model = Sequential()
model.add((Conv2D(noOfFilters, sizeOfFilter1, input_shape = (imageDimensions[0], imageDimensions[1], 1),
activation='relu')))
model.add((Conv2D(noOfFilters, sizeOfFilter1, activation='relu')))
model.add(MaxPooling2D(pool_size = sizeOfPool))
model.add((Conv2D(noOfFilters // 2, sizeOfFilter2, activation='relu')))
model.add((Conv2D(noOfFilters // 2, sizeOfFilter2, activation='relu')))
model.add(MaxPooling2D(pool_size=sizeOfPool))
model.add(Dropout(0.5))
model.add(Flatten())
model.add(Dense(noOfNode, activation = 'relu'))
model.add(Dropout(0.5))
model.add(Dense(num_class, activation = 'softmax'))
model.compile(Adam(lr = 0.001), loss = 'categorical_crossentropy', metrics = ['accuracy'])
return model
model = CNN()
print(model.summary())
batchSizeval = 1
epochs = 150
steps_epoch = 2000
model.fit_generator(dataGen.flow(X_train, y_train, batch_size = batchSizeval),
steps_per_epoch=steps_epoch,
epochs = epochs,
validation_data=(X_validation, y_validation),
shuffle=1)
Это моя текущая сборка CNN, которую я использую. Однако, каждый раз, когда я пытаюсь запустить его, я сталкиваюсь с этой ошибкой
ValueError: Ошибка при проверке цели: ожидается, что плотность_2 будет иметь форму (35,), но получен массив с формой (1,)
Может кто-нибудь объяснить, почему я сталкиваюсь с этим и что я могу сделать, чтобы это исправить?
Спасибо!