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

文章目录

写在前面

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

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

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

  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拼接起来
      【李宏毅2021机器学习深度学习】作业3 Food Image Classfication 记录(双过 strong baseline)

    • 可视化训练结果,将每一个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的才会被选取
      【李宏毅2021机器学习深度学习】作业3 Food Image Classfication 记录(双过 strong baseline)
      【李宏毅2021机器学习深度学习】作业3 Food Image Classfication 记录(双过 strong baseline)

    • 可视化 代码
      【李宏毅2021机器学习深度学习】作业3 Food Image Classfication 记录(双过 strong baseline)【李宏毅2021机器学习深度学习】作业3 Food Image Classfication 记录(双过 strong baseline)
      【李宏毅2021机器学习深度学习】作业3 Food Image Classfication 记录(双过 strong baseline)

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

【李宏毅2021机器学习深度学习】作业3 Food Image Classfication 记录(双过 strong baseline)
可视化 训练过程,中间有抖动是因为手动停了训练调了一下参数,比如在训练后期:可以把学习率调小,半监督的阈值放宽。
后面学习到schedulertensorboard可以自动调整学习率吧,等待学习中…
【李宏毅2021机器学习深度学习】作业3 Food Image Classfication 记录(双过 strong baseline)

【李宏毅2021机器学习深度学习】作业3 Food Image Classfication 记录(双过 strong baseline)
阈值调到0.65 使用到的数据
【李宏毅2021机器学习深度学习】作业3 Food Image Classfication 记录(双过 strong baseline)
使用resnet18_pretrain的结果,只训练10个epoch看看效果(当然这是禁止的!)
【李宏毅2021机器学习深度学习】作业3 Food Image Classfication 记录(双过 strong baseline)

一些改进想法:

  1. 集成学习?
  2. 数据增强不同方式?

一些 参考 及 链接:

作业 及 样例代码

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

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

上一篇:USTC English Club20171010


下一篇:读论文——Does syntax matter? A strong baseline for Aspect-based Sentiment Analysis with RoBERTa