如果我能在保存和恢复LSTM方面获得一些帮助,我将非常感激 .
我有这个LSTM层 -
# LSTM cell
cell = tf.contrib.rnn.LSTMCell(n_hidden)
output, current_state = tf.nn.dynamic_rnn(cell, word_vectors, dtype=tf.float32)
outputs = tf.transpose(output, [1, 0, 2])
last = tf.gather(outputs, int(outputs.get_shape()[0]) - 1)
# Saver function
saver = tf.train.Saver()
saver.save(sess, 'test-model')
保存程序保存模型,并允许我保存和恢复LSTM的权重和偏差 . 但是,我需要恢复此LSTM图层并为其提供一组新输入 .
为了恢复整个模型,我正在做:
with tf.Session() as sess:
saver = tf.train.import_meta_graph('test-model.meta')
saver.restore(sess, tf.train.latest_checkpoint('./'))
-
我是否可以使用预先训练的重量和偏差来初始化LSTM单元?
-
如果没有,我该如何恢复此LSTM图层?
非常感谢你!
1 回答
您已经加载了模型,因此加载了模型的权重 . 您需要做的就是使用
get_tensor_by_name
从图中获取任何张量并将其用于推理 .例:
在上面的示例中,
word_vec
和outputs
是在创建图形期间分配给张量的名称 . 确保指定名称,以便可以通过名称调用它们 .