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

Is ordinary convolution(with bias=0 and no use BN) and partial convolution the same? #13

Open
luowy1001 opened this issue Apr 10, 2019 · 2 comments

Comments

@luowy1001
Copy link

luowy1001 commented Apr 10, 2019

Thank you for your genius work. However, there's a little problem that puzzles me.
For image inpainting task, when the pixel values the missing area of the input image are set to 0,
I think that ordinary convolution(bias=False and no use BN) and partial convolution are the same? Under this circumstance, the result of the ordinary convolution(bias=False and no use BN) is 0 naturally, at the missing area (if all piexls in this slide windows are 0) . And the gradients at these missing areas is 0, it is the same as parital convolution. I'm confused about this small question. Can you tell me the essential difference between them? Thanks!
@liuguilin1225

@luowy1001 luowy1001 changed the title Is ordinary convolution(with bias=0) and partial convolution the same? Is ordinary convolution(with bias=0 and no use BN) and partial convolution the same? Apr 10, 2019
@liuguilin1225
Copy link
Contributor

In that case, the mask updating will matter. Partial conv will track how the mask evolves when you apply a sequence of partial conv layers.
Usually if you apply an ordinary conv layer without bias, you will follow a BN layer; such BN layer will add transformation onto your whole feature map (including non-holes, filled holes and un-filled holes). A corresponding mask will help you identify which regions are still holes and set them to be 0 again before feeding into next layer. But if you don't track the mask, the un-filled holes are now filled with the transformation from BN, which might confuse the network.

@liuguilin1225
Copy link
Contributor

BTW, for the question regarding to no BN, if one only uses conv layers without bias and no BN etc, the network can't learn anything beyond multiplication.

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