Может ли слой LAmbda иметь обучаемые параметры? - PullRequest
1 голос
/ 07 октября 2019

мой вопрос о лямбда-слое. Из того, что я понимаю, при использовании лямбда-слоя он не может содержать весовые / обучаемые параметры. Но здесь в этом примере слой Lambda все еще имеет обучаемые параметры (около 55k). Как это работает здесь?

1 Ответ

0 голосов
/ 07 октября 2019

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

Однако такое выражение также может передавать ваш ввод через другие слои keras. Если вы оберните целые слои таким образом, то у обернутых слоев могут быть сами параметры, и они все еще будут иметься при их обёртывании.

Обратите внимание, что обёртывание в вашем примере, похоже, сделано для включения tf-кода не-keras. ,Альтернативой было бы создание нового подкласса tf.keras.layers.Layer и создание специфичных для tf вещей при реализации его метода call и / или только с использованием API функциональной модели.

...