【卷积网络模型系列】轻量级卷积网络SqueezeNet的介绍与实现(Pytorch,Tensorflow)

本文介绍了轻量级卷积网络SqueezeNet,它在保持与AlexNet相当的准确率的同时,参数量仅为1/50。SqueezeNet的关键在于其Fire Module,由squeeze层和expand层组成,减少了网络参数。文章详细阐述了SqueezeNet的结构、优势及在Pytorch和Tensorflow中的实现,并提供了模型和代码资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、背景介绍

    在2012年AlexNet问世以为,卷积神经网络在图像分类识别,目标检测,图像分割等方面得到广泛应用,后续大牛们也提出了很多更优越的模型,比  如VGG, GoogLeNet系列,ResNet, DenseNet等。

    伴随着精度的提升,对应模型的深度也随着增加,从AlexNet的7层,到16 层 VGG,再到GoogLeNet 的 22 层,再到 152 层 ResNet,更有上千层的 ResNet 和 DenseNet,从而带来了效率问题。因此,后面又提出来了在保持一定精度的前提下的轻量级卷积网路架构,SqueezeNet就是其中之一。

 

    对于相同的正确率水平,轻量级的CNN架构可以提供如下的优势:

1. 在分布式训练中,与服务器通信需求更小

2. 参数更少,从云端下载模型的数据量小

3. 更适合在FPGA和嵌入式硬件设备上部署。

SqeezeNet在ImageNet上实现了和AlexNet相同的正确率,但是只使用了1/50的参数。更进一步,使用模型压缩技术,可以将SqueezeNet压缩到0.5MB,这是AlexNet的1/510。

 

二、SqueezeNet介绍

SqueezeNet所做的主要工作如下:

1. 提出了新的网络架构Fire Module,通过减少参数来进行模型压缩

2. 使用其它方法对提出的SqeezeNet模型进行进一步压缩

3. 对参数空间进行了探索,主要研究了压缩比和3×3卷积比例的影响

SqueezeNet中提出了 Fire Module结构作为网络的基础模块,具体结构如下图:

                      

Fire module 由两层构成,分别是 squeeze 层+expand 层,如上图所示,squeeze 层是一个 1*1 卷积核的卷积层,expand 层是 1*1 和 3*3 卷积核的卷积层,expand 层中,把 1*1 和 3*3 得到的 feature map 进行 concat。

具体操作如下图所示:

                                   

s1 是 Squeeze层 1*1卷积核的数量, e1 是Expand层1*1卷积核的数量, e3是Expand层3*3卷积核的数量,在文中提出的 SqueezeNet 结构中,e1=e3=4s1。

SqueezeNet网络的整体结构如下图:

                                                   

 

SqueezeNet以卷积层(conv1)开始,接着使用8个Fire modules (fire2-9),最后以卷积层(conv10)结束。每个fire module中的filter数量逐渐增加,并且在conv1, fire4, fire8, 和 conv10这几层之后使用步幅为2的最大池化。

模型具体参数情况如下图:

在Imagenet数据集上,和AlexNet对比如下图:

可以看到,在统一不使用模型压缩的情况下,模型大小相比于AlexNet,缩小了50倍,但是精度却和AlexNet一样。

 

三、SqueezeNet具体实现(Pytorch, Tensorflow)

1.Pytorch实现

import torch
import torch.nn as nn
from torchvision.models import squeezenet1_0
from torchvision import transforms
from PIL import Image


class Fire(nn.Module):
    def __init__(self, in_channels, squeeze_channels, expand1x1_channels, expand3x3_channels):
        super(Fire, self).__init__()

        self.squeeze 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值