首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用`allennlp training `继续训练序列化的AllenNLP模型?

如何使用`allennlp training `继续训练序列化的AllenNLP模型?
EN

Stack Overflow用户
提问于 2021-04-29 02:42:34
回答 1查看 136关注 0票数 0

目前使用AllenNLP 1.2训练模型:

代码语言:javascript
复制
allennlp train -f --include-package custom-exp /usr/training_config/mock_model_config.jsonnet -s test-mock-out

配置非常标准:

代码语言:javascript
复制
"dataset_reader" : {

        "reader": "params"

    },
    "data_loader": {
        "batch_size": 3,
        "num_workers": 1,
    },
    "trainer": {
        "trainer_params": "various"
    },


    "vocabulary": {
        "type": "from_files",
        "directory": vocab_folder,
        "oov_token": "[UNK]",
        "padding_token": "[PAD]",
    },

    "model": {
        "various params": ...
    }

并将它们序列化到test-mock-out目录(也有model.tar.gz)。

使用allennlp train命令,是否可以继续训练?文档指出应该使用Model.from_archive,但不清楚应该如何调整配置以使用它。

http://docs.allennlp.org/v1.2.0/api/commands/train/

EN

回答 1

Stack Overflow用户

发布于 2021-05-01 10:20:12

好的,要继续训练,一种解决方案是加载模型from_archive。假设您有序列化目录,为该文件夹创建一个model.tar.gz存档。然后,除了使用from_archivemodel密钥之外,您可以创建一个相同的新配置

retrain_config.json:

代码语言:javascript
复制
{
### Existing params ###
 "data_loader": {
        "batch_size": 3,
        "num_workers": 1,
    },
    "trainer": {
        "trainer_params": "various"
    },
### Existing params ###
...
"model": {
       "type": "from_archive",
       "archive_file": "path/to/my_model.tar.gz"
    }

}

然后,使用原始的train命令,指向这个新配置:

代码语言:javascript
复制
allennlp train -f --include-package custom-exp /usr/training_config/retrain_config.json -s test-mock-out

请注意,您的词汇和输出维度/标签空间应该保持一致。此外,似乎全球训练时期并未得到保留。

或者,如果您只想在完全相同的训练数据上进行训练,并且只需要序列化目录,那么您可以避免压缩目录,只需将结果添加到相同的目录中即可。

代码语言:javascript
复制
  allennlp train -f --include-package custom-exp /usr/training_config/mock_model_config.jsonnet -s test-mock-out --recover
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67306126

复制
相关文章

相似问题

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