Я пытаюсь реализовать усеченный backprop во времени в TensorFlow, где мои данные поступают из tf.data.Dataset.from_generator
, а НЕ tf.placeholder
.Уловка в том, что я хочу взять вывод на временном шаге $ t $, пропустить его через функцию и затем передать вывод в сеть на следующем временном шаге $ t + 1 $.
В учебнике TensorFlow (https://www.tensorflow.org/tutorials/sequences/recurrent) предлагается использовать цикл for. Это работает для быстрого выполнения или с заполнителями, но я не использую ни того, ни другого. Я попытался нарезать ввод self.rnn_cell(input_windows[:, i], state)
, ноЯ получаю ошибку {TypeError}Tensor objects are only iterable when eager execution is enabled. To iterate over this tensor use tf.map_fn.
. Это бесполезно, поскольку я не могу использовать tf.map_fn
, потому что ввод одной итерации является выводом предыдущей итерации.