Skip to content

Instantly share code, notes, and snippets.

@vadimkantorov
Last active September 22, 2021 07:51
Show Gist options
  • Select an option

  • Save vadimkantorov/d9b56f9b85f1f4ce59ffecf893a1581a to your computer and use it in GitHub Desktop.

Select an option

Save vadimkantorov/d9b56f9b85f1f4ce59ffecf893a1581a to your computer and use it in GitHub Desktop.
Compact Bilinear Pooling in PyTorch using the new FFT support
import torch
import torch.nn as nn
class CompactBilinearPooling(nn.Module):
pass
@pangjh3
Copy link

pangjh3 commented Apr 20, 2018

Thanks for your code, how to install the new fft support?

@vadimkantorov
Copy link
Author

Just install PyTorch from master branch or even 0.4 version probably has FFT

@ayumiymk
Copy link

Thanks for your code first. I have a question that in the other implements, like Torch version and Tensorflow version, there is a zero_padding before feeding the tensor into the fft. But in this code, I don't see the zero_padding.

Thanks very much!

@hj0921
Copy link

hj0921 commented Mar 19, 2021

hello,

torch.stack([torch.arange(in_features), rand_h]) where in_features is not defined. How to fix it?

thanks!

@vadimkantorov
Copy link
Author

Thanks for noting this. Fixed! It should have been in_channels

@vadimkantorov
Copy link
Author

Some ways to improve the code: make use of the new PyTorch fft module, complex support. Figure out dense x sparse matmul (currently I'm materializing the sparse sketch)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment