我对 allennlp 很陌生,我正在努力构建一个似乎不完全适合在 allennlp 中构建模型的标准方式的模型。
我想使用 NLP 构建管道模型。管道基本上由两个模型组成,我们称它们为 A 和 B。首先 A 被训练并基于完整训练 A 的预测,然后训练 B。
我所看到的是人们定义了两个独立的模型,使用命令行界面allennlp train ...
在一个看起来像
# set a bunch of environment variables
...
allennlp train -s $OUTPUT_BASE_PATH_A --include-package MyModel --force $CONFIG_MODEL_A
# prepare environment variables for model b
...
allennlp train -s $OUTPUT_BASE_PATH_B --include-package MyModel --force $CONFIG_MODEL_B
我对此有两个担忧:
- 这段代码很难调试
- 它不是很灵活。当我想对完全训练的模型进行前向传递时,我编写了另一个脚本来执行该操作的 bash 脚本。
关于如何以更好的方式做到这一点的任何想法?
我考虑过使用 python 脚本而不是 shell 脚本并allennlp.commands.main(..)
直接调用。这样做至少你有一个可以使用调试器运行的联合 python 模块。