MKL-DNN学习笔记 (二) 超分辨率推理模型的选择 - DRRN

一切不结合实践的理论文章都是耍流氓!!!

所以这里学习MKL-DNN的最终目的是把mkldnn放到一个实际的超分辨率推理应用中去做加速。这里我选中了下面这篇文章的DRRN模型推理加速来做我这次学习的最终目的

纯C++超分辨率重建DRRN --改编

DRRN的网络架构如下(图片来自DRRN的论文, 地址 http://cvlab.cse.msu.edu/pdfs/Tai_Yang_Liu_CVPR2017.pdf)

纯C++超分辨率重建DRRN --改编中用了U=9的一个网络,即中间一绿一红conv模块组成一个残差块,在这里一共用了9个。每个残差块里包含2个conv模块,每个conv模块里又包含了一个BatchNormal, 一个Relu还有一个convolution层。

这个模型的特点是

1. 首先把输入的LR图像先基于bicubic算法做一个放大,接下来把放大后的图像再放到网络模型里一层层做计算。因此对内存的需求比fsrcnn之类的直接对LR图像作为输入的模型要大得多。

2. 相对网络层数特别的多,一共做了20组BN->ReLU->Conv的计算,计算量特别的大。《纯C++超分辨率重建DRRN --改编》原文中的C++程序,最大输入图片在我的电脑上只能做到40*30的分辨率。如果要做320*240的分辨率超分到960*720,在我的电脑上至少要4个小时以上。

3. 计算网络层的种类较少,这个模型总共用到了3种网络层,BN/ReLU/Conv, 都是CNN里常用的典型网络层。所以我们要在mkl-dnn里分别实验这3种网络层计算,最终把它们集成进《纯C++超分辨率重建DRRN --改编》里面的纯C++代码里做一个加速,并且做一个速度的比较。

 

最后再推广一个查看深度网络模型架构的应用Netron, 真是神器。下图是netron导出来的我要用的caffe格式DRRN模型的网络拓扑图

下篇文章开始开始一个一个的实现Relu/BN/Conv!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值