【问题标题】:How to continue training serialized AllenNLP model using `allennlp train`?如何使用`allennlp train`继续训练序列化的AllenNLP模型?
【发布时间】:2021-05-01 10:26:39
【问题描述】:

目前使用 AllenNLP 1.2 训练模型:

allennlp train -f --include-package custom-exp /usr/training_config/mock_model_config.jsonnet -s test-mock-out

配置很标准:

"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/

【问题讨论】:

  • 您能否详细说明“继续培训”的含义?
  • 嘿,Arjun,是的,很抱歉含糊不清。我的意思是训练相同或相似的数据(相同的词汇等)。对于这个用例,--recover 参数是否可以开箱即用?
  • 是的,使用-r--recover 与相同的序列化目录应该可以工作!
  • 非常感谢,我能够使用typemodel 中的from_archive 参数得到一些工作
  • 您好,我意识到这是旧的,但我发现我的服务器在尝试将 my_model.tar.gz 提取到的 /var/tmp 文件夹中没有足够的空间。有什么方法可以告诉它将存档模型提取到自定义位置?

标签: machine-learning pytorch transfer-learning allennlp


【解决方案1】:

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

retrain_config.json:

{
### 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 命令,指向这个新配置:

allennlp train -f --include-package custom-exp /usr/training_config/retrain_config.json -s test-mock-out

请注意,您的词汇和输出尺寸/标签空间应保持一致。此外,似乎没有保留全局训练时期。

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

  allennlp train -f --include-package custom-exp /usr/training_config/mock_model_config.jsonnet -s test-mock-out --recover

【讨论】:

    猜你喜欢
    • 2022-06-11
    • 1970-01-01
    • 2019-08-10
    • 2021-04-05
    • 2021-01-26
    • 2019-12-08
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    相关资源
    最近更新 更多