Pytext:Facebook基于PyTorch的自然语言处理(NLP)开源框架 (2)

然后,我们就可以使用一个任务配置来训练NLP模型了:

(pytext) $ cat demo/configs/docnn.json { "task": { "DocClassificationTask": { "data_handler": { "train_path": "tests/data/train_data_tiny.tsv", "eval_path": "tests/data/test_data_tiny.tsv", "test_path": "tests/data/test_data_tiny.tsv" } } } } $ pytext train < demo/configs/docnn.json

Task是PyText应用中的用来定义模型的核心部件。每一个任务都有一个嵌入的配置,它定义了不同组件之间的关系,如下面代码所示:

from word_tagging import ModelInputConfig, TargetConfig class WordTaggingTask(Task): class Config(Task.Config): features: ModelInputConfig = ModelInputConfig() targets: TargetConfig = TargetConfig() data_handler: WordTaggingDataHandler.Config = WordTaggingDataHandler.Config() model: WordTaggingModel.Config = WordTaggingModel.Config() trainer: Trainer.Config = Trainer.Config() optimizer: OptimizerParams = OptimizerParams() scheduler: Optional[SchedulerParams] = SchedulerParams() metric_reporter: WordTaggingMetricReporter.Config = WordTaggingMetricReporter.Config() exporter: Optional[TextModelExporter.Config] = TextModelExporter.Config()

一旦模型训练完毕,我们就可以对模型进行评估,也可以导出为Caffe2格式:

(pytext) $ pytext test < "$CONFIG" (pytext) $ pytext export --output-path exported_model.c2 < "$CONFIG"

需要指出的是,PyText提供了可扩展的架构,可以定制、扩展其中任何一个构建模块。

PyText代表了NLP开发的一个重要里程碑,它是最早解决实验与生产匹配问题的框架之一。基于Facebook和PyTorch社区的支持,PyText可能有机会称为深度学习生态中最重要的NLP技术栈之一。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzdzgx.html