Как сравнить сходство двух моделей keras

Я построил модель Keras, используя функциональный API, и создал вторую модель, используя функцию model_from_json(). Я хочу увидеть, совпадают ли слои модели (не веса) двух моделей.

Как сравнить две модели Keras?

РЕДАКТИРОВАТЬ

Основываясь на комментариях ниже, я мог бы сравнить каждый слой. Имеет ли смысл что-то вроде приведенного ниже:

for l1, l2 in zip(mdl.layers, mdl2.layers):
    print (l1.get_config() == l2.get_config())

Вы хотите сравнить их программно или просто на глаз? model.summary() достаточно или полезен для вас?

today 25.10.2018 16:40

Я имел в виду программно ... Я хочу проверить, что у них одинаковые формы, регуляризация и т. д.

Stergios 25.10.2018 16:48

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

Abdulrahman Bres 25.10.2018 17:15

@AbdulrahmanBres: Хорошо, тогда как мне сравнить два слоя Keras?

Stergios 25.10.2018 17:16
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
5
4
2 985
2

Ответы 2

вы можете использовать кривые ROC для сравнения классификаторов.

С бинарными классификаторами вычисляется частота истинно-положительных и ложноположительных для всех возможных пороговых значений и строится первая диаграмма по оси Y, а вторая - по оси X. Результирующая кривая для каждого классификатора может быть интегрирована, и результирующий интеграл, так называемая «площадь под кривой», равен вероятности того, что классификатор ранжирует случайно выбранную положительную выборку выше, чем случайно выбранную отрицательную. Это значение можно использовать для сравнения классификаторов, поскольку более высокое значение показывает в целом лучшую производительность, чем более низкое. Фосетт также дает способ применить это к мультиклассовой классификации.

Винсент, я не хочу сравнивать статистические характеристики двух моделей. Я просто хочу убедиться, что эти две модели похожи архитектурно.

Stergios 25.10.2018 17:16

Обновлять: ваш подход правильный.

Вы можете перебирать два слоя моделей и сравнивать их один за другим (поскольку вам не важны веса или то, как модель компилируется и оптимизируется).

Ты можешь сделать это:

for l1, l2 in zip(mdl.layers, mdl2.layers):
    print(l1.get_config() == l2.get_config())

Или просто:

print(mdl.get_config() == mdl2.get_config())

застежка-молния займет более короткую из двух

eyaler 27.06.2019 23:31

Другие вопросы по теме