Я работаю над пользовательской ячейкой RNN. Пользовательская часть заключается в том, что рядом со скрытым состоянием (shape=(units)
) я также несу матрицу (shape=(units, units)
) в состоянии ячейки. Это прекрасно работает, но теперь я заинтересован в инициализации матрицы как единичной матрицы. Я пробовал другой метод предоставления initial_state
для метода вызова, но каждый раз, когда кажется, что возникает проблема с тем, как я его предоставляю, выдается ошибка типа
ValueError: An `initial_state` was passed that is not compatible with `cell.state_size`. Received `state_spec`=ListWrapper([InputSpec(shape=(50,), ndim=1), InputSpec(shape=(50, 50), ndim=2)]); however `cell.state_size` is [TensorShape([50]), TensorShape([50, 50])]
.
Вот как я настраиваю состояние ячейки:
self.state_size = NoDependency([TensorShape([self.units]),
TensorShape([self.units, self.units])])
и пытаюсь их инициализировать при вызове:
x = rnn_layer(x, initial_state = [tf.zeros(50), tf.eye(50)]).