Регистрация активаций внутреннего шлюза LSTM во время повторяющихся временных шагов - PullRequest
0 голосов
/ 31 мая 2019

В настоящее время я работаю с рекуррентными клетками LSTM в кератах.Для анализа моей сети я хочу посмотреть на значения i, c, o и f в ячейке LSTM во время прогнозирования временного ряда.

По сути, я хочу иметь тензор регистрации, который регистрирует внутреннюю ячейку LSTMзначения во время повторяющихся вычислений.

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

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

По сути, я хочу записать эти 4 значения, расположенные в функции вызова LSTMCell:

i = self.recurrent_activation(x_i + K.dot(h_tm1_i ,self.recurrent_kernel_i))
f = self.recurrent_activation(x_f + K.dot(h_tm1_f,self.recurrent_kernel_f))
c = f * c_tm1 + i * self.activation(x_c + K.dot(h_tm1_c, self.recurrent_kernel_c))
o = self.recurrent_activation(x_o + K.dot(h_tm1_o, self.recurrent_kernel_o)

Есть ли простой встроенный способ в keras, чтобы регистрировать внутренние данные ячейки LSTM во время повторяющихся / развернутых вычислений?Если нет, то каков будет лучший способ и место, чтобы начать смотреть?Есть ли другой подход или библиотека для добавления функции ведения журнала?

1 Ответ

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

На данный момент мне не удалось реализовать регистрацию активации шлюза в keras.

Я думаю, что лучшим решением для достижения регистрации в keras является разделение слоя LSTM на два промежуточных слоя и распечаткаслой между ними.Это включает в себя реализацию двух слоев costum.

Однако я перешел с реализации на основе keras на matlab.Внедрение и структура нейронной сети Matlab позволяют легко редактировать код, а реализация функции ведения журнала проста.

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