Machine learning 如何使用“AllenNLP train”继续训练序列化的AllenNLP模型?

Machine learning 如何使用“AllenNLP train”继续训练序列化的AllenNLP模型?,machine-learning,pytorch,transfer-learning,allennlp,Machine Learning,Pytorch,Transfer Learning,Allennlp,目前使用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_loade

目前使用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": ...
    }
并将它们序列化到
测试模拟
目录(还有
model.tar.gz

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


好的,要继续培训,一个解决方案是从_archive加载模型
。假设您有序列化目录,对该文件夹进行
model.tar.gz
存档。然后,您可以创建一个相同的新配置,但
model
键除外,该键使用了\u archive
中的

retain\u 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
请注意,vocab和输出维度/标签空间应保持一致。此外,似乎全球培训时代并未得到保留

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

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


你能详细解释一下你所说的“继续训练”是什么意思吗?嗨,阿琼,是的,很抱歉这么含糊。我的意思是在相同或相似的数据(相同的语音等)上训练。
--recover
参数是否适用于此用例?是的,使用相同的序列化目录使用
-r
--recover
应该可以!非常感谢,我能够使用
模型中
类型下的
参数下的
获得一些有用的东西