纪念一下第一个独立完成的炼丹配方

自从去年练出来第一炉丹以后就没什么进展了,最近开始报班系统学习相关知识,完成了自己的第一个模型:mobilealexnet(源码:ai_notes/MobileAlexNet.py at master · whitewatercn/ai_notes · GitHub

采用了深度可分离卷积改写了经典的alexnet,模型训练更快,效果更好

不过这些数据没有指定随机种子,也没有大样本验证,很不严谨

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

结尾

虽然我

  • 算不明白每层的输入输出
  • 搞不明白很多术语和代码背后的意义

但是参考资料,独立提升了现有算法的效率,我已经很开心了!