其他分享
首页 > 其他分享> > 【李宏毅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拼接起来
      在这里插入图片描述

    • 可视化训练结果,将每一个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. 集成学习?
  2. 数据增强不同方式?

一些 参考 及 链接:

作业 及 样例代码

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

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

标签:双过,baseline,训练,Food,workers,学习,num,pin,memory
来源: https://blog.csdn.net/weixin_43154149/article/details/121992218