tscohen / GrouPy

Group Equivariant Convolutional Neural Networks
http://ta.co.nl
Other
349 stars 85 forks source link

Pooling #9

Closed dqii closed 6 years ago

dqii commented 6 years ago

Is G-Pooling included in this implementation?

tscohen commented 6 years ago

Not explicitly, but it is very easy to do. Let's say you have a stack of feature maps X of shape Nx4CxHxW, where C is the number G-channels, and each G-channel has 4 planar orientation channels (change 4 to 8 if you include reflections). You can reshape X to NxCx4xHxW, and then sum (or max) over the length-4 axis. This corresponds to pooling over the cosets of the subgroup of rotations around the origin. You can also sum over the H and W axes, to additionally get translation invariance.

Note that in our experiments we found that pooling over rotations inside the network in each layer is less effective than only pooling at the end or not doing any pooling.

Hope this helps. Let me know if something is not clear.

dqii commented 6 years ago

Yes that makes sense. Thanks so much! :)