百度飞桨顶会论文复现营心得——DANet网络

本次飞桨论文复现过程中,最终选择自选方向——DANet图像分割网络,在此将复现过程中的一些心得体会做一些总结

ai studio项目链接:https://aistudio.baidu.com/aistudio/projectdetail/813854

github链接:https://github.com/huilin16/paddle

 

关于danet网络

网络整体结构:

由resnet作为backbone提取图像特征,由PAM、CAM模块对提取的特征分别从空间维度和通道维度进行矩阵操作、实现特征关注,将得到的特征关注结果进行拼接、卷积后,使用上采样得到最终的预测结果

复现内容

在使用paddle复现过程中,由于个人能力有限,复现主要内容及改动部分如下:

  • 数据预处理
    • 使用Cityscapes-gtFine数据集,以8:2比例划分train、val(test)数据集
    • train过程768*768随机crop,val、test过程768*768中心crop
    • 自定义trainid为20类
  • 网络构建:
    • 使用resnet50作为backbone,各block输出通道数由[64, 128, 256, 512]改为[32, 64, 128, 256]
    • CAM、PAM,input_chs由2048改为1024,inter_chs由input_chs//4改为512
    • 输出结果包括CAM、PAM、CAM+PAM3部分
  • train、val过程
    • batch size=8
    • epoch = 30
    • optimizer

      • Momentum,momentum=0.9,l2_decay=0.0001

    • learning rate
      • 由1e-4线性warmup至1e-1,2epoch;
      • 由1e-1按(1e-1-1e-4)*((1-iter/total_iter)**0.9)+1e-4的polynomial_decay方法进行变化,30epoch(其中iter表示单个batch过程,1epoch表示所有batch过程,polynomial_decay的前两个epoch的学习率由warmup替换)
    • loss
      • softmax_with_cross_entropy
      • 对CAM、PAM、CAM+PAM以0.3、0.3、0.4的比例进行加权
    • 保存val accuracy最高、val loss最低2个模型
    • 输出train、val过程的accuracy、loss曲线
  • test过程
    • 计算并输出混淆矩阵、各类iou、miou、fwiou等指标
  • infer过程
    • 对图像进行推理预测

最终结果:best val acc 0.8627,miou 0.4063,fwiou 0.7784

由于对网络进行了一些魔改,加上只进行了2次30epoch的训练,最终结果相较于论文有一定差距

因此,本复现结果只是对danet网络认识提供一种参考,希望大家可以一起交流学习

 

后续展望

danet网络,对resnet提取的特征结果进行了position、channel2种类似于non-local并行的特征选择,增强了网络对于特征的选择能力;但近来在图像通道维度的关注机制,更多地选用基于全局信息的特征提取方法(gloabl pool),并且根据CBAM网络的实验结果表明channel+spatial的串行关注结果要好于并行结果;串行关注、使用全局信息进行通道关注的结果尚未进行实验,后续可以进行进一步的对比实验

danet使用的是上采样的方法对PAM、CAM结果空间分辨率进行恢复,可以使用unet的跳跃式连接+编解码结构进行实验

 

关于飞桨

个人使用pytorch较多,在复现过程中,使用飞桨动态图api复现pytorch相关代码比较方便

一些经典网络,比如resnet等,官网有动态图和静态图的demo,方便学习

在社区、github、微信群等平台,飞桨官方有答疑,代码问题可以比较快速地解决

ai studio提供的计算资源相当丰富(每天12小时算力卡,连续5天登录送48小时算力卡,完全足够;gpu为v100,最高支持8卡),并且提供数据集存储服务,同时包括比赛、社区等,也会送许多奖品福利

 

 

但是也存在一些不足,比如

  • api部分功能及文档教程不完善,许多api仍是静态图的调用示例,比如summary打印模型各层及大小目前尚不支持动态图
  • 过多api集中在paddle.fluid.layers、paddle.fluid.dygaph中,不方便查询使用

但上述问题飞桨也正在积极结解决,在复现营学习的过程中,飞桨就已经做出了许多更新迭代,相信正式的2.0版本后会更加完善

 

 

 

最后,感谢本次飞桨、ai studio提供的本次学习机会。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值