ESPNet: Efficient Spatial Pyramid of Dilated Convolutions for Semantic Segmentation
ESPNet是用于语义分割的轻量级网络,主要思想基于传统卷积模块设计,提出一种高效空间金字塔卷积模块(ESP Module),该模块包含point-wise卷积和空洞卷积金字塔,有助于减小模型运算量和内存、功率消耗,以提高在终端设备上的适用性。综合比较,ESPNet能在GPU/笔记本/终端设备上达到112FPS/21FPS/9FPS。
主要做法:
ESP模块将标准卷积分解成point-wise卷积和空洞卷积金字塔(spatial pyramid of dilated convolutions),point-wise卷积将输入映射到低维特征空间,空洞卷积金字塔使用K组空洞卷积的同时下采样得到低维特征,每个空洞卷积的dilation rate为。这种分解方法能够大量减少ESP模块的参数量和内存,并且保持较大的有效感受域。
网络架构如下:
代码实现如下:
import torch
from light_cnns import espnetv1
model = espnetv1()
model.eval()
print(model)
input = torch.randn(1, 3, 224, 224)
y = model(input)
print(y.size())
ESPNetv2主要基于ESPNetv1进行了模型轻量化处理,主要包括:
其中下采样版本的EESP模块(Strided EESP with shortcut connection to an input image),主要改进如下:
网络架构如下:
代码实现如下:
import torch
from light_cnns import espnetv2
model = espnetv2()
model.eval()
print(model)
input = torch.randn(1, 3, 224, 224)
y = model(input)
print(y.size())
后续将持续更新模型轻量化处理的一系列方法,包括:剪枝,量化,知识蒸馏等等,欢迎大家Star和Follow