【李宏毅2021机器学习深度学习】作业3 Food Image Classfication 记录(双过 strong baseline)
作者:互联网
文章目录
- 写在前面
- 做完这个实验应该有的收获:
- 先上实验结果(直接使用pytorch内置的模型resnet18(pretrain=False),双过 strong baseline,过线一点点,学习用就行了)
- 一些改进想法:
- 一些 参考 及 链接:
写在前面
新手入门,相互学习,期待大佬有更好的想法。
做完这个实验应该有的收获:
- 使用CNN进行图片分类
- 学习到 data augmentations(有22种之多,但并不是每种都有用,看情况)
- 使用
无监督学习(主要)
(用上大量 unlabeled data辅助训练) - 训练经验:
-
本地训练,从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)
-
自定义
Dataset
,concat_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,过线一点点,学习用就行了)
可视化 训练过程,中间有抖动是因为手动停了训练调了一下参数,比如在训练后期:可以把学习率调小,半监督的阈值放宽。
后面学习到scheduler
和tensorboard
可以自动调整学习率吧,等待学习中…
阈值调到0.65 使用到的数据
使用resnet18_pretrain的结果,只训练10个epoch看看效果(当然这是禁止的!)
一些改进想法:
- 集成学习?
- 数据增强不同方式?
一些 参考 及 链接:
大佬代码参考(数据增强和半监督代码 抄这里)
参考2–目前只有1-3作业?(可视化代码抄这里)
标签:双过,baseline,训练,Food,workers,学习,num,pin,memory 来源: https://blog.csdn.net/weixin_43154149/article/details/121992218