Home

Awesome

Pooling

This is a collection of different pooling methods used in image classification segmentation detection

Features

Requirements

Installation

Usage

1. enter directory

$ cd pytorch-pooling

2. dataset

3. run tensorboard

Install tensorboard

$ pip install tensorboard
Run tensorboard
$ tensorboard --logdir runs --port 6006 --host localhost

4. training

Our base backbone is vgg16 with batch_normalization

$ python3 train.py --run train --name test --pooling max

The supported pooling args are

max pooling
average pooling
mixed pooling
Lp pooling
lip pooling
soft pooling

5. Add a new pooling method

You should add a new pooling method pool.py in "/Pooling/pooling_method" and update the __init__.py file

6. Addition

Results

The result I can get from this repo, I train every model with the same hyperparam and I don't use any tricks in this repo.

datasetbackbonepoolingaccepoch(lr = 0.1)epoch(lr = 0.02)epoch(lr = 0.004)epoch(lr = 0.0008)total epoch
cifar100vgg16_bnmax70.89%60604040200
cifar100vgg16_bnavg70.56%60604040200
cifar100vgg16_bnmixed71.19%60604040200
cifar100vgg16_bnLp(p=2)70.65%60604040200
cifar100vgg16_bnLp(p=3)70.67%60604040200
cifar100vgg16_bnlip71.23%60604040200
cifar100vgg16_bnsoftpool71.39%60604040200

Implementated Pooling