Ошибка при установке CNN с одним из моих плотных слоев - PullRequest
0 голосов
/ 15 марта 2020
    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,)

Может кто-нибудь объяснить, почему я сталкиваюсь с этим и что я могу сделать, чтобы это исправить?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...