首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AllenNLP中的主动学习v2.0.1

AllenNLP中的主动学习v2.0.1
EN

Stack Overflow用户
提问于 2021-02-28 19:21:20
回答 1查看 75关注 0票数 0

我尝试在AllenNLP v2.0.1中实现了一个主动学习过程。但是,由于目前的GradientDescentTrainer实现,我无法继续培训新一批Instance

该模型(也使用AllenNLP进行训练)已经在初始训练数据集上完成了预定数量的历元的训练。我使用Model.from_archive方法恢复了模型,并使用Trainer.from_params静态构造函数为它实例化了一个Trainer

此后,当我试图通过调用trainer.train()来继续训练一批新的Instance时,它会跳过训练,因为_try_train方法中有以下代码片段。

代码语言:javascript
复制
for epoch in range(epoch_counter, self._num_epochs)

这是因为epoch_counter被恢复为5,这是从先前对初始训练数据进行的训练中恢复的。这是它的相关代码片段,

代码语言:javascript
复制
def _try_train(self) -> Tuple[Dict[str, Any], int]:
    try:
        epoch_counter = self._restore_checkpoint()

self._num_epochs也是5,我假设这是我的.jsonnet训练配置文件中定义的纪元数。

简单地说,我的要求是加载一个已经训练过的AllenNLP模型,并在新的一批实例(实际上是我将使用SimpleDataLoader加载的单个实例)上继续训练它。

我还附加了下面训练器的配置。我使用的模型是围绕BasicClassifier的自定义包装器,仅用于记录额外的指标。

提前谢谢。

代码语言:javascript
复制
"trainer": {
  "num_epochs": 5,
  "patience": 1, // for early stopping
  "grad_norm": 5.0,
  "validation_metric": "+accuracy",
  "optimizer": {
    "type": "adam",
    "lr": 0.001
  },
  "callbacks": [
    {
      "type": "tensorboard"
    }
  ]
}
EN

回答 1

Stack Overflow用户

发布于 2021-03-06 02:07:57

下面是几条建议:

  1. 在运行命令行或通过script
  2. 为第二个training

指定不同的序列化目录时,不要打开恢复标志

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66408517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档