Machine learning 如何使用“AllenNLP train”继续训练序列化的AllenNLP模型?
目前使用AllenNLP 1.2的培训模型: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 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
应该可以!非常感谢,我能够使用从模型中的类型下的参数下的获得一些有用的东西