Как исправить выходную форму в Keras 2.1.0 - PullRequest
0 голосов
/ 18 апреля 2019

Я получаю ошибку формы плотного слоя с Keras Version 2.1.0.Эта проблема возникает только с этой версией Keras (2.1.0).Я не в состоянии обновить версию, поскольку она находится в кластере, поэтому я пытаюсь найти исправление в настоящее время.Моя модель определяется как ниже.

model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3),
                 activation='relu',
                 input_shape=(32, 32, 3)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(10, activation='softmax'))

model.compile(loss='categorical_crossentropy',
              optimizer=config["optimizer"],
              metrics=['accuracy'])

Я выполнил одно горячее кодирование, как показано ниже.

y_train = keras.utils.to_categorical(y_train, 10)
y_test = keras.utils.to_categorical(y_test, 10)

Сводка модели:

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
conv2d_1 (Conv2D)            (None, 30, 30, 32)        896       
_________________________________________________________________
conv2d_2 (Conv2D)            (None, 28, 28, 64)        18496     
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 14, 14, 64)        0         
_________________________________________________________________
dropout_1 (Dropout)          (None, 14, 14, 64)        0         
_________________________________________________________________
flatten_1 (Flatten)          (None, 12544)             0         
_________________________________________________________________
dense_1 (Dense)              (None, 128)               1605760   
_________________________________________________________________
dropout_2 (Dropout)          (None, 128)               0         
_________________________________________________________________
dense_2 (Dense)              (None, 10)                1290      
=================================================================
Total params: 1,626,442
Trainable params: 1,626,442
Non-trainable params: 0
_____________________________________

Полученная ошибка:

ValueError: Ошибка при проверке цели: ожидалось, что плотность_2 имеет 2 измерения, но получен массив с формой (50000, 1, 10)

Точно такой же код отлично работает в Keras 2.20,4

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