В настоящее время я работаю с рекуррентными клетками 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 во время повторяющихся / развернутых вычислений?Если нет, то каков будет лучший способ и место, чтобы начать смотреть?Есть ли другой подход или библиотека для добавления функции ведения журнала?