Tensorflow: восстановить скрытое состояние из восстановленного RNN - PullRequest
0 голосов
/ 27 апреля 2018

Я бы хотел восстановить RNN и получить скрытое состояние.

Я делаю что-то подобное, чтобы сохранить RNN:

loc="path/to/save/rnn"
with tf.variable_scope("lstm") as scope:
    outputs, state = tf.nn.dynamic_rnn(..)
sess = tf.Session()
sess.run(tf.global_variables_initializer())
saver = tf.train.Saver()
save_path = saver.save(sess,loc)

Теперь я хочу получить state.

graph = tf.Graph()
sess = tf.Session(graph=graph)
with graph.as_default():
      saver = tf.train.import_meta_graph(loc + '.meta', clear_devices=True)
      saver.restore(sess, loc)
      state= ...

1 Ответ

0 голосов
/ 27 апреля 2018

Вы можете добавить тензор state к графику collection , который в основном является хранилищем значений ключей для отслеживания тензоров, используя tf.add_to_collection и получить его позже, используя tf.get_collection . Например:

loc="path/to/save/rnn"
with tf.variable_scope("lstm") as scope:
    outputs, state = tf.nn.dynamic_rnn(..)
    tf.add_to_collection('state', state)


graph = tf.Graph()
with graph.as_default():
      saver = tf.train.import_meta_graph(loc + '.meta', clear_devices=True)
      state = tf.get_collection('state')[0]  # Note: tf.get_collection returns a list.
...