- - **NOTE** This repo is not being maintained --请改用timm 。它包括所有这些模型定义(兼容权重)等等。
涵盖了从Mobilenet V1/V2块序列得出的大多数计算/参数有效体系结构的“ EfficityNet,MixNet,MobilenetV3等”的“通用”实现,包括通过自动化神经体系结构搜索找到的架构。
所有模型均由GenefficityNet或Mobilenetv3类实现,具有基于字符串的体系结构定义以配置块布局(从此处进行想法)
timm (82.1 Top-1)我自己训练的更新的Pytorch训练有素的EdgitionNet-B3权重timm当量同步fix_group_fanout=False initialize_weight_goog for Old行为ap模型,因为它们使用了原始EdgitionNet基础/AA/RA权重的不同预处理(Inception Menaption/STD)。实施模型包括:
我最初在此处使用代码实现并培训了一些这些模型,此存储库仅包含GenefficityNet模型,验证和关联的ONNX/CAFFE2导出代码。
我已经设法训练了几个模型,以接近或更高的原始论文和官方Inphl。我的培训代码在这里:https://github.com/rwightman/pytorch-image-models
| 模型 | prec@1(err) | prec@5(err) | 参数#(M) | MADDS(M) | 图像缩放 | 解决 | 庄稼 |
|---|---|---|---|---|---|---|---|
| 效率网络_b3 | 82.240(17.760) | 96.116(3.884) | 12.23 | TBD | 比科比奇 | 320 | 1.0 |
| 效率网络_b3 | 82.076(17.924) | 96.020(3.980) | 12.23 | TBD | 比科比奇 | 300 | 0.904 |
| mixnet_xl | 81.074(18.926) | 95.282(4.718) | 11.90 | TBD | 比科比奇 | 256 | 1.0 |
| 效率网络_b2 | 80.612(19.388) | 95.318(4.682) | 9.1 | TBD | 比科比奇 | 288 | 1.0 |
| mixnet_xl | 80.476(19.524) | 94.936(5.064) | 11.90 | TBD | 比科比奇 | 224 | 0.875 |
| 效率网络_b2 | 80.288(19.712) | 95.166(4.834) | 9.1 | 1003 | 比科比奇 | 260 | 0.890 |
| mixnet_l | 78.976(21.024 | 94.184(5.816) | 7.33 | TBD | 比科比奇 | 224 | 0.875 |
| 效率网络_b1 | 78.692(21.308) | 94.086(5.914) | 7.8 | 694 | 比科比奇 | 240 | 0.882 |
| 效率网络 | 78.066(21.934) | 93.926(6.074) | 5.44 | TBD | 比科比奇 | 224 | 0.875 |
| 效率网络_b0 | 77.698(22.302) | 93.532(6.468) | 5.3 | 390 | 比科比奇 | 224 | 0.875 |
| MOBILENETV2_120D | 77.294(22.706 | 93.502(6.498) | 5.8 | TBD | 比科比奇 | 224 | 0.875 |
| mixnet_m | 77.256(22.744) | 93.418(6.582) | 5.01 | 353 | 比科比奇 | 224 | 0.875 |
| MOBILENETV2_140 | 76.524(23.476) | 92.990(7.010) | 6.1 | TBD | 比科比奇 | 224 | 0.875 |
| mixnet_s | 75.988(24.012) | 92.794(7.206) | 4.13 | TBD | 比科比奇 | 224 | 0.875 |
| Mobilenetv3_large_100 | 75.766(24.234) | 92.542(7.458) | 5.5 | TBD | 比科比奇 | 224 | 0.875 |
| mobilenetv3_rw | 75.634(24.366) | 92.708(7.292) | 5.5 | 219 | 比科比奇 | 224 | 0.875 |
| EditiveNet_lite0 | 75.472(24.528) | 92.520(7.480) | 4.65 | TBD | 比科比奇 | 224 | 0.875 |
| mnasnet_a1 | 75.448(24.552) | 92.604(7.396) | 3.9 | 312 | 比科比奇 | 224 | 0.875 |
| FBNETC_100 | 75.124(24.876) | 92.386(7.614) | 5.6 | 385 | 双线性 | 224 | 0.875 |
| MobileNetv2_110D | 75.052(24.948) | 92.180(7.820) | 4.5 | TBD | 比科比奇 | 224 | 0.875 |
| mnasnet_b1 | 74.658(25.342) | 92.114(7.886) | 4.4 | 315 | 比科比奇 | 224 | 0.875 |
| spnasnet_100 | 74.084(25.916) | 91.818(8.182) | 4.4 | TBD | 双线性 | 224 | 0.875 |
| Mobilenetv2_100 | 72.978(27.022) | 91.016(8.984) | 3.5 | TBD | 比科比奇 | 224 | 0.875 |
更谨慎的模型来了...
一旦添加了相同的卷积填充等效量,从TensorFlow检查点上移植的权重在Tensorflow中的精度几乎可以匹配,并且通过CMD Line Args使用了相同的裁剪因子,图像缩放等等(请参阅表)。
重要的:
--tf-preprocessing的TensorFlow预处理管道将提高0.1-0.5%的分数,非常接近原始TF Implant。要运行tf_effidiceNet_b5的验证: python validate.py /path/to/imagenet/validation/ --model tf_efficientnet_b5 -b 64 --img-size 456 --crop-pct 0.934 --interpolation bicubic
要运行tf_effidiceNet_b5的带有TF预处理的验证: python validate.py /path/to/imagenet/validation/ --model tf_efficientnet_b5 -b 64 --img-size 456 --tf-preprocessing
要运行具有创建预处理的模型的验证,IE EfficityNet-B8 Advprop: python validate.py /path/to/imagenet/validation/ --model tf_efficientnet_b8_ap -b 48 --num-gpu 2 --img-size 672 --crop-pct 0.954 --mean 0.5 --std 0.5
| 模型 | prec@1(err) | prec@5(err) | 参数# | 图像缩放 | 图像大小 | 庄稼 |
|---|---|---|---|---|---|---|
| tf_effidicednet_l2_ns *tfp | 88.352(11.648) | 98.652(1.348) | 480 | 比科比奇 | 800 | N/A。 |
| tf_effidicednet_l2_ns | TBD | TBD | 480 | 比科比奇 | 800 | 0.961 |
| tf_effidicednet_l2_ns_475 | 88.234(11.766) | 98.546(1.454) | 480 | 比科比奇 | 475 | 0.936 |
| tf_effidicenet_l2_ns_475 *tfp | 88.172(11.828) | 98.566(1.434) | 480 | 比科比奇 | 475 | N/A。 |
| tf_effidicednet_b7_ns *tfp | 86.844(13.156) | 98.084(1.916) | 66.35 | 比科比奇 | 600 | N/A。 |
| tf_effidicednet_b7_ns | 86.840(13.160) | 98.094(1.906) | 66.35 | 比科比奇 | 600 | N/A。 |
| tf_effidicenet_b6_ns | 86.452(13.548) | 97.882(2.118) | 43.04 | 比科比奇 | 528 | N/A。 |
| tf_effidicednet_b6_ns *tfp | 86.444(13.556) | 97.880(2.120) | 43.04 | 比科比奇 | 528 | N/A。 |
| tf_effidicenet_b5_ns *tfp | 86.064(13.936) | 97.746(2.254) | 30.39 | 比科比奇 | 456 | N/A。 |
| tf_effidicednet_b5_ns | 86.088(13.912) | 97.752(2.248) | 30.39 | 比科比奇 | 456 | N/A。 |
| tf_effidicenet_b8_ap *tfp | 85.436(14.564) | 97.272(2.728) | 87.4 | 比科比奇 | 672 | N/A。 |
| tf_effidicednet_b8 *tfp | 85.384(14.616) | 97.394(2.606) | 87.4 | 比科比奇 | 672 | N/A。 |
| tf_effidicednet_b8 | 85.370(14.630) | 97.390(2.610) | 87.4 | 比科比奇 | 672 | 0.954 |
| tf_effidicednet_b8_ap | 85.368(14.632) | 97.294(2.706) | 87.4 | 比科比奇 | 672 | 0.954 |
| tf_effidicenet_b4_ns *tfp | 85.298(14.702) | 97.504(2.496) | 19.34 | 比科比奇 | 380 | N/A。 |
| tf_effidicednet_b4_ns | 85.162(14.838) | 97.470(2.530) | 19.34 | 比科比奇 | 380 | 0.922 |
| tf_effidicenet_b7_ap *tfp | 85.154(14.846) | 97.244(2.756) | 66.35 | 比科比奇 | 600 | N/A。 |
| tf_effidicednet_b7_ap | 85.118(14.882) | 97.252(2.748) | 66.35 | 比科比奇 | 600 | 0.949 |
| tf_effidicednet_b7 *tfp | 84.940(15.060) | 97.214(2.786) | 66.35 | 比科比奇 | 600 | N/A。 |
| tf_effidicednet_b7 | 84.932(15.068) | 97.208(2.792) | 66.35 | 比科比奇 | 600 | 0.949 |
| tf_effidicednet_b6_ap | 84.786(15.214) | 97.138(2.862) | 43.04 | 比科比奇 | 528 | 0.942 |
| tf_effidicenet_b6_ap *tfp | 84.760(15.240) | 97.124(2.876) | 43.04 | 比科比奇 | 528 | N/A。 |
| tf_effidicenet_b5_ap *tfp | 84.276(15.724) | 96.932(3.068) | 30.39 | 比科比奇 | 456 | N/A。 |
| tf_effidicednet_b5_ap | 84.254(15.746) | 96.976(3.024) | 30.39 | 比科比奇 | 456 | 0.934 |
| tf_effidicednet_b6 *tfp | 84.140(15.860) | 96.852(3.148) | 43.04 | 比科比奇 | 528 | N/A。 |
| tf_effidicednet_b6 | 84.110(15.890) | 96.886(3.114) | 43.04 | 比科比奇 | 528 | 0.942 |
| tf_effidicenet_b3_ns *tfp | 84.054(15.946) | 96.918(3.082) | 12.23 | 比科比奇 | 300 | N/A。 |
| tf_effidicednet_b3_ns | 84.048(15.952) | 96.910(3.090) | 12.23 | 比科比奇 | 300 | .904 |
| tf_effidicenet_b5 *tfp | 83.822(16.178) | 96.756(3.244) | 30.39 | 比科比奇 | 456 | N/A。 |
| tf_effidicednet_b5 | 83.812(16.188) | 96.748(3.252) | 30.39 | 比科比奇 | 456 | 0.934 |
| tf_effidicenet_b4_ap *tfp | 83.278(16.722) | 96.376(3.624) | 19.34 | 比科比奇 | 380 | N/A。 |
| tf_effidicednet_b4_ap | 83.248(16.752) | 96.388(3.612) | 19.34 | 比科比奇 | 380 | 0.922 |
| tf_effidicednet_b4 | 83.022(16.978) | 96.300(3.700) | 19.34 | 比科比奇 | 380 | 0.922 |
| tf_effidicenet_b4 *tfp | 82.948(17.052) | 96.308(3.692) | 19.34 | 比科比奇 | 380 | N/A。 |
| tf_effidicenet_b2_ns *tfp | 82.436(17.564) | 96.268(3.732) | 9.11 | 比科比奇 | 260 | N/A。 |
| tf_effidicenet_b2_ns | 82.380(17.620) | 96.248(3.752) | 9.11 | 比科比奇 | 260 | 0.89 |
| tf_effidicenet_b3_ap *tfp | 81.882(18.118) | 95.662(4.338) | 12.23 | 比科比奇 | 300 | N/A。 |
| tf_effidicenet_b3_ap | 81.828(18.172) | 95.624(4.376) | 12.23 | 比科比奇 | 300 | 0.904 |
| tf_effidicednet_b3 | 81.636(18.364) | 95.718(4.282) | 12.23 | 比科比奇 | 300 | 0.904 |
| tf_effidicednet_b3 *tfp | 81.576(18.424) | 95.662(4.338) | 12.23 | 比科比奇 | 300 | N/A。 |
| tf_effidicenet_lite4 | 81.528(18.472) | 95.668(4.332) | 13.00 | 双线性 | 380 | 0.92 |
| tf_effidicenet_b1_ns *tfp | 81.514(18.486) | 95.776(4.224) | 7.79 | 比科比奇 | 240 | N/A。 |
| tf_effidicenet_lite4 *tfp | 81.502(18.498) | 95.676(4.324) | 13.00 | 双线性 | 380 | N/A。 |
| tf_effidicednet_b1_ns | 81.388(18.612) | 95.738(4.262) | 7.79 | 比科比奇 | 240 | 0.88 |
| tf_effidicednet_el | 80.534(19.466) | 95.190(4.810) | 10.59 | 比科比奇 | 300 | 0.904 |
| tf_effidicenet_el *tfp | 80.476(19.524) | 95.200(4.800) | 10.59 | 比科比奇 | 300 | N/A。 |
| tf_effidicenet_b2_ap *tfp | 80.420(19.580) | 95.040(4.960) | 9.11 | 比科比奇 | 260 | N/A。 |
| tf_effidicednet_b2_ap | 80.306(19.694) | 95.028(4.972) | 9.11 | 比科比奇 | 260 | 0.890 |
| tf_effidicednet_b2 *tfp | 80.188(19.812) | 94.974(5.026) | 9.11 | 比科比奇 | 260 | N/A。 |
| tf_effidicednet_b2 | 80.086(19.914) | 94.908(5.092) | 9.11 | 比科比奇 | 260 | 0.890 |
| tf_effidicenet_lite3 | 79.812(20.188) | 94.914(5.086) | 8.20 | 双线性 | 300 | 0.904 |
| tf_effidicenet_lite3 *tfp | 79.734(20.266) | 94.838(5.162) | 8.20 | 双线性 | 300 | N/A。 |
| tf_effidicednet_b1_ap *tfp | 79.532(20.468) | 94.378(5.622) | 7.79 | 比科比奇 | 240 | N/A。 |
| tf_effidicenet_cc_b1_8e *tfp | 79.464(20.536) | 94.492(5.508) | 39.7 | 比科比奇 | 240 | 0.88 |
| tf_effidicenet_cc_b1_8e | 79.298(20.702) | 94.364(5.636) | 39.7 | 比科比奇 | 240 | 0.88 |
| tf_effidicenet_b1_ap | 79.278(20.722) | 94.308(5.692) | 7.79 | 比科比奇 | 240 | 0.88 |
| tf_effidicednet_b1 *tfp | 79.172(20.828) | 94.450(5.550) | 7.79 | 比科比奇 | 240 | N/A。 |
| tf_effidicenet_em *tfp | 78.958(21.042) | 94.458(5.542) | 6.90 | 比科比奇 | 240 | N/A。 |
| tf_effidicenet_b0_ns *tfp | 78.806(21.194) | 94.496(5.504) | 5.29 | 比科比奇 | 224 | N/A。 |
| TF_MIXNET_L *TFP | 78.846(21.154) | 94.212(5.788) | 7.33 | 双线性 | 224 | N/A。 |
| tf_effidicednet_b1 | 78.826(21.174) | 94.198(5.802) | 7.79 | 比科比奇 | 240 | 0.88 |
| tf_mixnet_l | 78.770(21.230) | 94.004(5.996) | 7.33 | 比科比奇 | 224 | 0.875 |
| tf_effidicednet_em | 78.742(21.258) | 94.332(5.668) | 6.90 | 比科比奇 | 240 | 0.875 |
| tf_effidicednet_b0_ns | 78.658(21.342) | 94.376(5.624) | 5.29 | 比科比奇 | 224 | 0.875 |
| tf_effidicenet_cc_b0_8e *tfp | 78.314(21.686) | 93.790(6.210) | 24.0 | 比科比奇 | 224 | 0.875 |
| tf_effidicenet_cc_b0_8e | 77.908(22.092) | 93.656(6.344) | 24.0 | 比科比奇 | 224 | 0.875 |
| tf_effidicenet_cc_b0_4e *tfp | 77.746(22.254) | 93.552(6.448) | 13.3 | 比科比奇 | 224 | 0.875 |
| tf_effidicenet_cc_b0_4e | 77.304(22.696) | 93.332(6.668) | 13.3 | 比科比奇 | 224 | 0.875 |
| tf_effidicenet_es *tfp | 77.616(22.384) | 93.750(6.250) | 5.44 | 比科比奇 | 224 | N/A。 |
| tf_effidicenet_lite2 *tfp | 77.544(22.456) | 93.800(6.200) | 6.09 | 双线性 | 260 | N/A。 |
| tf_effidicenet_lite2 | 77.460(22.540) | 93.746(6.254) | 6.09 | 比科比奇 | 260 | 0.89 |
| tf_effidicednet_b0_ap *tfp | 77.514(22.486) | 93.576(6.424) | 5.29 | 比科比奇 | 224 | N/A。 |
| tf_effidicednet_es | 77.264(22.736) | 93.600(6.400) | 5.44 | 比科比奇 | 224 | N/A。 |
| tf_effidicenet_b0 *tfp | 77.258(22.742) | 93.478(6.522) | 5.29 | 比科比奇 | 224 | N/A。 |
| tf_effidicednet_b0_ap | 77.084(22.916) | 93.254(6.746) | 5.29 | 比科比奇 | 224 | 0.875 |
| TF_MIXNET_M *TFP | 77.072(22.928) | 93.368(6.632) | 5.01 | 双线性 | 224 | N/A。 |
| tf_mixnet_m | 76.950(23.050) | 93.156(6.844) | 5.01 | 比科比奇 | 224 | 0.875 |
| tf_effidicednet_b0 | 76.848(23.152) | 93.228(6.772) | 5.29 | 比科比奇 | 224 | 0.875 |
| tf_effidicenet_lite1 *tfp | 76.764(23.236) | 93.326(6.674) | 5.42 | 双线性 | 240 | N/A。 |
| tf_effidicenet_lite1 | 76.638(23.362) | 93.232(6.768) | 5.42 | 比科比奇 | 240 | 0.882 |
| TF_MIXNET_S *TFP | 75.800(24.200) | 92.788(7.212) | 4.13 | 双线性 | 224 | N/A。 |
| tf_mobilenetv3_large_100 *tfp | 75.768(24.232) | 92.710(7.290) | 5.48 | 双线性 | 224 | N/A。 |
| tf_mixnet_s | 75.648(24.352) | 92.636(7.364) | 4.13 | 比科比奇 | 224 | 0.875 |
| tf_mobilenetv3_large_100 | 75.516(24.484) | 92.600(7.400) | 5.48 | 双线性 | 224 | 0.875 |
| tf_effidicenet_lite0 *tfp | 75.074(24.926) | 92.314(7.686) | 4.65 | 双线性 | 224 | N/A。 |
| tf_effidicenet_lite0 | 74.842(25.158) | 92.170(7.830) | 4.65 | 比科比奇 | 224 | 0.875 |
| tf_mobilenetv3_large_075 *TFP | 73.730(26.270) | 91.616(8.384) | 3.99 | 双线性 | 224 | N/A。 |
| tf_mobilenetv3_large_075 | 73.442(26.558) | 91.352(8.648) | 3.99 | 双线性 | 224 | 0.875 |
| tf_mobilenetv3_large_minimal_100 *tfp | 72.678(27.322) | 90.860(9.140) | 3.92 | 双线性 | 224 | N/A。 |
| tf_mobilenetv3_large_minimal_100 | 72.244(27.756) | 90.636(9.364) | 3.92 | 双线性 | 224 | 0.875 |
| tf_mobilenetv3_small_100 *tfp | 67.918(32.082) | 87.958(12.042 | 2.54 | 双线性 | 224 | N/A。 |
| tf_mobilenetv3_small_100 | 67.918(32.082) | 87.662(12.338) | 2.54 | 双线性 | 224 | 0.875 |
| tf_mobilenetv3_small_075 *tfp | 66.142(33.858) | 86.498(13.502) | 2.04 | 双线性 | 224 | N/A。 |
| tf_mobilenetv3_small_075 | 65.718(34.282) | 86.136(13.864) | 2.04 | 双线性 | 224 | 0.875 |
| tf_mobilenetv3_small_minimal_100 *tfp | 63.378(36.622) | 84.802(15.198) | 2.04 | 双线性 | 224 | N/A。 |
| tf_mobilenetv3_small_minimal_100 | 62.898(37.102) | 84.230(15.770) | 2.04 | 双线性 | 224 | 0.875 |
*用tf-preprocessing Pipeline验证的TFP模型
Google TF和Tflite重量从官方Tensorflow存储库移植
所有开发和测试均已在Linux X86-64系统的Conda Python 3环境中进行,特别是Python 3.6.x,3.7.x,3.8.x.。
用户报告说,Windows Works中安装了Python 3 Anaconda。我自己没有验证这一点。
使用此代码对Pytorch版本1.4、1.5、1.6进行了测试。
我试图将依赖关系保持在最低点,设置是按照Pytorch的默认安装说明:Conda:
conda create -n torch-env
conda activate torch-env
conda install -c pytorch pytorch torchvision cudatoolkit=10.2
可以通过Pytorch Hub API访问模型
>>> torch.hub.list('rwightman/gen-efficientnet-pytorch')
['efficientnet_b0', ...]
>>> model = torch.hub.load('rwightman/gen-efficientnet-pytorch', 'efficientnet_b0', pretrained=True)
>>> model.eval()
>>> output = model(torch.randn(1,3,224,224))
该软件包可以通过PIP安装。
安装(conda env/install之后):
pip install geffnet
评估使用:
>>> import geffnet
>>> m = geffnet.create_model('mobilenetv3_large_100', pretrained=True)
>>> m.eval()
火车使用:
>>> import geffnet
>>> # models can also be created by using the entrypoint directly
>>> m = geffnet.efficientnet_b2(pretrained=True, drop_rate=0.25, drop_connect_rate=0.2)
>>> m.train()
在nn. sequinential容器中创建,用于fast.ai等:
>>> import geffnet
>>> m = geffnet.mixnet_l(pretrained=True, drop_rate=0.25, drop_connect_rate=0.2, as_sequential=True)
脚本包括在
onnx_export.py )onnx_optimize.py或onnx_validate.py w/ --onnx-output-opt arg)onnx_validate.py )onnx_to_caffe.py )caffe2_validate.py )caffe2_benchmark.py )例如,导出Mobilenet-V3预估计的模型,然后运行ImageNet验证:
python onnx_export.py --model mobilenetv3_large_100 ./mobilenetv3_100.onnx
python onnx_validate.py /imagenet/validation/ --onnx-input ./mobilenetv3_100.onnx
这些脚本经过测试,该脚本是按照Pytorch 1.6和ONNX 1.7 W/ onnx运行时1.4的工作。 CAFFE2兼容导出现在需要导出脚本中提到的其他ARG(早期版本中不需要)。
config.py中的_EXPORTABLE Flag设置为true,否则用“相同” Conv激活的TF移植权重不能导出到ONNX。使用config.set_exportable(True) ,如onnx_export.py脚本中。