0

在尝试学习 fairseq 时,我正在关注网站上的教程并实施:

https://fairseq.readthedocs.io/en/latest/tutorial_simple_lstm.html#training-the-model

但是,在完成所有步骤之后,当我尝试使用以下方法训练模型时:

! fairseq-train data-bin/iwslt14.tokenized.de-en \ --arch tutorial_simple_lstm \ --encoder-dropout 0.2 --decoder-dropout 0.2 \ --optimizer adam --lr 0.005 --lr-shrink 0.5 \ --max-tokens 12000

我收到一个错误:

`fairseq-train: error: argument --arch/-a: invalid choice: 'tutorial_simple_lstm' (choose from 'fconv', 'fconv_iwslt_de_en', 'fconv_wmt_en_ro', 'fconv_wmt_en_de', 'fconv_wmt_en_fr', 'fconv_lm', 'fconv_lm_dauphin_wikitext103', 'fconv_lm_dauphin_gbw', 'transformer', 'transformer_iwslt_de_en', 'transformer_wmt_en_de', 'transformer_vaswani_wmt_en_de_big', 'transformer_vaswani_wmt_en_fr_big', 'transformer_wmt_en_de_big', 'transformer_wmt_en_de_big_t2t', 'bart_large', 'bart_base', 'mbart_large', 'mbart_base', 'mbart_base_wmt20', 'nonautoregressive_transformer', 'nonautoregressive_transformer_wmt_en_de', 'nacrf_transformer', 'iterative_nonautoregressive_transformer', 'iterative_nonautoregressive_transformer_wmt_en_de', 'cmlm_transformer', 'cmlm_transformer_wmt_en_de', 'levenshtein_transformer', 'levenshtein_transformer_wmt_en_de', 'levenshtein_transformer_vaswani_wmt_en_de_big',....

一些附加信息:我正在使用 google colab。我正在编写整个代码,直到 train 进入 .py 文件并根据我对说明的解释将其上传到 fairseq/models/... 路径。我正在关注链接中的确切教程。而且,在 colab 上运行它之前,我正在使用以下命令安装 fairseq:

!git clone https://github.com/pytorch/fairseq %cd fairseq !pip install --editable ./

我认为发生此错误是因为未正确设置根据教程创建的命令行参数。

任何人都可以解释一下我是否需要做其他事情。

对于您的投入,我将不胜感激,因为对于初学者来说,来自社区的帮助大有帮助。

4

1 回答 1

0

似乎您没有按如下方式注册 SimpleLSTMModel 架构。注册模型后,您可以将其与现有的命令行工具一起使用。

@register_model('simple_lstm')
class SimpleLSTMModel(FairseqEncoderDecoderModel):
...
.
.
...

请注意,复制 .py 文件并不意味着您已经注册了模型。为此,您需要执行包含上述代码行的 .py 文件。然后,您将能够使用现有的命令行工具运行训练过程。

于 2020-12-09T07:54:47.920 回答