Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/prakashjayy/pytorch_classifiers

Almost any Image classification problem using pytorch
https://github.com/prakashjayy/pytorch_classifiers

deep-learning image-classification machine-learning python pytorch transfer-learning

Last synced: about 2 months ago
JSON representation

Almost any Image classification problem using pytorch

Awesome Lists containing this project

README

        

## This is an experimental setup to build code base for pytorch. Its main is to experiment faster using transfer learning on all available pre-trained models.

### Dataset: Plant Seedlings classification

Classes present:
-----------------
- Black-grass
- Charlock
- Cleavers
- Common Chickweed
- Common wheat
- Fat Hen
- Loose Silky-bent
- Maize
- Scentless Mayweed
- Shepherds Purse
- Small-flowered Cranesbill
- Sugar beet

#### Run the following commands
To train the models:
```
make -f Makefile.train
```

To test the models:
```
make -f Makefile.predict
```

## Results
total number of train images: 4268
total number of val images: 482
total number of test images: 794

# Results with Full-Agumentation strategy:

## Trained the networks in three methods:
- Full Finetuning
- Freeze first few layers

## Case-1 - Finetuning entire network
Models | Train Accuracy_score | Val Accuracy_score |
------------- | :------------------: | --------------------: |
resnet18 | 0.92783 | 0.93153 |
resnet34 | 0.9522 | 0.94190 |
resnet50 | 0.95665 | 0.94398 |
resnet101 | 0.96696 | 0.96265 |
resnet152 | 0.96555 | 0.95643 |
squeezenet1_0 | 0.94329 | 0.92738 |
squeezenet1_1 | 0.93955 | 0.93153 |
densenet121 | 0.95243 | 0.9336 |
densenet169 | 0.96626 | 0.93983 |
densenet201 | 0.96063 | 0.95020 |
inception_v3 | 0.94212 | 0.93568 |
vgg11 | 0.93814 | 0.93153 |
vgg13 | 0.94493 | 0.94190 |
vgg16 | 0.95665 | 0.93568 |
vgg19 | 0.95009 | 0.93775 |
vgg11_bn | 0.94142 | 0.93775 |
vgg13_bn | 0.94423 | 0.92738 |
vgg16_bn | 0.94634 | 0.94190 |
vgg19_bn | 0.94915 | 0.93360 |
alexnet | 0.91260 | 0.90456 |
resnext101_64x4d | 0.98055 | 0.96887 |
resnext101_32x4d | 0.98172 | 0.96887 |
nasnetalarge | 0.96907 | 0.96265 |
inceptionresnetv2| 0.96134 | 0.95435 |
inceptionv4 | 0.96930 | 0.96473 |

## Case-2 - Freezed first few layers(look at code)
Models | Train Accuracy_score | Val Accuracy_score |
------------- | :------------------: | ----------------------:
resnet18 | 0.9196 | 0.91493 |
resnet34 | 0.94845 | 0.93983 |
resnet50 | 0.9564 | 0.93983 |
resnet101 | 0.96790 | 0.96265 |
resnet152 | 0.96508 | 0.95643 |
squeezenet1_0 | 0.94048 | 0.92738 |
squeezenet1_1 | 0.93088 | 0.92116 |
densenet121 | 0.95173 | 0.95228 |
densenet169 | 0.96087 | 0.94813 |
densenet201 | 0.95384 | 0.95020 |
inception_v3 | 0.94025 | 0.93775 |
vgg11 | 0.93697 | 0.92946 |
vgg13 | 0.93533 | 0.92323 |
vgg16 | 0.94821 | 0.93983 |
vgg19 | 0.95243 | 0.94190 |
vgg11_bn | 0.93416 | 0.92738 |
vgg13_bn | 0.93322 | 0.92323 |
vgg16_bn | 0.94728 | 0.93775 |
vgg19_bn | 0.94798 | 0.94190 |
alexnet | 0.89784 | 0.88589 |
resnext101_64x4d | 0.98617 | 0.96887 |
resnext101_32x4d | 0.98195 | 0.96473 |
nasnetalarge | 0.95970 | 0.96265 |
inceptionresnetv2| 0.95103 | 0.94813 |
inceptionv4 | 0.96251 | 0.93775 |

# Results with Basic Agumentation

## Case-1 (Freezed all layers except last one)
Models | Train Accuracy_score | Val Accuracy_score |
------------- | :------------------: | --------------------: |
resnet18 | 0.77553 | 0.75518 |
resnet152 | 0.82778 | 0.81535 |
resnet101 | 0.82333 | 0.80290 |
resnet50 | 0.79943 | 0.78630 |
resnet34 | 0.78655 | 0.74688 |
squeezenet1_0 | 0.91447 | 0.87966 |
squeezenet1_1 | 0.90089 | 0.87344 |
densenet121 | 0.80880 | 0.81120 |
densenet169 | 0.84746 | 0.82987 |
densenet201 | 0.86621 | 0.86514 |
inception_v3 | 0.76101 | 0.74688 |
vgg11 | 0.78209 | 0.78008 |
vgg13 | 0.75960 | 0.72821 |
vgg16 | 0.77038 | 0.71576 |
vgg19 | 0.71204 | 0.64522 |
vgg11_bn | 0.76522 | 0.74481 |
vgg13_bn | 0.76241 | 0.76348 |
vgg16_bn | 0.76265 | 0.75726 |
vgg19_bn | 0.75773 | 0.73858 |
alexnet | 0.83153 | 0.76348 |

## Case-2 Finetuning the entire network
Models | Train Accuracy_score | Val Accuracy_score |
------------- | :------------------: | ----------------------:
resnet18 | 0.98477 | 0.96058 |
resnet152 | 0.99273 | 0.97717 |
resnet101 | 0.99367 | 0.97717 |
resnet50 | 0.99133 | 0.97510 |
resnet34 | 0.98969 | 0.97095 |
squeezenet1_0 | 0.96274 | 0.94190 |
squeezenet1_1 | 0.96485 | 0.92738 |
densenet121 | 0.99086 | 0.96887 |
densenet169 | 0.99507 | 0.97510 |
densenet201 | 0.99390 | 0.97717 |
inception_v3 | 0.98898 | 0.97302 |
vgg11 | 0.98031 | 0.95020 |
vgg13 | 0.98078 | 0.95643 |
vgg16 | 0.98266 | 0.95435 |
vgg19 | 0.98430 | 0.95643 |
vgg11_bn | 0.98570 | 0.96265 |
vgg13_bn | 0.98687 | 0.97095 |
vgg16_bn | 0.99179 | 0.96680 |
vgg19_bn | 0.99297 | 0.96680 |
alexnet | 0.95970 | 0.92946 |

## Submissions:
- densenet201 LB - to 97.22
- ensemble1 - mode of all best performing models LB - 97.32

## TO_DO
1) Adding mixup strategy to all the networks
2) Ensembling model outputs
3) Model stacking
4) Extracting bottleneck features and using
- ML to train the model
- Visualization using T-sne
5) Solve issue with bninception(Model is not training)
6) Train Vggm network