海思平台部署深度学习模型之最大池化层替换策略

华为的海思平台有一套自己的深度学习推理框架nnie,可实现在边缘端硬件实现深度学习模型的部署,一般的部署套路是从训练框架的模型转到onnx模型,再转到caffe模型,然后由caffe模型转到nnie的wk模型。由于nnie所支持的算子列表有限,经常会发生caffe->nnie转换过程中报错的现象。笔者在此整理了在转换过程中遇到的一些不支持的op的情况,以及解决方案。
1.关于全局平均(最大)池化操作,nnie中对池化层的核尺寸有一个限制,kernel<2048/(w/(16*stride_w)stride_w)。
解决办法:采用多次平均池化的方法,代替全局平均池化。
例如:我想实现一个234
310尺寸的特征图的全局池化
正常的caffe中的prototxt:

layer {
  name: "GlobalAveragePool_12"
  type: "Pooling"
  bottom: "107"
  top: "108"
  pooling_param {
    pool: AVE
    global_pooling: true
  }
}

修改后的prototxt:

layer {
  name: "GlobalAveragePool_12"
  type: "Pooling"
  bottom: "107"
  top: "107_pool"
  pooling_param {
    pool: AVE
    kernel_h:13
    stride_h:13
    kernel_w:31
    stride_w:31
  }
}
layer {
  name: "GlobalAveragePool_12_1"
  type: "Pooling"
  bottom: "107_pool"
  top: "108"
  pooling_param {
    pool: AVE
    kernel_h:18
    stride_h:1
    kernel_w:10
    stride_w:1
  }
}

然后重新保存caffemodel,在进行caffe->nnie就能执行推理。

码字不易,如果觉得文章有用的话,请赞赏支持下!

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值