Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 3 months ago
JSON representation
Almost any Image classification problem using pytorch
- Host: GitHub
- URL: https://github.com/prakashjayy/pytorch_classifiers
- Owner: prakashjayy
- License: gpl-3.0
- Created: 2017-11-30T16:15:17.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2020-10-01T23:53:20.000Z (about 4 years ago)
- Last Synced: 2024-07-22T14:38:38.762Z (4 months ago)
- Topics: deep-learning, image-classification, machine-learning, python, pytorch, transfer-learning
- Language: Python
- Homepage: https://medium.com/@14prakash/almost-any-image-classification-problem-using-pytorch-i-am-in-love-with-pytorch-26c7aa979ec4
- Size: 57.6 KB
- Stars: 131
- Watchers: 10
- Forks: 41
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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