使用TensorFlow构建MobileNet

本文介绍了如何使用TensorFlow构建MobileNet模型,详细阐述了工作流程、MobileNet块的构建,包括导入图层、定义MobileNet块的辅助函数,并展示了模型的主干结构。MobileNet以其高效和小型化的特点,适合在资源有限的设备上运行。

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

769a66b15d5092107b78da7d37d434f2.png

在此之前,我已经讨论了MobileNet的体系结构:https://towardsdatascience.com/understanding-depthwise-separable-convolutions-and-the-efficiency-of-mobilenets-6de3d6b62503

接下来,我们将看到如何使用TensorFlow从头开始实现这个架构。

实现:

MobileNet架构:

dcc6571868aa1552ac9ffd83ad8d5854.png

图显示了我们将在代码中实现的MobileNet体系结构。网络从Conv、BatchNorm、ReLU块开始,并从其上跟随多个MobileNet块。它最终以一个平均池和一个完全连接的层结束,并激活Softmax。

我们看到该体系结构有一个模式——Conv-dw/s1,后跟Conv/s1,依此类推。这里dw是深度层和步幅数,然后是Conv层和步幅数。这两条线是MobileNet区块。

“Filter Shape”列给出了核大小和要使用的滤波器数量的详细信息。列的最后一个数字表示滤波器的数量。我们看到滤波器数量从32逐渐增加到64,从64逐渐增加到128,从128逐渐增加到256,以此类推。

最后一列显示了随着我们深入网络,图像的大小是如何变化的。输入大小选择为224*224像素,有3个通道,输出层分类为1000类。

正常CNN架构块之间的差异(左),与MobileNet架构(右):

9e1f76de6f0a351acade7eef31a56a84.png

构建网络时需要记住的几件事:

  1. 所有层之后都是批量标准化和ReLU非线性。

  2. 与具有Conv2D层的普通CNN模型不同,MobileNet具有Depthwise  Conv层,如图所示。为了更好地理解这一层,请参考:https://towardsdatascience.com/understanding-depthwise-separable-convolutions-and-the-efficiency-of-mobilenet

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值