Closed libertatis closed 2 years ago
Hello, 感谢留Issue,这一部分其实在大部分的模型中没有返回这个attn(其实是attn_weights), 这部分在ViT中保留的原因是给用户展示一下如果需要可视化或者别的用途的时候可以用该方式返回attn weights,但是模型本身的训练和测试不需要这个参数。 目前PaddleViT还没有任何可视化的工具和功能提供,后期可以列入计划。
综上,在ViT模型中完全可以返回attn,目前为了保证主程序和其他模型统一,我建议暂时保留目前的接口,后期再做统一调整。
This issue has been explained above, so I close this issue.
PaddleViT/image_classification/ViT/transformer.py
VisualTransformer
模型的输出是不是少了一个attn
:我个人认为,模型的输出应该同时返回
attn
的:理由如下:
attn
,在Attention
,EncoderLayer
和Encoder
中一直都是由返回的,如果模型输出不返回attn
,那么前面几个类的返回将会是多余的,可能毫无意义。attn
,在后期的可视化中可能回用到。我猜前面几个类返回每层注意力权重,这样的设计可能也是基于可视化的考量的。综上,建议模型输出同时返回每层的注意力权重
attn
~