Другая форма вывода на последнем слое и прогноз - PullRequest
0 голосов
/ 29 мая 2020

Я построил секвентальную модель Keras, используя предварительно обученную модель с добавлением некоторых слоев. Код приведен ниже. Затем попытался предсказать, и ожидаемая форма прогноза была числом (выборок, 16), но получила результаты прогноза как (образцы, 8). Код для построения модели и печати формы приведен ниже.

`

layer_output = base_model.get_layer(output_layer).output
x=layer_output
x = Dense(1024, activation='sigmoid',name='1024_out')(x)
x = Dense(512, activation='sigmoid', name='512_out')(x)
x = Dense(16, activation='sigmoid',name="final")(x)
model = Model(base_model.input, outputs=x)
sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='mean_squared_error', optimizer=sgd)
model.load_weights(weight_path)

The prediction shape andd the shape of last layer output print (" Pred ", model.predict (images [: 2]). Shape , "Последний слой:", model.layers [-1] .output_shape) `Результат: Pred (2, 8) Последний слой: (None, 16)

1 Ответ

1 голос
/ 29 мая 2020

Получил ответ на поставленный выше вопрос / проблему. Последний слой не был сигмовидным вместо softmax для мультиклассовой классификации. Изменено

x = Dense(16, activation='sigmoid',name="final")(x)

на

x = Dense(16, activation='softmax',name="final")(x)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...