Как исправить это Keras ValueErrors для классификации изображений? - PullRequest
1 голос
/ 26 июня 2019

Я пытаюсь выполнить бинарную классификацию изображений с использованием библиотеки keras, но я получаю ValueError as Error при проверке цели: ожидается, что плотность_1 имеет 4 измерения, но получен массив с формой (32, 2)

classifier.add(Conv2D(filters=32, kernel_size=(3,3), input_shape=(64,64,3), activation='relu'))
classifier.add(Conv2D(filters=32, kernel_size=(3,3), activation='relu'))
#Pooling_layers
classifier.add(MaxPooling2D(pool_size=(2,2)))
#conv_layers
classifier.add(Conv2D(filters=32, kernel_size=(3,3), activation='relu'))
classifier.add(Conv2D(filters=32, kernel_size=(3,3), activation='relu'))
#Max_pooling_layers
classifier.add(MaxPooling2D(pool_size=(2,2)))
classifier.add(Dense(units=2, activation='softmax'))
#Compile_classifier
classifier.compile(optimizer = 'adam', loss='categorical_crossentropy', metrics=['accuracy'])


from keras.preprocessing.image import ImageDataGenerator

train_datagen=ImageDataGenerator(rescale=1./255)

train_set = train_datagen.flow_from_directory(
        'dataset/train',
        target_size=(64,64),
        batch_size=32,
        class_mode='categorical')

test_datagen=ImageDataGenerator(rescale=1./255)

test_set = test_datagen.flow_from_directory(
        'dataset/test',
        target_size=(64,64),
        batch_size=32,
        class_mode='categorical')

classifier.fit_generator(
        train_set,
        steps_per_epoch=9000,
        epochs=25,
        validation_data=test_set,
        validation_steps=3000)

При выполнении моей программы у меня появляется это сообщение об ошибке.

ValueError: Error when checking target: expected dense_1 to have 4 dimensions, but got array with shape (32, 2)

...