【Mindspore】【Transformer】必须设置seq_length导致无法实现模型

问题描述:

【功能模块】

mindspore.nn.transformer.TransformerEncoder

【操作步骤&问题现象】

1、参数中必须设置seq_length,而实际上只有在参数use_past=True时需要seq_length

2、希望能够调整seq_length为use_past=True时必填,在文本Transformer使用时,seq_length在不同batch会变动,导致无法使用该API

【截图信息】

Encoder中只有EncoderLayer需要seq_length,而EncoderLayer中只有MultiHeadAttention以及use_past=True分支下需要使用,MultiHeadAttention中只有use_past=True分支下需要使用,如果可以设置seq_length在use_past=True时必填会便于使用

【Mindspore】【Transformer】必须设置seq_length导致无法实现模型_第1张图片

 【Mindspore】【Transformer】必须设置seq_length导致无法实现模型_第2张图片

 【Mindspore】【Transformer】必须设置seq_length导致无法实现模型_第3张图片

 【Mindspore】【Transformer】必须设置seq_length导致无法实现模型_第4张图片

解答:

当前MindSpore对输入shape可变的场景支持有限,正在逐步补齐; 建议先将输入数据padding到定长。

你可能感兴趣的:(transformer,深度学习,人工智能)