Add pooling as a separate layer

Right now, convolution and pooling show up as one block, and I don’t have the option to remove pooling altogether. I think this would be incredibly useful to give users control over how to create their model architecture. Additionally, let users choose between max pooling and average pooling.

Pete Warden has an excellent article on why you might want to remove a pooling layer: https://petewarden.com/2021/08/05/one-weird-trick-to-shrink-convolutional-networks-for-tinyml/

I ran a test on an augmented image dataset, and it does seem to be the case that removing the pooling layer can save on inference time and RAM (at the cost of accuracy). This might free up space to allow for more convolution layers. I posted my quick test results here: https://twitter.com/ShawnHymel/status/1425847567494045697

Hi @ShawnHymel I assume you’re well aware but switching to expert mode lets you remove / change all of this. We’ve gone the route of setting default layers that will work for most users and usecases rather than full freedom here (and thus choice overload).

cc @dansitu

And this actually used to be the case, separate conv / pooling layers in the UI :slight_smile:

1 Like

We can definitely add this as an option for EON Tuner, too!

Warmly,
Dan

1 Like