建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版-->
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
标签
您还可以添加5个标签
  • 没有搜索到和“关键字”相关的标签
  • 云产品
  • 解决方案
  • 技术领域
  • 通用技术
  • 平台功能
取消

jzcruiser

角色:成员

话题:0

发消息
发表于2020年05月11日 19:50:36 7633
直达本楼层的链接
楼主
显示全部楼层
[参赛经验分享] 爱(AI)美食美食图片分类大赛——第二名方案分享

# 数据 - 500 张图 x 10 类, 共 5000 个样本 ## 易混淆类别举例: - 三明治 和 玉米饼 - 冰激凌 和 土豆泥 - 芒果班戟 和 鸡蛋布丁 # 方案 基于成熟模型进行迁移学习 # 模型 ## EfficientNet B3 - 在 ImageNet 数据集上精度比较高 - 输入图像尺寸 300 - 参数少,训练快,部署快 # 训练策略 ## 损失函数 - 标签平滑:抑制过拟合 ## 优化器 - Ranger - SGD ## 数据增强 - 随机进行旋转、平移、翻转变换 - 随机调节亮度对比度 ## 过程 - 两阶段训练 - 阶段一 - Ranger + one-cycle - 只训练离输出较近的几层,锁定其他层 - 用比较大的学习率,收敛到一个比较低的 validation loss - 阶段二 - 改用 SGD - 使用较低学习率 - 微调 epochs 和 lr 等超参数 # 其他尝试 ## Selective-Backprop - 参考:https://arxiv.org/abs/1910.00762 - minimum loss percentage 用 0.9 - 效果不明显 ## Weighted CE - '土豆泥', '鸡蛋布丁', '冰激凌', '小米粥', '三明治' 损失函数权重设置为 1.2 - 参考代码: ```python weight = torch.Tensor(np.ones(data_.c)) if torch.cuda.is_available(): weight = weight.cuda() hard_classes = ['土豆泥', '鸡蛋布丁', '冰激凌', '小米粥', '三明治'] hard_classes_idx = [data_.train_ds.c2i[x] for x in hard_classes] weight[hard_classes_idx] = 1.2 loss_func = nn.CrossEntropyLoss(weight=weight) ``` - 效果不明显 # 展望 - 尝试注意力机制 - 尝试调整 WeightedCE 权重 # 其他参考 - https://towardsdatascience.com/label-smoothing-making-model-robust-to-incorrect-labels-2fae037ffbd0 - https://towardsdatascience.com/exploring-learning-rates-to-improve-model-performance-in-keras-e37f5e63f16c
举报
分享

分享文章到朋友圈

分享文章到微博

skywalk

角色:成员

话题:0

发消息
发表于2020年05月11日 21:53:30
直达本楼层的链接
沙发
显示全部楼层

非常棒,学习了!

点赞 评论 引用 举报

白马非马x

角色:成员

话题:0

发消息
发表于2020年05月12日 19:06:05
直达本楼层的链接
板凳
显示全部楼层

你好,请问代码可以开源吗

点赞 评论 引用 举报

l番薯加奶

角色:成员

话题:0

发消息
发表于2020年06月11日 17:06:16
直达本楼层的链接
地板
显示全部楼层

干货帖!学习了!

点赞 评论 引用 举报

游客

富文本
Markdown
您需要登录后才可以回帖 登录 | 立即注册