TensorFlow: выводить внутреннее состояние RNN на каждом шаге - PullRequest
0 голосов
/ 21 мая 2018

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

После некоторого изучения SOи на странице TensorFlow на GitHub я увидел, что некоторые люди упоминали, что я должен написать свою собственную ячейку LSTM, которая возвращает все, что я хочу, напечатанное как часть output LSTM.Тем не менее, мне это не кажется прямым, поскольку скрытые состояния и выходные данные LSTM не имеют одинаковых форм.

Мой выходной тензор из LSTM имеет форму [16, 1], а скрытое состояние - этотензор формы [16, 16].Конкатенация их дает тензор формы [16, 17].Когда я пытался вернуть его, я получаю сообщение об ошибке, в котором говорится, что для некоторых операций TensorFlow требуется тензор формы [16,1].

Кто-нибудь знает, как легче обойти эту ситуацию?Мне было интересно, можно ли использовать tf.Print, чтобы просто напечатать требуемые тензоры.

1 Ответ

0 голосов
/ 21 мая 2018

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

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