A Pytorch Implementation for Compact Bilinear Pooling. Adapted from tensorflow_compact_bilinear_pooling
Install pytorch_fft by
pip install pytorch_fft
from torch import nn
from torch.autograd import Variable
from CompactBilinearPooling import CompactBilinearPooling
bottom1 = Variable(torch.randn(128, 512, 14, 14)).cuda()
bottom2 = Variable(torch.randn(128, 512, 14, 14)).cuda()
layer = CompactBilinearPooling(512, 512, 8000)
layer.cuda()
layer.train()
out = layer(bottom1, bottom2)
Yang Gao, et al. "Compact Bilinear Pooling." in Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (2016).
Akira Fukui, et al. "Multimodal Compact Bilinear Pooling for Visual Question Answering and Visual Grounding." arXiv preprint arXiv:1606.01847 (2016).