首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用allennlp建立样条模型

用allennlp建立样条模型
EN

Stack Overflow用户
提问于 2021-01-15 11:44:59
回答 1查看 231关注 0票数 0

我对allennlp非常陌生,我正在努力构建一个模型,这个模型似乎不完全适合在allennlp中构建模型的标准方式。

我想用NLP建立一个管道模型。管道主要由两个模型组成,我们称它们为A和B。首先A被训练,然后根据A,B的整个列车的预测进行训练。

我看到的是,人们定义了两个独立的模型,在一个类似的shell脚本中使用命令行接口allennlp train ...进行训练

代码语言:javascript
复制
# 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

我对此有两点担忧:

  1. 这段代码很难调试
  2. 不太灵活。当我想要做一个经过充分训练的模型,我写了另一个脚本,bash脚本,这样做。

关于如何更好地做到这一点,有什么想法吗?

我考虑使用python脚本而不是shell脚本,直接调用allennlp.commands.main(..)。这样做至少有一个联合python模块,您可以使用调试器运行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-16 02:36:19

有两种可能性。

如果您真的只是将一个模型的输出插入另一个模型的输入中,则可以将它们合并到一个模型中并以这种方式运行。如果您使用一个from_file模型用两个经过训练的模型初始化组合模型,那么您可以使用两个已经训练过的模型来完成这个任务。在训练的时候做这件事有点困难,但不是不可能的。你会像现在一样训练第一个模特。对于第二步,您直接训练组合模型,内部第一个模型的权重冻结。

您可以做的另一件事是使用AllenNLP作为库,而不使用配置文件。我们有GitHub上的模板向您展示了如何做到这一点。基本的见解是,您在一个Jsonnet配置文件中配置的所有内容都对应于可以直接从Python使用的Python类1:1。不需要使用配置文件。如果您以这种方式使用AllenNLP,则具有更大的灵活性,包括将事物链接在一起。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65735518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档