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

What is the difference between stype='normal' and stype='stage' #11

Closed
ShoupingShan opened this issue Nov 13, 2019 · 4 comments
Closed

Comments

@ShoupingShan
Copy link

What is the difference between stype='normal' and stype='stage' in the Bottleneck

@gasvn
Copy link
Member

gasvn commented Nov 13, 2019

Block with stage means that the block is a down-sample block, where hierarchical connections are removed. There are only 4 blocks in a net that is stage block.

@ShoupingShan
Copy link
Author

Thanks, I got it.

@cgebbe
Copy link

cgebbe commented Feb 12, 2021

@gasvn : You say

There are only 3 blocks in a net that is stage block

However, according to

layers.append(block(self.inplanes, planes, stride, downsample=downsample,
, the first block in every stage has stype='stage', so there are 4 blocks in total, or?

@gasvn
Copy link
Member

gasvn commented Feb 12, 2021

@gasvn : You say

There are only 3 blocks in a net that is stage block

However, according to

layers.append(block(self.inplanes, planes, stride, downsample=downsample,

, the first block in every stage has stype='stage', so there are 4 blocks in total, or?

This is a common design in resnet series. Resnet50 has [3, 4, 6, 3] blocks in stages. The overall network structure (channel number, stage number, block number in each stage) is mostly based on the resnet structure. The hierarchical residual-like connections in Res2Net require the input and output features to have the same resolution. So when facing the downsampling, we remove the hierarchical connections in Res2Net block. For res2net, strictly, [2,3,5,2] res2net blocks are used in stages. Thanks for your reminder, I have corrected my response. Acctually the first stage block can be a res2net block, but in our implementation, we just do so. The performance difference is limited when there is one more or less res2net block.

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

3 participants