Как я могу написать логику слоя c на основе текущей эпохи или шага эпохи? - PullRequest
0 голосов
/ 20 апреля 2020

Документация Keras здесь описывает , как написать пользовательский слой, унаследованный от класса Layer. Теперь у меня есть еще один пользовательский слой CustomLayer, от которого я хочу наследовать. Давайте назовем мой новый пользовательский слой CustomLayer2. Я предполагаю, что процесс наследования, даже если я буду наследовать не от Layer, а от CustomLayer, будет таким же, как описано в связанной документации, но я также унаследую пользовательскую функциональность CustomLayer.

В любом случае, внутри этого пользовательского слоя CustomLayer2 Я хочу реализовать некоторые логики c, основанные на текущей эпохе или шаге эпохи.

Как я могу это сделать? Как я могу динамически получить текущую эпоху или шаг эпохи из call и / или build методов слоя?

Может быть, это можно сделать с помощью обратных вызовов. Например, у меня может быть обратный вызов, который обращается к экземпляру модели, а затем что-то меняет внутри модели. Мне не очень нравится это решение, но если оно работает, это нормально. Но можем ли мы изменить лог c слоев модели из экземпляра модели?

В прошлом задавались два похожих вопроса

1 Ответ

0 голосов
/ 21 апреля 2020

Пользовательский обратный вызов будет способом go здесь. Обычно слой logi c вызывается один раз для построения логики вычислительной функции; эта вычислительная функция будет позже использована во время обучения. Как правило, это происходит еще до того, как оптимизатор приходит в себя, и поэтому ничего, связанного с эпохами / шагами, не существует.

Таким образом, нет способа получить этапы обучения из пользовательского слоя.

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