BR-IDL / PaddleViT

:robot: PaddleViT: State-of-the-art Visual Transformer and MLP Models for PaddlePaddle 2.0+
https://github.com/BR-IDL/PaddleViT
Apache License 2.0
1.22k stars 318 forks source link

加载预训练模型相关问题 #177

Closed peach-xiao closed 2 years ago

peach-xiao commented 2 years ago

1.代码中的预训练模型vit_large_patch16_224.pdparams是在ImagenNet1K还是ImagenNet22K上训练的吗?这个模型文件是由原论文SwinTransformer或ViT提供的预训练模型.pth转换.pdparams,还是开发者团队你们在ImageNet上训练训练后提供的?为什么将该模型应用于512x512大小的图片不会报错,而我尝试着将swinTransformer的原作者提供的预训练pth模型swin_tiny_patch4_windown7_224.pth(因为paddleViT没有提供upernet_swin系列的模型)转换为.pdparams却只能应用于224的大小。我没能明白开发团队提供的vit_large_patch16_224.pdparams却可以用于512x512,768x768等大小, 能否简单介绍一下该预训练模型

image

  1. 上图中Upernet_swin在配置文件里PRETRAINED:'./pretrain_models/backbones/vit_large_patch16_224.pdparams',这个默认的配置文件应该是错的吧。github主页只提供了Upernet_cswin的backbone的预训练模型,您这里有Upernet_swin的预训练模型吗?另外Segformer的backbone预训练模型可以的话期待能够尽快提供。因为segformer不加载预训练模型在自己的数据集上的效果通常是很差的,为了更公平比较,希望能有ImageNet的预训练模型

image

非常感谢!

xperzy commented 2 years ago

@xiaoguoguo2018 感谢提供反馈!

  1. 该模型是我们从官方模型转换到paddle并对齐精度的版本,我理解是22k->1k的模型权重,@wutianyiRosun确认一下?
  2. @wutianyiRosun 帮忙看一下具体的模型和配置
wutianyiRosun commented 2 years ago

@xiaoguoguo2018 模型文件是由原论文SwinTransformer或ViT提供的预训练模型.pth转换.pdparams的 关于”尝试着将swinTransformer的原作者提供的预训练pth模型swin_tiny_patch4_windown7_224.pth(因为paddleViT没有提供upernet_swin系列的模型)转换为.pdparams却只能应用于224的大小“ 问题,我想可能原因是你设置您的输入分辨率不是window_size的整数倍时,需要进行padding处理。