【李宏毅2021机器学习深度学习——作业3 CNN】Food Image Classfication 记录(双过 strong baseline)

写在前面

新手入门,相互学习,期待大佬有更好的想法。

作业3链接

做完这个实验应该有的收获:

在这里插入图片描述

  1. 使用CNN进行图片分类
  2. 学习到 data augmentations(有22种之多,但并不是每种都有用,看情况)
  3. 使用半监督学习(主要)(用上大量 unlabeled data辅助训练)
  4. 训练经验:
    • 本地训练,从kaggle下载数据会快kaggle competitions download -c ml2021spring-hw3 (需要配置kaggle.json文件到.kaggle文件夹下)

    • 加了num_workers=8, pin_memory=True会快得飞起,用多线程去加载数据会快,num_workers默认是0, pin_memory默认是false,很慢… 在DataLoader中 test_loader = DataLoader(test_set, batch_size=batch_size, shuffle=False, num_workers=8, pin_memory=True)

    • 自定义Datasetconcat_dataset = ConcatDataset([train_set, pseudo_set]),ConcatDataset将多个Dataset拼接起来
      在这里插入图片描述

    • 可视化训练结果,将每一个epoch的数据存储在列表中,列表不要重复覆盖不然就没之前的数据了。(至少200个epoch起,刚开始调了20 什么也看不出来,总共训练了有600个epoch了)

    • data_loader = DataLoader(dataset, batch_size=256, shuffle=False, num_workers=8, pin_memory=True) #num_workers=8, pin_memory=True , batch_size=256 设置为256,只推断可以设置大一点

    • 对半监督 取数据代码的理解:对于indices只有masks[i]=true的才会被选取
      在这里插入图片描述
      在这里插入图片描述

    • 可视化 代码
      在这里插入图片描述在这里插入图片描述
      在这里插入图片描述

先上实验结果(直接使用pytorch内置的模型resnet18(pretrain=False),双过 strong baseline,过线一点点,学习用就行了)

在这里插入图片描述
可视化 训练过程,中间有抖动是因为手动停了训练调了一下参数,比如在训练后期:可以把学习率调小,半监督的阈值放宽。
后面学习到schedulertensorboard可以自动调整学习率吧,等待学习中…
在这里插入图片描述

在这里插入图片描述
阈值调到0.65 使用到的数据
在这里插入图片描述
使用resnet18_pretrain的结果,只训练10个epoch看看效果(当然这是禁止的!)
在这里插入图片描述

一些改进想法:

  1. 集成学习ensemble?

各种集成,集成方式?
第1个ensemble 集成了前3个模型(majority vote方式?),第2个ensemble 集成了后3个模型(average方式),第3个ensemble 集成了后3个模型(majority vote方式),第4个ensemble 集成了前3个ensemble模型(majority vote方式)
在这里插入图片描述

  1. 数据增强不同方式?

一些 参考 及 链接:

作业 及 样例代码(sample code 抄这里)

大佬代码参考(数据增强和半监督代码 抄这里)

参考2–目前只有1-3作业?(可视化代码抄这里)

其它不错的up主讲解

学习到的经验:

  1. 加快数据读取:prefetch_generator (自己没用上这个,直接num_workers = 8,开多个线程加载数据)
  2. 数据增强:transforms.AutoAugment(), transforms.TrivialAugmentWide()
  3. lr调整:lr_scheduler
  4. 半监督valid_acc > 0.6并且每过10个epoch才用,每一轮差别不是很大
    在这里插入图片描述

图像分类训练技巧之数据增强方法总结
图像分类训练技巧之数据增强篇 – 和上面一样,带目录知乎

深度学习数据增广技术一览

ResNet王者归来:ImageNet上刷新到80.7【一些大神的训练经验和技巧】

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值