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

With the modified DLA-34 backbone, why only IDAUP the first three layers and not all four #903

Open
liu-mengyang opened this issue Apr 12, 2021 · 3 comments

Comments

@liu-mengyang
Copy link

In the default configuration, 'first_level' is 2 and 'last_level' is 5.
In line 443 of pose_dla_dcn.py,👇

self.ida_up = IDAUp(out_channel, channels[self.first_level:self.last_level],
             [2 ** i for i in range(self.last_level - self.first_level)])

This caused 'dla_up' to generate only three up_f and coderange(self.last_level - self.first_level) also appear in IDAUP operation.

I think this conflicts with the description in the paper, as shown below:
image

Can someone tell me if this is my fault or just a special design?🥺

@hhaAndroid
Copy link

I have the same question

@janosfoeth
Copy link

I have the same issue and I'd say this is an implementational flaw.
@liu-mengyang Did you fix the implementation so that the code is coherent with the description in the paper?

Do I just need to add one to the range of IDA_Up layers?

So in detail - change this:

self.ida_up = IDAUp(out_channel, channels[self.first_level:self.last_level],
[2 ** i for i in range(self.last_level - self.first_level)])

to this:

self.ida_up = IDAUp(out_channel, channels[self.first_level:self.last_level + 1], 
		[2 ** i for i in range(self.last_level - self.first_level + 1)])

and this:

for i in range(self.last_level - self.first_level):

to this:
for i in range(self.last_level - self.first_level + 1):

@NosremeC
Copy link

I realized this problem long time ago. I think the reason behind is simply that the 4th layer does not perform well.

I have tested this model on waymo dataset. For waymo adding the 4th layer resulted in slower converging and worse performamce. I think it is possibly due to the small number of downsample operations in this network. If you compare resnet with dla, you'll find resnet is deeper and thus its deeper layers actually contain useful information. For dla the network is still realatively shallow even at the 4th layer. I guss adding the 4th layers will possibly introuce more noise than information.

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

4 participants