Зависит ли извлечение прогноза / страха на основе предварительно обученных моделей keras от pre_processing_input

Приложение Keras имеет предварительно обученные модели с сохраненными весами. Эти веса не зависят от характера «preprocessing_input» для изображений, с которыми он был обучен. Теперь, когда я отправляю свой набор изображений для извлечения функций, в зависимости от моего бэкэнда и режима, imagenet_utils будет выполнять preprocessing_input, и обрабатываемый массив iamge будет либо пикселями, масштабированными между -1 и 1, ИЛИ каждым цветовым каналом с нулевым центром относительно набора данных ImageNet. Разве предсказание/извлечение признаков не привело бы к другим результатам, если бы я следовал процессу, описанному, скажем, «Извлечение признаков с помощью VGG16» в https://keras.io/applications/ ???


person Shirish Ranade    schedule 02.10.2017    source источник
comment
Я так думаю... и я не уверен, что предварительная обработка должна меняться в зависимости от вашего бэкэнда, только от выбранного вами режима. По умолчанию используется «caffe» из их кода. . Итак, я думаю, вам следует провести некоторые тесты, прежде чем переходить к реальным случаям. До сих пор я думал, что эти модели будут принимать значения от 0 до 1.   -  person Daniel Möller    schedule 02.10.2017
comment
Я хотел бы знать, какую предварительную обработку следует использовать.   -  person Daniel Möller    schedule 03.10.2017


Ответы (1)


Нет, веса не зависят от предварительной обработки входных данных. Если вы используете разные методы предварительной обработки, окончательные веса будут другими.

И как вы говорите, если вы используете другую предобработку, то и функции будут другими. Вы должны использовать только ту предварительную обработку, которая использовалась для обучения сети.

Вот почему модуль python каждой сети содержит метод preprocess_input, который вы можете импортировать для выполнения предварительной обработки. Каждый метод может делать разные вещи в зависимости от того, как обучена сеть и какой тип предварительной обработки использовался.

person Dr. Snoopy    schedule 03.10.2017
comment
Может быть, вы меня неправильно поняли. Я не обучаю модель с нуля. Я использую VGG16 с weights='vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5'. Моя дилемма такова: эти веса 'vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5' будут работать с preprocessing_input = пикселями, масштабируемыми между -1 и 1 ИЛИ каждый цветовой канал с нулевым центром, который зависит от keras.backend моей установки и режима, который я могу выбрать. - person Shirish Ranade; 03.10.2017
comment
@ShirishRanade Это не то, о чем ваш вопрос, вы также представили новую информацию, если вы используете keras.applications, вам нужно использовать соответствующий метод preprocess_input из того же модуля. Это не зависит от вашего бэкенда keras. - person Dr. Snoopy; 03.10.2017
comment
Думаю, я проведу несколько тестов, чтобы увидеть, получу ли я, указав режим = 'tf' и режим = 'caffe', те же результаты. - person Shirish Ranade; 03.10.2017