Вход 0 несовместим со слоем flatten_5: ожидается min_ndim = 3, найдено ndim = 2 - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь настроить нейронную сеть VGG16, вот код:

vgg16_model = VGG16(weights="imagenet", include_top="false", input_shape=(224,224,3))
model = Sequential()
model.add(vgg16_model)
#add fully connected layer:
model.add(Flatten())
model.add(Dense(256, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(3, activation='softmax')) 

Я получаю эту ошибку:

ValueError Traceback (последний вызов последнего) в

2 model.add (vgg16_model)

3 # полностью подключенный слой:

----> 4 model.add (Flatten ())

5 model.add (Dense (256, активация = 'relu'))

6 model.add (Dropout (0,5))

/ usr / local / anaconda / lib/python3.6/site-packages/keras/engine/sequential.py в add (self, layer) 179 self.inputs = network.get_source_inputs (self.outputs [0])

180 elif self.outputs:

-> 181 output_tensor = layer (self.outputs [0])

182, если isinstance (output_tensor, list):

183 повысить TypeError ('Все слоив последовательной модели '

/ usr / local / anaconda / lib / python3.6 / site-packages / keras / engine / base_layer.py в вызов (self, input, **kwargs)

412 # Поднимите исключения в случае несовместимости ввода

413 # wС помощью input_spec, указанного в конструкторе слоя.

-> 414 self.assert_input_compatibility (входные данные)

415

416 # Собирать входные фигуры для построения слоя.

/ usr / local / anaconda / lib / python3.6 / site-packages / keras / engine / base_layer.py в assert_input_compatibility (self, input)

325 self.name + ': ожидаемый min_ndim ='+

326 стр. (Spec.min_ndim) +', найдено ndim = '+

-> 327 стр. (K.ndim (x)))

328# Проверьте dtype.

329, если spec.dtype не равен None:

ValueError: Вход 0 несовместим со слоем flatten_5: ожидается min_ndim = 3, найдено ndim = 2

Я пробовал много предложенных решений, но ни одно из них не могло решить мою проблему.Как я могу решить это?

1 Ответ

0 голосов
/ 10 декабря 2018

На официальной keras веб-странице, на

Точная настройка InceptionV3 для нового набора классов

from keras.models import Model
vgg16_model = VGG16(weights="imagenet", include_top="false", input_shape=(224,224,3))
x = vgg16_model.output
x=Flatten()(x)
x=Dense(256, activation='relu')(x)
x=Dropout(0.5)(x)
predictions=Dense(3, activation='softmax')(x)

model = Model(inputs=base_model.input, outputs=predictions)

У вас есть ошибкав include_top="false" это вызывает сообщение об ошибке.Попробуйте:

vgg16_model = VGG16(weights="imagenet", include_top=False, input_shape=(224,224,3))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...