Как создать рекуррентную переменную с TensorFlow

Это звучит очень просто, но я не могу найти информацию в Интернете. Мне, вероятно, не хватает фундаментального понимания.

Я хотел бы сделать что-то простое: рекуррентная переменная. Сказать:

Z(t) = W * Z(t-1)

с некоторыми фиксированными (но обучаемыми) W,

Я пробовал такие вещи, как:

initializer = tf.random_uniform_initializer(0., 1.)
with tf.variable_scope('recurrent', initializer=initializer):
    Z = tf.get_variable('Z', shape=[...])
Z = tf.matmul(W, Z)

Но, конечно, в течение сеанса, если я делаю Z.eval(), это дает связную ценность Z, но Z Сам не обновляется.

Отсюда мой вопрос: как создать рекуррентную переменную, которая обновляется при запуске графа с TensorFlow?

Большое спасибо за Вашу помощь!

1 ответ

Решение

Когда вы пишете заявление, как

Z = tf.matmul(W, Z)

вы обновляете переменную python Z а не внутреннее хранилище TensorFlow, связанное с переменной TensorFlow Z, Пожалуйста, ознакомьтесь с разделом об операциях с состоянием в TensorFlow, чтобы получить представление о том, как TensorFlow управляет состоянием. Чтобы ответить на ваш конкретный вопрос, вы должны использовать tf.assign операция по обновлению TensorFlow Z переменная следующим образом:

Z = tf.assign(Z, tf.matmul(W, Z))
Другие вопросы по тегам