我已经使用Tensorflow训练了语言模型,如教程中所述
为了训练,我使用了以下命令。
bazel-bin/tensorflow/models/rnn/ptb/ptb_word_lm --data_path=./simple-examples/data/ --model small
培训取得了成功,最后完成了以下操作。
Epoch: 13 Train Perplexity: 37.196
Epoch: 13 Valid Perplexity: 124.502
Test Perplexity: 118.624
但我仍然对训练模型存储在哪里以及如何使用它感到困惑。
演示代码可能不包括保存模型的功能;您可能希望显式使用tf.train.Saver
将变量保存到检查点和从检查点恢复变量。
请参阅文档和示例。
根据医生的说法,这很简单。在下面的示例中,我保存了模型中的所有变量。相反,您可以通过以下示例选择要保存的变量。
# ...
tf.initialize_all_variables().run()
####################################################
# Add ops to save and restore all the variables.
####################################################
saver = tf.train.Saver()
for i in range(config.max_max_epoch):
lr_decay = config.lr_decay ** max(i - config.max_epoch, 0.0)
m.assign_lr(session, config.learning_rate * lr_decay)
print("Epoch: %d Learning rate: %.3f" % (i + 1, session.run(m.lr)))
train_perplexity = run_epoch(session, m, train_data, m.train_op,
verbose=True)
print("Epoch: %d Train Perplexity: %.3f" % (i + 1, train_perplexity))
valid_perplexity = run_epoch(session, mvalid, valid_data, tf.no_op())
print("Epoch: %d Valid Perplexity: %.3f" % (i + 1, valid_perplexity))
####################################################
# Save the variables to disk.
####################################################
save_path = saver.save(session, "/tmp/model.epoch.%03d.ckpt" % (i + 1))
print("Model saved in file: %s" % save_path)
# ....
在我的例子中,每个检查点文件的磁盘大小为18.61M(--model small
)。
关于如何使用模型,只需按照文档从保存的文件中恢复检查点即可。然后你可以随心所欲地使用它。