-
Notifications
You must be signed in to change notification settings - Fork 12
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
Why use 'torch.nn.Bilinear' in 'self.channelMixMLPs01' ? #9
Comments
We empirically found that Nonetheless, in my personal opinion, this function can be seen as the 'simplest' version of a conditional MLP. ECCV22-PointMixer/sem_seg/model/network/pointmixer.py Lines 29 to 38 in bf1c3fb
As you can see the code above, the bilinear function takes the same input x (line 37). y = Bilinear(x, x) = (xT W) x = W' x = Linear(x | W') where In short, I think that not that much 'purpose' exists in this function. I hope you are satisfied with my understanding. |
Thank you for your detailed explanation. I think it is reasonable that regarding the bilinear layer as a simplest implementation of conditional MLP. |
What's the purpose of using 'torch.nn.Bilinear'?
The formulation of a bilinear transformation is y= x_1^T A x_2 + b, and the formulation of a linear transformation is y=xA^T+b .
It seems that a bilinear layer just apply a slighter sophisticated linear transformation than the linear layer?
The text was updated successfully, but these errors were encountered: