我正在使用最近的NLP模型
Google
example
具有所有的模型步骤和测试功能。我现在的问题是,由于模型需要很长时间来训练,即使使用谷歌TPU,我也需要保存训练过的模型,我的猜测是它的工作原理与GPT-2模型相似,因为它可以在任何时候停止训练,所以可以通过几次训练来训练:
This will take at least 30 minutes to run to completion, but can safely
# be interrupted by selecting "Runtime > Interrupt Execution"
但是我还没有找到一个关于如何保存和加载模型的例子。在GPT-2的情况下,每个新模型都会自动创建一个新目录,要使用它,只需要指向新目录,但是对于这个目录,我没有找到如何加载以前训练过的模型。
我在笔记本上看到了这样的代码:
# Set up a Trainer.
output_dir = os.path.expanduser('~/train_dir/')
!rm -f ~/train_dir/model.pkl # Remove old model
trainer = trax.supervised.Trainer(
model=trax.models.ReformerLM,
loss_fn=trax.layers.CrossEntropyLoss,
optimizer=trax.optimizers.Adam,
lr_schedule=trax.lr.MultifactorSchedule,
inputs=trax.supervised.inputs.Inputs(my_inputs),
output_dir=output_dir,
has_weights=True)
它正在删除以前的模型,我在目录中找到了这个:
我用泡菜装这个型号.pkl文件,我也复制到我的Gdrive文件夹:
with open('model.pkl', 'rb') as handle:
reformer_model = pickle.load(handle)
reformer_model
但这只是一本有重量的字典,不是可以直接使用的模型: