https://github.com/Roll920/fine-tune-avg-vgg16
Tip revision: cd21ed9de8954087eb39a7d7867ea31c571e6223 authored by Roll920 on 11 February 2017, 06:07:43 UTC
fix caffe log output
fix caffe log output
Tip revision: cd21ed9
README.md
# Fine tune avg-vgg16 on CUB200 dataset
Remove fc layers, replace pool5 with 14x14 average pooling and softmax layer, then fine tune on CUB200.
## How to use
* modify generate_prototxt.py to specify the path of caffe, lmdb
* ./fine_tune.sh
## Implementation details
* lmdb: 256*256 cub200 dataset(#train: 5994, #val:5794).
* adopt random cropping to generate 224*224 images when training and use center cropping when test.
* training issues:
* learning rate of softmax is 10x larger;
* batch size:32, 188 iters/epoch, train 21 epoch;
* use 2 gpu cards;
* learning rate change 10^-3~10^-5 (decay 10x every 7 epoch);
## Results
| epoch | val acc | epoch | val acc | epoch | val acc |
| ----- | --------| ----- | --------| ----- | --------|
| 1 | 0.4294 | 2 | 0.5299 | 3 | 0.5614 |
| 4 | 0.5740 | 5 | 0.6051 | 6 | 0.5564 |
| 7 | 0.5732 | 8 | 0.7083 | 9 | 0.7130 |
| 10 | 0.7154 | 11 | 0.7106 | 12 | 0.7125 |
| 13 | 0.7126 | 14 | 0.7140 | 15 | 0.7145 |
| 16 | 0.7149 | 17 | 0.7147 | 18 | 0.7145 |
| 19 | 0.7132 | 20 | 0.7119 | 21 | 0.7118 |
## Others
This strategy is much better than train softmax first follwed with fine tuning, which only achieving 0.70176 accuracy!