Re sNet модель в keras и tf.keras дают разные выходные данные для одного и того же изображения - PullRequest
3 голосов
/ 17 января 2020

Для данного изображения, я извлекаю функции Re sNet, то есть после всех слоев слоев и глобального максимального пула, который дает вектор длиной 2048 для каждого изображения.

Ранее я использовал keras==2.3.1 с бэкэндом tensorflow==1.13.1. Теперь я перешел на tensorflow==2.0.0, так как керас был объединен с тензорным потоком. Я заменил свой код на tf.keras вместо keras.

Но теперь извлеченные функции не совпадают с функциями, извлеченными ранее. Re sNet - это модель, которая в этом отношении не зависит от тензора / кераса или даже питора. Его функциональность предопределена. Почему эта разница происходит? Есть ли параметры, которые можно настроить для получения той же функциональности?

Редактировать 1 : Добавление кода

from tensorflow.keras.applications.resnet50 import ResNet50, preprocess_input
resnet_model = ResNet50(include_top=False)

1 Ответ

1 голос
/ 17 января 2020

Сами модели продолжают обновляться, и используются веса с лучшими результатами. Здесь - папка релизов, в которой вы можете увидеть релизы файлов с разным весом. Связанная папка предназначена для keras, которая, скорее всего, также используется tf.keras. Проблема, с которой вы сталкиваетесь, вероятно, связана с версией библиотеки, а не с методом вызова модели.

Например, здесь вы можете найти код keras_applications и проверить путь веса, который указывает выпустить v0.2 (link is keras, но аналогично для tenorsflow.keras).

В старых версиях библиотек есть более старые ссылки, обновление библиотек также обновляет пути.

...