Могу ли я написать слой Keras Lambda с не обучаемыми / фиксированными весами? - PullRequest
1 голос
/ 13 июня 2019

https://keras.io/layers/writing-your-own-keras-layers/

В соответствии с этим операции клиента без сохранения состояния могут быть перенесены на уровни лямбды.Но если есть обучаемые переменные, нам нужно реализовать наш собственный уровень.Я хочу спросить, возможно ли использовать лямбда-слой для фиксированных весов (т.е. предварительно обученных весов)?

Если да, как убедиться, что веса загружены правильно, а не случайно инициализированы?Поскольку get_weights () не даст вам веса в лямбда-слое.

Заранее большое спасибо.

Ответы [ 2 ]

1 голос
/ 13 июня 2019

Нет, лямбда-слои не имеют весов со стороны Keras, вы можете поместить некоторые весы в вашу лямбда-функцию, но эти весы не могут быть загружены с помощью Keras и полностью невидимы для Keras.

Так что есливы хотите использовать предварительно обученные веса, вы должны реализовать свой собственный слой, поэтому эти веса известны Keras и могут быть загружены с помощью load_weights.

0 голосов
/ 13 июня 2019

Давайте предположим, что вы заинтересованы в сверточном слое. Я думаю, что это выполнимо с model.add(Lambda(lambda x: K.conv2d(x, kernels)), где kernels - это матрица numpy с вашими весами, а K - это бэкэнд.

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