Since last yearโs first batch of pills practice, there hasnโt been much progress. Recently, I started systematic learning through classes and completed my first model: mobilealexnet (source code: ai_notes/MobileAlexNet.py at master ยท whitewatercn/ai_notes ยท GitHub).
I rewrote the classic alexnet using depthwise separable convolutions, making the model train faster and perform better.
However, these results donโt specify random seeds nor have large sample validation, so they are not rigorous.
origin_alex
(torch) (base) whitewatercn@MadBookAir image_classification_models % python train.py --data_path /Users/whitewatercn/FennecNas/coding/diantou/1-้่ฏ/1.5-ๆทฑๅบฆๅญฆไน /1.5.02-ๅบไบCNN่ฑๆต่ฏๅซ/image_classification_models/Datasets/flower --model alexnet --device mps
Namespace(batch_size=64, data_path='/Users/whitewatercn/FennecNas/coding/diantou/1-้่ฏ/1.5-ๆทฑๅบฆๅญฆไน /1.5.02-ๅบไบCNN่ฑๆต่ฏๅซ/image_classification_models/Datasets/flower', device='mps', epochs=50, lr=0.0002, lrf=0.0001, model='alexnet', num_classes=5, seed=False, use_amp=False)
3310 images were found in the dataset.
364 images were found in the dataset.
Using 8 dataloader workers every process
[epoch1]: learning_rate:0.00020: 100%|โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ| 52/52 [01:14<00:00, 1.44s/it]
[epoch 1] train_loss: 1.517 train_acc: 0.306 val_accuracy: 0.349
[epoch2]: learning_rate:0.00020: 100%|โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ| 52/52 [01:14<00:00, 1.42s/it]
[epoch 2] train_loss: 1.258 train_acc: 0.428 val_accuracy: 0.549
[epoch3]: learning_rate:0.00020: 100%|โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ| 52/52 [01:13<00:00, 1.41s/it]
[epoch 3] train_loss: 1.150 train_acc: 0.507 val_accuracy: 0.582
[epoch4]: learning_rate:0.00020: 100%|โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ| 52/52 [01:14<00:00, 1.43s/it]
[epoch 4] train_loss: 1.039 train_acc: 0.573 val_accuracy: 0.593
[epoch5]: learning_rate:0.00020: 100%|โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ| 52/52 [01:14<00:00, 1.44s/it]
[epoch 5] train_loss: 0.990 train_acc: 0.608 val_accuracy: 0.516
mobile_alex
(torch) (base) whitewatercn@MadBookAir image_classification_models % python train.py --data_path /Users/whitewatercn/FennecNas/coding/diantou/1-้่ฏ/1.5-ๆทฑๅบฆๅญฆไน /1.5.02-ๅบไบCNN่ฑๆต่ฏๅซ/image_classification_models/Datasets/flower --model mobilealexnet --device mps
Namespace(batch_size=64, data_path='/Users/whitewatercn/FennecNas/coding/diantou/1-้่ฏ/1.5-ๆทฑๅบฆๅญฆไน /1.5.02-ๅบไบCNN่ฑๆต่ฏๅซ/image_classification_models/Datasets/flower', device='mps', epochs=50, lr=0.0002, lrf=0.0001, model='mobilealexnet', num_classes=5, seed=False, use_amp=False)
3310 images were found in the dataset.
364 images were found in the dataset.
Using 8 dataloader workers every process
[epoch1]: learning_rate:0.00020: 100%|โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ| 52/52 [01:00<00:00, 1.16s/it]
[epoch 1] train_loss: 1.398 train_acc: 0.400 val_accuracy: 0.464
[epoch2]: learning_rate:0.00020: 100%|โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ| 52/52 [00:59<00:00, 1.14s/it]
[epoch 2] train_loss: 1.111 train_acc: 0.550 val_accuracy: 0.613
[epoch3]: learning_rate:0.00020: 100%|โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ| 52/52 [00:58<00:00, 1.13s/it]
[epoch 3] train_loss: 1.002 train_acc: 0.605 val_accuracy: 0.640
[epoch4]: learning_rate:0.00020: 100%|โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ| 52/52 [01:02<00:00, 1.20s/it]
[epoch 4] train_loss: 0.917 train_acc: 0.642 val_accuracy: 0.673
[epoch5]: learning_rate:0.00020: 100%|โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ| 52/52 [00:58<00:00, 1.13s/it]
[epoch 5] train_loss: 0.881 train_acc: 0.671 val_accuracy: 0.712
Conclusion
Although I
- canโt figure out each layerโs input and output
- donโt fully understand many terms and the meaning behind the code
Iโm very happy to have independently improved the efficiency of existing algorithms through reference materials!