![TensorFlow+Android经典模型从理论到实战(微课视频版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/815/52842815/b_52842815.jpg)
上QQ阅读APP看书,第一时间看更新
1.6 EfficientNetV2建模
参照EfficientNetV2论文公布的源码,本节完成EfficientNetV2-S/M/L三个模型的编程。官方程序用列表描述模型的参数结构,以EfficientNetV2-S模型为例,其结构描述如下。
v2_s_block = [ 'r2_k3_s1_e1_i24_o24_c1' 'r4_k3_s2_e4_i24_o48_c1' 'r4_k3_s2_e4_i48_o64_c1' 'r6_k3_s2_e4_i64_o128_se0 25' 'r9_k3_s1_e6_i128_o160_se0 25' 'r15_k3_s2_e6_i160_o256_se0 25' ]
参照表1.9对EfficientNetV2-S模型的定义,v2_s_block中的参数符号解读如下。
r:当前Stage中Operator重复的次数repeats。
k:卷积核尺寸kernel_size。
s:步长stride。
e:升维倍率因子expansion ratio。
i:当前Stage的输入通道数input channels。
o:当前Stage的输出通道数output channels。
c:卷积类型,0表示Fused-MBConv,1表示MBConv。
se:表示SE模块第一个全连接层的通道压缩因子se_ratio。
打开PyCharm,新建项目TensorFlow_to_Android,按照本节视频教程提示,配置项目虚拟环境,安装TensorFlow和相关库。新建文件夹EfficientNetV2,在其中创建model.py程序,完成程序源码P1.1的编程与测试工作。
![](https://epubservercos.yuewen.com/A52FB2/31398333104740106/epubprivate/OEBPS/Images/Figure-P36_48320.jpg?sign=1738881413-ODd0Z0ECK6Nxv2X769ydxshUV6P3P9xG-0-49fec93ecf7501739d15c70f2c7cd8df)
![](https://epubservercos.yuewen.com/A52FB2/31398333104740106/epubprivate/OEBPS/Images/Figure-P37_48321.jpg?sign=1738881413-VXUeXCzhkXIgpSHuYfKo68wfyuo4z1wT-0-859eb7c0ade522b7f7e3d9dbbe1ad0a0)
![](https://epubservercos.yuewen.com/A52FB2/31398333104740106/epubprivate/OEBPS/Images/Figure-P38_48322.jpg?sign=1738881413-rhVDw7qxtyoEET9MBHup4E69xeQMorgH-0-292e99c86c07a148c3ba901c4ddece63)
![](https://epubservercos.yuewen.com/A52FB2/31398333104740106/epubprivate/OEBPS/Images/Figure-P39_48323.jpg?sign=1738881413-GnQqLOOSaFnLjfj83pR5RNoGMG5mjiGK-0-f7c84b0834b61292f67279ee4c641ff6)
![](https://epubservercos.yuewen.com/A52FB2/31398333104740106/epubprivate/OEBPS/Images/Figure-P40_48324.jpg?sign=1738881413-MZBGxzaIKrY8jqu6XkiSk5XQtPdqy9g1-0-b93c7458dd1627338362980d8f106fc0)
![](https://epubservercos.yuewen.com/A52FB2/31398333104740106/epubprivate/OEBPS/Images/Figure-P41_48325.jpg?sign=1738881413-O4M5HVgxZYplWQHfsPeBfGmx51Zvug6S-0-f60a2e4790b6fff3242346d3ebc8dacc)
![](https://epubservercos.yuewen.com/A52FB2/31398333104740106/epubprivate/OEBPS/Images/Figure-P42_48326.jpg?sign=1738881413-q4nqVwMxObXvDRGwRCC7lASTTwA4LDgb-0-6b99119fdf463cf9e228e462bfc3ed2d)
![](https://epubservercos.yuewen.com/A52FB2/31398333104740106/epubprivate/OEBPS/Images/Figure-P43_48327.jpg?sign=1738881413-xJkLSCA53FPyiXHE56Q7QDqbuzEPKA8W-0-33e55b92189b8c85af49bde2689e6b7c)
程序model.py编码有些长,其中包含了EfficientNetV2-S/M/L三种模型的实现逻辑,该逻辑极其容易扩展到其他模型,包括EfficientNetV1的系列模型。
程序model.py编码优雅,面向对象的结构化设计,层层递进,值得学习和模仿。
程序设计细节、运行测试结果及详细解析参见本节微课视频。