уменьшение количества выходных признаков в режиме предварительного обучения в кератах - PullRequest
0 голосов
/ 29 января 2019

Я хочу извлечь 1000 изображений с использованием предварительно обученной модели Xception.но последний уровень моделей xception (avg_pool) дает 2048 функций.Могу ли я уменьшить окончательный номер функции выхода без дополнительного обучения?Я хочу, чтобы функции изображения до результата Softmax, а не predcition.

base_model = xception.Xception(include_top=True, weights='imagenet')    
base_model.summary()
self.model = Model(inputs = base_model.input, outputs=base_model.get_layer('avg_pool').output)

1 Ответ

0 голосов
/ 29 января 2019

Эта модель была обучена производить вложения в 2048-мерном пространстве в классификатор после нее.Нет смысла пытаться уменьшить размерность пространства внедрения, если вы не комбинируете очень сложные и негибкие модели.Если вы просто делаете простое обучение с переносом без ограничений памяти, просто установите новый классификатор (дополнительные слои) поверх него и переобучите после замораживания (или не замещения) всех слоев в исходном Xception.Это должно работать независимо от Xception output_shape.См. keras docs .

Тем не менее, если вам ДЕЙСТВИТЕЛЬНО нужно уменьшить размерность до 1000-й, вам понадобится метод, который сохраняет (или хотя бы пытается сохранить) исходную топологию.пространства встраивания, иначе ваша модель не получит никакой выгоды от трансферного обучения.Взгляните на PCA , SVD или T-SNE .

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