目前使用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/
发布于 2021-05-01 10:20:12
好的,要继续训练,一种解决方案是加载模型from_archive。假设您有序列化目录,为该文件夹创建一个model.tar.gz存档。然后,除了使用from_archive的model密钥之外,您可以创建一个相同的新配置
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 --recoverhttps://stackoverflow.com/questions/67306126
复制相似问题