Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

如何计算VIT模型的Flops ? #219

Open
peach-xiao opened this issue Aug 23, 2022 · 1 comment
Open

如何计算VIT模型的Flops ? #219

peach-xiao opened this issue Aug 23, 2022 · 1 comment

Comments

@peach-xiao
Copy link

peach-xiao commented Aug 23, 2022

我想计算基于Transformer的一些分割模型的FLOPs用于评估实验模型的性能, 使用的是Paddle.flops来计算,但是出现了一些无法统计的情况( Treat it as zero FLOPs),是不是这样计算出来的FLOPs的值是不准确的呢?可以如何解决?

我看到的是需要自己定义用于实现对自定义网络层的统计,也就是参数custom_ops,目前只找到了官方提供的用于计算paddle.nn.SyncBatchNorm的方法, 但是我不知道怎么设计用于计算.MaxPool2D、.LayerNorm、.GroupNorm、 .GELU、 Embedding这些函数,如果不计算的话,最后得出的FLOPs值应该有较大的差异,可以帮我解决这个问题吗?

image

image

下面是的的结果:
image

image
...
image

@JunyaoHu
Copy link

JunyaoHu commented Dec 13, 2023

我也有这样的问题,我在使用常用的计算FLOPS的库(torchprofile、ptflops、thop)时,三种方法结果均有所不同,请问如何公平比较呢?

  • torchprofile计算结果偏高,对GroupNorm、matmul等进行了FLOPS计算
  • ptflops计算结果将乘积和加法视为两个操作
  • thop对GroupNorm、matmul等没有进行计算

。。。感觉非常乱。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants