RetinaFace training checkpoints

Raw training/compression-sweep checkpoints from this project's private training pipeline, plus the deploy-ready exports built from them. Layout is checkpoints/<arch>/pytorch/<arch>_cN.zip (a plain PyTorch state_dict, one per compression-sweep cluster count, _float32 for the uncompressed baseline) and, once exported, checkpoints/<arch>/{onnx,tflite,tfjs,coreml}/<arch>_cN.zip (the corresponding ONNX / TFLite / TF.js / CoreML artifacts). Every pytorch/ zip contains exactly one file, always named checkpoint.pth.

Loading a checkpoint

import zipfile, torch

with zipfile.ZipFile("path/to/checkpoint.zip") as zf:
    with zf.open("checkpoint.pth") as f:
        state_dict = torch.load(f, map_location="cpu", weights_only=True)

Every backbone's pytorch checkpoints -- resnet50 included -- are linked from the checkpoint column of its table below.

ONNX exports (checkpoints/<arch>/onnx/<arch>_cN.zip, plus _float32.zip), TFJS exports (checkpoints/<arch>/tfjs/, plus _float32.zip) and TFLite exports (checkpoints/<arch>/tflite/, plus _float32.zip) exist for every backbone's best-mean-AP level, 256- and 2-cluster levels and selected (bold) level; float32 ONNX/TFLite/TFJS exist for every backbone, resnet50 included. CoreML exports (checkpoints/<arch>/coreml/<arch>_cN.zip) cover the same levels as ONNX, float32 included. Every backbone, resnet50 included, has all 14 PyTorch sweep points (2-8, 12, 16, 32, 64, 128, 256, float32).

backbone exported cluster counts (ONNX / TFJS) exported cluster counts (TFLite) exported cluster counts (CoreML)
mobilenetv1 float32, 2, 7, 64, 256 float32, 2, 7, 64, 256 float32, 2, 7, 64, 256
mobilenetv1_0.25 float32, 2, 12, 128, 256 float32, 2, 12, 128, 256 float32, 2, 12, 128, 256
mobilenetv1_0.50 float32, 2, 8, 12, 256 float32, 2, 8, 12, 256 float32, 2, 8, 12, 256
mobilenetv2 float32, 2, 5, 64, 256 float32, 2, 5, 64, 256 float32, 2, 5, 64, 256
resnet18 float32, 2, 5, 32, 256 float32, 2, 5, 32, 256 float32, 2, 5, 32, 256
resnet34 float32, 2, 4, 128, 256 float32, 2, 4, 128, 256 float32, 2, 4, 128, 256
resnet50 float32, 2, 4, 128, 256 float32, 2, 4, 128, 256 float32, 2, 4, 128, 256

Export verification

Every published ONNX, TFLite, TFJS and CoreML file has been checked against the PyTorch checkpoint it was exported from on the full 3226-image WIDER FACE val set (inference/export_check.py --format onnx|tflite|tfjs|coreml), on the same fixed 640x640 letterbox preprocessing. Each artifact was downloaded fresh from this repo, its sha256 compared with the checksum this repo reports for it, and then evaluated. Each cell below is the converted file's mean AP (%) and, in parentheses, its difference from the PyTorch reference run in the same script. The bold row for each backbone is its selected level, matching the bold row in that backbone's metrics table below.

backbone clusters PyTorch ONNX (Ξ”) TFLite (Ξ”) TFJS (Ξ”) CoreML (Ξ”)
mobilenetv1 2 60.80 60.84 (+0.04) 60.62 (-0.17) 60.80 (+0.02) 60.77 (-0.00)
mobilenetv1 7 71.46 71.43 (-0.03) 71.49 (+0.03) 71.44 (-0.01) 71.47 (-0.00)
mobilenetv1 64 72.61 72.61 (+0.00) 72.55 (-0.05) 72.63 (+0.03) 72.63 (+0.00)
mobilenetv1 256 72.48 72.49 (+0.01) 72.58 (+0.09) 72.51 (+0.02) 72.51 (-0.00)
mobilenetv1 float32 72.34 72.34 (-0.00) 72.38 (+0.04) 72.36 (+0.02) 72.35 (-0.00)
mobilenetv1_0.25 2 40.54 40.61 (+0.07) 40.01 (-0.55) 40.62 (+0.06) 40.57 (-0.00)
mobilenetv1_0.25 12 68.26 68.24 (-0.02) 68.47 (+0.21) 68.26 (+0.01) 68.26 (-0.00)
mobilenetv1_0.25 128 67.66 67.66 (+0.00) 67.58 (-0.07) 67.67 (+0.03) 67.65 (-0.00)
mobilenetv1_0.25 256 67.73 67.73 (-0.00) 67.88 (+0.16) 67.71 (-0.01) 67.73 (-0.00)
mobilenetv1_0.25 float32 68.15 68.16 (+0.01) 68.20 (+0.05) 68.10 (-0.05) 68.08 (-0.00)
mobilenetv1_0.50 2 46.65 46.66 (+0.01) 46.49 (-0.18) 46.66 (-0.01) 46.67 (-0.00)
mobilenetv1_0.50 8 68.97 68.98 (+0.01) 68.83 (-0.13) 68.96 (-0.01) 68.97 (+0.00)
mobilenetv1_0.50 12 69.28 69.28 (-0.00) 69.56 (+0.27) 69.27 (-0.02) 69.26 (-0.00)
mobilenetv1_0.50 256 70.32 70.32 (-0.00) 70.29 (-0.03) 70.34 (+0.02) 70.34 (+0.00)
mobilenetv1_0.50 float32 69.92 69.92 (-0.00) 69.87 (-0.06) 69.94 (+0.01) 69.94 (-0.00)
mobilenetv2 2 58.37 58.37 (+0.00) 58.53 (+0.18) 58.40 (+0.06) 58.35 (+0.00)
mobilenetv2 5 75.78 75.77 (-0.01) 75.66 (-0.13) 75.76 (-0.03) 75.81 (-0.00)
mobilenetv2 64 77.53 77.52 (-0.01) 77.50 (-0.03) 77.53 (+0.01) 77.53 (-0.00)
mobilenetv2 256 78.02 78.00 (-0.02) 77.98 (-0.02) 77.98 (-0.03) 77.97 (-0.00)
mobilenetv2 float32 77.93 77.92 (-0.01) 77.83 (-0.09) 77.89 (-0.04) 77.90 (+0.00)
resnet18 2 65.48 65.50 (+0.02) 64.10 (-1.38) 65.52 (+0.04) 65.50 (+0.00)
resnet18 5 75.58 75.58 (+0.00) 74.66 (-0.92) 75.58 (+0.01) 75.57 (-0.00)
resnet18 32 76.55 76.54 (-0.01) 76.54 (-0.00) 76.56 (+0.02) 76.57 (-0.00)
resnet18 256 76.91 76.92 (+0.01) 76.97 (+0.06) 76.90 (-0.01) 76.90 (-0.00)
resnet18 float32 76.57 76.57 (-0.00) 76.63 (+0.06) 76.56 (-0.01) 76.56 (+0.00)
resnet34 2 71.44 71.40 (-0.04) 70.83 (-0.57) 71.42 (+0.02) 71.41 (+0.00)
resnet34 4 77.28 77.29 (+0.01) 77.47 (+0.16) 77.29 (-0.02) 77.31 (+0.00)
resnet34 128 78.29 78.29 (-0.00) 78.14 (-0.15) 78.25 (-0.04) 78.25 (-0.00)
resnet34 256 78.29 78.28 (-0.01) 78.17 (-0.12) 78.30 (+0.01) 78.30 (-0.00)
resnet34 float32 78.37 78.36 (-0.01) 78.37 (-0.00) 78.39 (+0.02) 78.39 (-0.00)
resnet50 2 71.47 71.46 (-0.01) 71.04 (-0.43) 71.47 (-0.00) 71.50 (+0.00)
resnet50 4 78.06 78.05 (-0.01) 77.91 (-0.14) 78.05 (-0.00) 78.04 (+0.00)
resnet50 128 77.48 77.47 (-0.01) 77.35 (-0.13) 77.47 (-0.01) 77.47 (+0.00)
resnet50 256 77.39 77.39 (-0.00) 77.38 (-0.01) 77.39 (-0.00) 77.38 (+0.00)
resnet50 float32 80.14 80.14 (+0.00) 80.05 (-0.09) 80.14 (+0.00) 80.14 (+0.00)
format largest |mean-AP difference| vs PyTorch how it was run
ONNX 0.07% ONNX Runtime CUDA vs. a CUDA PyTorch reference
TFJS 0.06% @tensorflow/tfjs-node under Node.js (CPU) vs. a PyTorch reference (CUDA for resnet50, CPU for the other backbones)
TFLite 1.38% tf.lite.Interpreter (CPU) vs. a PyTorch reference (CUDA for resnet50, CPU for the other backbones)
CoreML 0.00% coremltools 9.0 on an Apple M1 Pro, CPU_AND_GPU compute unit (Apple GPU), PyTorch reference on MPS; CPU_ONLY not covered

ONNX and TFJS match PyTorch to within 0.07% everywhere they were checked and CoreML to within 0.00%. TFLite is the exception: it loses accuracy at low cluster counts (e.g. resnet18 at 2 clusters, -1.38%; at 5 clusters, -0.92%) -- prefer ONNX or TFJS when that matters. PyTorch differs by ~0.02% between CPU and CUDA, so differences below that are noise. AP here is the fixed-size-wrapper AP, so it is only comparable across the columns above, not to the variable-size AP in the per-backbone metrics tables further down.

Sizes and compression of the ONNX exports ("raw" = uncompressed model.onnx on disk; "zip" = the downloadable .zip; "compression ratio" = that backbone's float32 ONNX size divided by this row's size, computed separately for raw and zip -- raw shrinks only modestly since palettization mainly shrinks index redundancy that gzip exploits, not the graph's own tensor layout, while zip captures the real deployable-size win). The float32 rows are the uncompressed reference every other row is measured against; resnet50 and mobilenetv1_0.50 c12 raw sizes are listed only where measured:

backbone clusters ONNX size (raw/zip) compression ratio (raw/zip)
mobilenetv1 2 7.61 / 1.04 MB 2.58x / 14.98x
mobilenetv1 7 7.61 / 2.20 MB 2.58x / 7.08x
mobilenetv1 64 9.25 / 5.27 MB 2.12x / 2.96x
mobilenetv1 256 14.07 / 10.44 MB 1.39x / 1.49x
mobilenetv1 float32 19.60 / 15.58 MB 1.00x / 1.00x
mobilenetv1_0.25 2 3.53 / 0.31 MB 1.33x / 5.71x
mobilenetv1_0.25 12 3.62 / 0.57 MB 1.30x / 3.11x
mobilenetv1_0.25 128 4.30 / 1.36 MB 1.09x / 1.30x
mobilenetv1_0.25 256 4.51 / 1.56 MB 1.04x / 1.13x
mobilenetv1_0.25 float32 4.70 / 1.77 MB 1.00x / 1.00x
mobilenetv1_0.50 2 4.82 / 0.56 MB 1.99x / 11.29x
mobilenetv1_0.50 8 4.95 / 1.13 MB 1.94x / 5.59x
mobilenetv1_0.50 12 4.24 / 1.24 MB 2.27x / 5.10x
mobilenetv1_0.50 256 7.97 / 4.75 MB 1.21x / 1.33x
mobilenetv1_0.50 float32 9.61 / 6.32 MB 1.00x / 1.00x
mobilenetv2 2 6.54 / 0.97 MB 2.36x / 12.11x
mobilenetv2 5 6.74 / 1.71 MB 2.29x / 6.87x
mobilenetv2 64 9.07 / 5.25 MB 1.70x / 2.24x
mobilenetv2 256 12.33 / 8.51 MB 1.25x / 1.38x
mobilenetv2 float32 15.46 / 11.75 MB 1.00x / 1.00x
resnet18 2 15.16 / 2.02 MB 3.37x / 22.18x
resnet18 5 15.23 / 3.80 MB 3.35x / 11.79x
resnet18 32 15.89 / 8.71 MB 3.21x / 5.14x
resnet18 256 20.67 / 17.36 MB 2.47x / 2.58x
resnet18 float32 51.04 / 44.80 MB 1.00x / 1.00x
resnet34 2 25.36 / 3.46 MB 3.61x / 23.81x
resnet34 4 25.43 / 5.85 MB 3.60x / 14.08x
resnet34 128 30.18 / 24.17 MB 3.03x / 3.41x
resnet34 256 34.64 / 31.02 MB 2.64x / 2.66x
resnet34 float32 91.47 / 82.37 MB 1.00x / 1.00x

Per-file checksums (sha256 exactly as this repo reports them) and full Easy/Medium/Hard/mean AP:

resnet50 PyTorch checkpoints (14 files)

Real full-val AP through the fixed-size wrapper on CUDA; every zip's sha256 was compared with the checksum this repo reports (all 14 identical).

level size (MB) sha256 easy medium hard mean
2 14.7 7d3ddfc537f8999ffa2dd55954d62b54692d014d81d3868bf3f242ea743bb013 90.20 81.28 42.95 71.47
3 20.0 e76eb2c0689658029136b19a2b7bbcb4ac7c0df0e7d2d17c31301ec77885ce54 92.46 86.48 52.64 77.19
4 24.7 d30efad84ab432007b4cfae00a8b38f45408f4ad5bd6e40e72fe333ac515c9d3 92.62 87.59 53.95 78.05
5 27.0 8f1060a4f2fa127f5791470a3d958024f447bde1565fdf3fc5868593c64b6c33 93.30 88.02 55.17 78.83
6 29.6 42758d8a80041187f96b7bfed4f8d458c2eaf1aacc959ca525a3eaf5dad97d9c 93.18 88.11 55.79 79.03
7 32.1 bfa7fa7308da55c4360e709a2ac518b8e7f01d1b5e6ea5589e916a0efafe9a43 93.26 88.50 56.30 79.35
8 34.5 21aca85ed954ca0fd1c986231c786ffe25d8f5bd3be5d42935eba68aaa1d21f0 93.45 88.64 56.63 79.57
12 42.1 419abda4449d8810a745f895cead70654bfd48d129025bdd6eef50693dce3396 93.40 88.65 56.55 79.53
16 47.7 29e85bb92f9061c0c017c1b10d30d0abca6aa5395a30d4a05788409f1dbf7e5a 93.76 89.01 57.50 80.09
32 61.8 15be507db17b2430448129ce255cc3d6072ffb9086ba449eaeb5deaf1ac87ade 93.54 88.88 57.67 80.03
64 80.0 b8ffe62afc6952785b6edda94c394017428931638540776997a03fd4a529105a 93.60 89.05 57.91 80.19
128 102.7 17157a5208f9a88a7c2433f654659e5bfb52f41d158c5ebbd5488cfb7dbc0315 92.84 87.10 52.50 77.48
256 132.0 19ffdbbffa27742dd5b180e60ab9b69b42e65c3459f221e43faefed750f87be1 92.79 87.12 52.26 77.39
float32 101.7 01273cde7b1fa72d280e114ea6fe864f885a07c25a2654e76fc6518935970cf2 93.51 88.86 58.03 80.14
ONNX files (35), converted vs. PyTorch
backbone level size (MB) sha256 easy medium hard mean mean vs PyTorch
mobilenetv1 2 1.00 07795bc075619a6391fdcfd71dc58ddb15d4c4dc6f053e1b538b9d5da0df9a9e 80.84 68.68 32.99 60.84 +0.04
mobilenetv1 7 2.03 355698539f5ac23874143d733612965b141a1b709ceaa6efacaaf706a3dde7e5 87.82 80.25 46.23 71.43 -0.03
mobilenetv1 64 5.27 8fa54412c7c553601c5e03092d8a7713b64369881c2222f627d30b2d635698b6 89.14 81.40 47.30 72.61 +0.00
mobilenetv1 256 10.44 ce23fb0512301195f5f6fcbb4c6baa05bbf1badf7f5c4d326d317a357ea66240 89.15 81.44 46.88 72.49 +0.01
mobilenetv1 float32 15.58 7653e8403ebaa3d92d0a39410f451109c5e855777f2f63db5ea32ea222e7ffb5 88.76 81.12 47.14 72.34 -0.00
mobilenetv1_0.25 2 0.31 d95b93e5275fe92707bf19e01ecbd32c0561b8faa15e82ad6242f4ff1ec36b93 60.85 42.86 18.11 40.61 +0.07
mobilenetv1_0.25 12 0.54 6cdd3714190a520f107e924c7031a26dfc5825bead3fbe2ed27a419a52fb7de8 86.94 77.08 40.71 68.24 -0.02
mobilenetv1_0.25 128 1.36 529c9b90469f1ab7e6e186a5e89920f80bb3e3c01c8fc4572a03e1caa3afdaa1 86.15 76.38 40.45 67.66 +0.00
mobilenetv1_0.25 256 1.56 7f3a3f1ea0881faa8043b42fc0ad623d6d887b3700dcf7f4a7d8cf4bd481515f 86.24 76.37 40.57 67.73 -0.00
mobilenetv1_0.25 float32 1.77 3416c103477e161e3c5335bcf743cde66e58ae80f2c5724c4e34b8adc8c8108b 86.57 76.96 40.95 68.16 +0.01
mobilenetv1_0.50 2 0.54 ef66fb396635225376c3507e9316c7d7dacdf749eacf50cba5c8053921d31e4c 69.41 49.76 20.82 46.66 +0.01
mobilenetv1_0.50 8 1.05 d2f2f9bc79cc738d3e613f9e7ca7836a92ec7a365584bdd825971d2ac064e0e1 86.59 77.97 42.38 68.98 +0.01
mobilenetv1_0.50 12 1.24 f3bf1f14680b8b66e93e1c9b5acdce41885be31b459c664888ebcdba7f14f42a 86.52 78.21 43.11 69.28 -0.00
mobilenetv1_0.50 256 4.75 0e0c874fa671a5cfed3299198496ae51aa2b6c9c12bbd7605da560190605e114 87.33 79.33 44.29 70.32 -0.00
mobilenetv1_0.50 float32 6.32 832372391dccddabf2798694d322957c548fc14ff95ac12a981d7e5e5748d206 87.25 78.84 43.67 69.92 -0.00
mobilenetv2 2 0.93 95a2530b1fceca7c0080700c8a5506f62c285b927cf01a669dd911600cd07424 79.53 65.78 29.81 58.37 +0.00
mobilenetv2 5 1.65 60064edffd68a8310959b21dd3380b436cf1bc92b1b4d5a2bbc3dd6d1602a735 91.18 84.27 51.86 75.77 -0.01
mobilenetv2 64 5.24 52bd7d98cbf0578d27c5209324632107bb06d8ac18fc4c24261a703d9153c28a 91.73 85.79 55.05 77.52 -0.01
mobilenetv2 256 8.51 3a05f5fb9ba7eb0fc65b6a59ca447eee1a0cec2c63ca518189ff7a320de87d3a 91.88 86.23 55.88 78.00 -0.02
mobilenetv2 float32 11.75 9c24808bc360710df947bac609db54968b901ffa1f0999733042ba4dc4323982 91.96 86.41 55.37 77.92 -0.01
resnet18 2 1.90 9b6ea48344453ff32ac45711bc67c06e116c2e9a1d48796c4915340bff50139b 85.88 74.41 36.22 65.50 +0.02
resnet18 5 3.53 39e3d2a2a7b60f5965c54bb4538682f9f46b656a72885d3dd9c89f4e43c83144 91.22 84.41 51.11 75.58 +0.00
resnet18 32 8.71 1a01422385b4f4ddd71be97fe6e6c9cc5a98f609b57725434bc3321ddbabac3a 91.94 85.64 52.05 76.54 -0.01
resnet18 256 17.36 002fa8502905ab95bfd5ae15fb93a4c1dfcc8039bda2fb3f25b1250de75e434d 91.83 85.86 53.07 76.92 +0.01
resnet18 float32 44.80 4ddcc8542ae0381483e07bdc60a27c2c0d6493b8294edadb9ea5b632f9d76107 91.74 85.52 52.44 76.57 -0.00
resnet34 2 3.24 fa882c33b582f9297295890bce64d0dab392634d53debafbf4286ea0821d3696 89.06 81.19 43.94 71.40 -0.04
resnet34 4 5.42 9fdab1a90576f506bc3365b514aa6251b932f7911dc49a18df2a08f461d917f1 92.31 86.30 53.26 77.29 +0.01
resnet34 128 24.17 e48250d31d6eec17a0b2ec0c90b2210afebd5806fe880909cff103dc6e178e42 92.63 87.09 55.15 78.29 -0.00
resnet34 256 31.02 27c033302b87cc8a7b268dbe056967fab31765c354fb3b15b793a14026a14449 92.65 87.07 55.12 78.28 -0.01
resnet34 float32 82.38 50f46ed931ab672b1101b68717526ec383c03eaa8e730da25ca4e34106d70cf1 92.67 87.27 55.16 78.36 -0.01
resnet50 2 4.50 47c51a3e1e64cc3db9d7f986e64ed697bd5731fe20d9c53dd892ca2754b4545b 90.19 81.25 42.93 71.46 -0.01
resnet50 4 7.74 23691b05a3128740266175132d1544861c8f308dd184be6e120861f748b17db9 92.62 87.58 53.93 78.05 -0.01
resnet50 128 37.51 b03c1236ea04f5caa93d51f855236d036f251aef7c8196d679108d529123af01 92.82 87.10 52.49 77.47 -0.01
resnet50 256 50.64 de31d179cb992a60344950049261847e0fca0843b4c23699197c7f64d580355b 92.79 87.12 52.26 77.39 -0.00
resnet50 float32 101.63 15ed6d1d9bff807b86f6c7b21e6fa36cf9e3e4722e2e982830a7f6be85298bee 93.52 88.86 58.04 80.14 +0.00
TFLite files (35), converted vs. PyTorch
backbone level size (MB) sha256 easy medium hard mean mean vs PyTorch
mobilenetv1 2 1.16 b606927ccb2e0e5bdac2e66897e6bd223719e131f2e422bf010bff9b37bec2e0 80.74 68.42 32.70 60.62 -0.17
mobilenetv1 7 2.54 f19c3c98cdfbdc4aa817c33a40d681517c2ada33b1486f931583706bf01b0c95 88.02 80.37 46.07 71.49 +0.03
mobilenetv1 64 4.08 b8aa48a5e12f377ddee1436a51fea2ec534ebd0bd3e920030913ccf3b04d73ff 89.15 81.34 47.17 72.55 -0.05
mobilenetv1 256 4.08 04178feecae442db3954d5e295a0f653aad4aa8870154818d325c8bc64819df4 89.22 81.56 46.95 72.58 +0.09
mobilenetv1 float32 4.08 bb8e73de48284c11c6cb5da2996cab31c407162f7307a48a88410d743ed7a078 88.90 81.16 47.08 72.38 +0.04
mobilenetv1_0.25 2 0.31 eaa12858c647b77dd43d87c8ce08faa27c1fd6259234a2c469c9b779e94b0f78 60.01 42.18 17.83 40.01 -0.55
mobilenetv1_0.25 12 0.56 3a4e74babb9415ede38c217c0bd8b4ca128bb9917661b5e5ee309b287d9feb69 87.03 77.31 41.06 68.47 +0.21
mobilenetv1_0.25 128 0.60 97576d9b6951c22f68f3b7ae0df2148c598bcdd3f44983c7fae159b7a57a8db5 86.05 76.31 40.38 67.58 -0.07
mobilenetv1_0.25 256 0.60 17c97b442943dd290efdfb3166ac9c6aaab51f9171119c8c551cd813f19a9adb 86.20 76.55 40.89 67.88 +0.16
mobilenetv1_0.25 float32 0.60 3f4ff05bc53d5692f0fa6b6c1ca314192322f0e3d2140e7e852f3cb8db4203e5 86.47 77.02 41.11 68.20 +0.05
mobilenetv1_0.50 2 0.60 8dc265e4efe9a3b4b6a3a10a50939a97b3e54b8867e75279d1812f4576e7a2e5 69.20 49.54 20.73 46.49 -0.18
mobilenetv1_0.50 8 1.26 f0a7a85abb31e2b96eaec05551c9170e229a9b39c3b30cdd280b237710f197aa 86.77 77.82 41.91 68.83 -0.13
mobilenetv1_0.50 12 1.51 b39dc6b46ba8210fde4139135b34fad2bc3049f839da6ca4d5a0de631ce93b1a 86.70 78.42 43.56 69.56 +0.27
mobilenetv1_0.50 256 1.75 81c65f30559d04c7e856045be560593f238f22a609fd04b94050dbc46fe85aed 87.25 79.28 44.33 70.29 -0.03
mobilenetv1_0.50 float32 1.75 b781c49e7f360c8b648af5d4478c313dbbe03cd151c3ddb67e692a78900a5999 87.16 78.80 43.65 69.87 -0.06
mobilenetv2 2 1.04 4f25d5088533037406b4c9ef988b921fda05b17d23c43dec3f2be548b3e89650 79.62 66.00 29.97 58.53 +0.18
mobilenetv2 5 1.84 14cfc3547033c4a5ad7b40fe7c114e4b55050e67c46ddb6c758b3dc0598c1eb5 91.08 84.35 51.56 75.66 -0.13
mobilenetv2 64 3.18 0069a33766496a32804a339c7afda894bf894e9e1d6edd1074cb631890e73909 91.57 85.71 55.22 77.50 -0.03
mobilenetv2 256 3.19 c912a29dace400b53a6e033a18ebb4119c81d8c9d6c7839583d2d8d49169ae1a 91.90 86.15 55.89 77.98 -0.02
mobilenetv2 float32 3.19 b3b2b7be6bb812e324c60e4236578b449b90deef4b422c4e6488aeccca1128de 91.90 86.30 55.30 77.83 -0.09
resnet18 2 2.32 6746afeafc611f81b98786bd1110f4d8465b5d90e34ca9520705ddd9d4d534cb 84.18 72.74 35.38 64.10 -1.38
resnet18 5 4.69 e0bec4335d82ec48135d959a6e2d73aec7985537a1eab098682b388cd7ad77f2 90.63 83.66 49.68 74.66 -0.92
resnet18 32 9.85 393a192ef399a204de58153050682bebfc6e6167d012fb448f4168a3461c4d65 91.76 85.64 52.22 76.54 -0.00
resnet18 256 10.45 15e74ecb43d747ae7a5869738ac5a2e67849b05ca48de764a0b2cc180c679a3c 91.79 85.88 53.25 76.97 +0.06
resnet18 float32 10.38 09443e780f015a21732497f6d68ff84a34623df9342800c3372928a87e640989 91.75 85.60 52.54 76.63 +0.06
resnet34 2 4.07 0dc4bb063d2a162e73e173a9bb982e2265f6e128abfdffbd45c88931e99da675 88.47 80.66 43.36 70.83 -0.57
resnet34 4 7.37 285b0b318de4e80c34b50c8d1316708775fa4811d371e304bade17eac320d638 92.46 86.57 53.36 77.47 +0.16
resnet34 128 19.12 2020f74ff9e1aa8ac8a5e25e560ed62dc16647c32b3d348a06c6357285e79537 92.63 87.00 54.80 78.14 -0.15
resnet34 256 19.15 dc09171c7bba1821513a043e5204dcd05f04ff1c710e23d0256877d01dd9b866 92.49 86.93 55.08 78.17 -0.12
resnet34 float32 19.01 16839356888f4f177f54e1c3f54172c023a56f7774fab92840aac0874d4222af 92.65 87.28 55.17 78.37 -0.00
resnet50 2 5.51 d7c50283e69434dfe200a9e568458d706e382be1bdc39889fa35ab97d3341998 89.95 80.92 42.26 71.04 -0.43
resnet50 4 9.91 62588f2c4bbe9d5e9a1a72fd963f3c44c90ef3eae323c10e68ac1ed3e9bb2fbe 92.40 87.38 53.96 77.91 -0.14
resnet50 128 24.17 f9ceeb5269f7b6d51b955c7a1a32f2a436165bf1546a66c77a8ce32b8643cbd4 92.78 86.96 52.31 77.35 -0.13
resnet50 256 24.17 e87c986c585e11ea17a92656b8c6efb683ed39fbecfbf4839a6a78f61d896808 92.78 87.13 52.23 77.38 -0.01
resnet50 float32 23.42 99ba5e2eb838963a7795053a2cd1763d96c5d5fe1ca94f28ee098396ce158f32 93.37 88.78 58.00 80.05 -0.09
TFJS files (35), converted vs. PyTorch
backbone level size (MB) sha256 easy medium hard mean mean vs PyTorch
mobilenetv1 2 2.12 f45b8bddbfe70ea69d5d2f96bf4ae45707528631887a2842a1d490f2e58557a8 80.81 68.64 32.95 60.80 +0.02
mobilenetv1 7 5.29 48b7563078c695dc1d7a05dfd9333efb5b039ffd929ff4c3270b76277c7a89be 87.84 80.25 46.24 71.44 -0.01
mobilenetv1 64 7.77 fe1e13b32372e2d8e5a749677d4b885aaa24f7ccde353c81b30126f4c0be1043 89.17 81.42 47.31 72.63 +0.03
mobilenetv1 256 7.82 19c15a25aad2ddfe83f3cc5c7fbee67afdd106bfd1b745872c43ca3874bea6fa 89.14 81.46 46.92 72.51 +0.02
mobilenetv1 float32 7.82 423f073616b05c2846fc875f9d60c0d57a1015cca26fdfa2adeb9eda6ece9563 88.77 81.16 47.15 72.36 +0.02
mobilenetv1_0.25 2 0.33 934dc5664cd82cbc7d3adf5aebcc809faed44a620858478b149c935c6d35da03 60.87 42.87 18.11 40.62 +0.06
mobilenetv1_0.25 12 0.72 b40fd0ea26ab51ef2b2aadf00d668421dd5baa8902e82ddd1a96e48c0508fc8f 86.93 77.12 40.75 68.26 +0.01
mobilenetv1_0.25 128 0.94 1e12b78247adacdfd8436ab49403e85ec50a1d0a514629b3ab332256a208ea67 86.15 76.40 40.46 67.67 +0.03
mobilenetv1_0.25 256 0.94 10393c1175060419bc187b51f97222644f0d8eae1ee72efaf631cd412ed95765 86.23 76.36 40.56 67.71 -0.01
mobilenetv1_0.25 float32 0.94 9ba68b5a4d4d9493af2994283060eb6d25ce17d91f9499becfd0de6873e9ee64 86.54 76.87 40.89 68.10 -0.05
mobilenetv1_0.50 2 0.81 6335e395eb4e793bb6e99d658731e48321b649a31925e3c813f6423f1ac9ceef 69.40 49.76 20.82 46.66 -0.01
mobilenetv1_0.50 8 1.99 9d1169f1a2019d7a6de88a14dd11e975db17d8b95deb3b2deacaf730843e8e05 86.56 77.95 42.35 68.96 -0.01
mobilenetv1_0.50 12 2.39 6f79a80bbbd02e5ccf641f79da98f9d07200e0a8c24e7f1a8baf859757455bf7 86.51 78.21 43.09 69.27 -0.02
mobilenetv1_0.50 256 3.21 06e46fb64864d7413e3b48f5a777a22a4f6436d41dbb94d7cf9aaaf5d333f5e4 87.33 79.36 44.32 70.34 +0.02
mobilenetv1_0.50 float32 3.21 4bd78ac9c623b9a49d77927203361ffee91b05223702552611ae2f2785c672af 87.28 78.86 43.67 69.94 +0.01
mobilenetv2 2 1.59 a4c6d3d089bb82bd3a1466a695e9d5ad52f7e3a39ab020b2fd3da398943556e0 79.56 65.82 29.83 58.40 +0.06
mobilenetv2 5 3.16 3a91b18b12a6a7af66fe59ca44d4ab01542452d2c7abd1ce6d0a4b09d6ac9ebe 91.16 84.25 51.88 75.76 -0.03
mobilenetv2 64 5.86 dc8c23e4c600a321b414e410ffcbd945522e10bc6208f27df2897efd4b411911 91.73 85.80 55.08 77.53 +0.01
mobilenetv2 256 5.92 4cd4eeb0c0eaad8c46c8772483c3b4846e0667fdee0c325de9717ca92d464e70 91.83 86.20 55.89 77.98 -0.03
mobilenetv2 float32 5.92 b2b9bf0f5941ba77404ed9e47268fceb56e68585f02921db989084756bb6d134 91.95 86.38 55.35 77.89 -0.04
resnet18 2 5.06 0593b9bda466bcaefd9b6eef2c0a25beb2206826f2aed79545eee495b1622c29 85.90 74.43 36.23 65.52 +0.04
resnet18 5 10.92 862cdbc94759ec2352c0fecd1d4ca0b5c4f6c01fc26183a4eb4adf3b386dc309 91.22 84.41 51.12 75.58 +0.01
resnet18 32 21.75 c1247ebb56db6c4c850953065e146631576e2c1d57b245c3430af7fdda2354f0 91.96 85.68 52.05 76.56 +0.02
resnet18 256 22.39 ba013b09eaef5d4d69267e384cdf81f10d86e1b6cb17e2acfd91dd1cf645c16e 91.80 85.85 53.06 76.90 -0.01
resnet18 float32 22.39 f37cb4cef9462aaf7b280005ec485b4553beb2baa7e64b6ae69eca2c9c3e8027 91.73 85.51 52.43 76.56 -0.01
resnet34 2 9.09 4ab45fdb0ac1e0455fd78b5e45b72ed3555cf4e05f1ce918804425d39f58dedc 89.09 81.21 43.95 71.42 +0.02
resnet34 4 17.11 38c6831655f89909899ef75885f987b7755e703e4eaeae8ce2245340209a2f1e 92.30 86.31 53.25 77.29 -0.02
resnet34 128 41.08 3122c862b28e4e9a5a48159a49f4ab50b9c9e5501c216fa6e892ed72ace24003 92.58 87.05 55.12 78.25 -0.04
resnet34 256 41.11 7b7f1ce1a6c430992f4f6da86ed75ebc6766b21be3649e14a970febc65ccbd3d 92.67 87.09 55.14 78.30 +0.01
resnet34 float32 41.11 a30808ac628aaa209a4c9b36505336eef0e33a22abccf32db07529988687209f 92.67 87.31 55.18 78.39 +0.02
resnet50 2 13.05 17d5bcf4babe69608ac7afede6159cf1224d28671e803fa87e8e4ba9a59e5e2f 90.21 81.27 42.93 71.47 -0.00
resnet50 4 24.00 7b00bd5549b066a07aae8fe01ed13eff3853029fdf72bf1ca8242860162255ee 92.62 87.59 53.94 78.05 -0.00
resnet50 128 50.58 1b10f1fb4ebb8013df323207ac3ebab2c08f46cd9db714bb3e5298b7b4cfb1cd 92.82 87.09 52.49 77.47 -0.01
resnet50 256 50.62 5032e3ab53a202ecc46c705e9bec2a580664dc3968e304601e15fdb0f0385701 92.78 87.11 52.28 77.39 -0.00
resnet50 float32 50.76 909e5dca373dfd0bde8cc3d2cd74e14f72d75ab810d27c7c5e42109fd6248c3e 93.52 88.87 58.02 80.14 +0.00
CoreML file checksums (35), converted vs. PyTorch

AP is PyTorch / CoreML, run on the exact file bytes with the sha256 shown (identical to the checksum this repo reports).

backbone level easy (PT / CoreML) medium hard mean mean diff sha256 of the CoreML zip
mobilenetv1 2 80.80 / 80.80 68.59 / 68.59 32.91 / 32.91 60.77 / 60.77 -0.00 4f4fbfd8bd55e89fc28f54eb89f1df75d13292798e57433ae2ecfdf5dcb5bae1
mobilenetv1 7 87.86 / 87.86 80.28 / 80.28 46.26 / 46.26 71.47 / 71.47 -0.00 bb61f46a05755e21a88558bf26c0b980a255f313b748185783665151f93c4442
mobilenetv1 64 89.16 / 89.16 81.41 / 81.41 47.31 / 47.31 72.63 / 72.63 +0.00 a661ec425b3bc999d19243e15aeba6efbefbc760d8d5cd2c5d7f1fd1ed99097c
mobilenetv1 256 89.16 / 89.16 81.46 / 81.46 46.91 / 46.91 72.51 / 72.51 -0.00 bfe9dbe853e4f90425d144c3f76c6aed3ada72f1e447a1bfb0857f9b617df639
mobilenetv1 float32 88.75 / 88.75 81.14 / 81.14 47.15 / 47.15 72.35 / 72.35 -0.00 4a3761e1291d461daa983d48e7ea73ea43e6677488277c569340c83697da5407
mobilenetv1_0.25 2 60.81 / 60.81 42.80 / 42.80 18.09 / 18.09 40.57 / 40.57 -0.00 0926c0d250a3dd5558d70771fa625bfad772e894072398ff3990010bba7cf60c
mobilenetv1_0.25 12 86.92 / 86.92 77.11 / 77.11 40.75 / 40.75 68.26 / 68.26 -0.00 1ea5adc2d6d185f16ba964fd130c5eb2022682624c4fbc7b191825e01e5b867d
mobilenetv1_0.25 128 86.15 / 86.15 76.37 / 76.37 40.43 / 40.43 67.65 / 67.65 -0.00 876fea32c7cb3453ff030538335cfff6ab0a9961940b1999a6676d222f675f63
mobilenetv1_0.25 256 86.24 / 86.24 76.38 / 76.38 40.57 / 40.57 67.73 / 67.73 -0.00 809b9d88a9c3f9ea79a428091c9f7d449be0146cec56e68825cc7b998f55ee28
mobilenetv1_0.25 float32 86.49 / 86.49 76.88 / 76.88 40.88 / 40.88 68.08 / 68.08 -0.00 1a4d3e040e56e042abc6f8e00edae84cc1b0f7bf0c9ed673eefba87fdefa330c
mobilenetv1_0.50 2 69.43 / 69.43 49.76 / 49.76 20.82 / 20.82 46.67 / 46.67 -0.00 12183db2f61d7b65427eee8e31e69374da324946b436d3cc23131bbb2949dc5d
mobilenetv1_0.50 8 86.59 / 86.59 77.98 / 77.98 42.36 / 42.36 68.97 / 68.97 +0.00 67d686a5daff03947e8b23a823105bfba1ca03a2a7aa9fe9c0dc86bd62e4755b
mobilenetv1_0.50 12 86.50 / 86.50 78.20 / 78.20 43.08 / 43.08 69.26 / 69.26 -0.00 f85dba0b917265e3bf99de370157e9c3c6db4f40e22ade5b3abea4de860b3ecb
mobilenetv1_0.50 256 87.35 / 87.35 79.35 / 79.35 44.32 / 44.32 70.34 / 70.34 +0.00 34d1008deee26cca31f32db4f07eb2ee26eafc3a1226007fb0c51ada5478ca92
mobilenetv1_0.50 float32 87.29 / 87.29 78.86 / 78.86 43.67 / 43.67 69.94 / 69.94 -0.00 d7e8b87f3ef06330049f4c2c97d7e16b608398c6a97236503027915d126d2c19
mobilenetv2 2 79.53 / 79.53 65.77 / 65.77 29.76 / 29.76 58.35 / 58.35 +0.00 09d9b747670ab6c6bedf4125d4348b848c563b77b58f9a337705033dfd0f885d
mobilenetv2 5 91.20 / 91.20 84.31 / 84.31 51.91 / 51.91 75.81 / 75.81 -0.00 2c3b7b8db3126d18194201c0731163770213e361c1c198a16e487e3575e9ddd3
mobilenetv2 64 91.73 / 91.73 85.80 / 85.80 55.07 / 55.07 77.53 / 77.53 -0.00 84c1519a90226ef01228d55996422575e8f8046ffa0befa74b4c8519f03cbd23
mobilenetv2 256 91.83 / 91.83 86.20 / 86.20 55.88 / 55.88 77.97 / 77.97 -0.00 ee45e124c1de59344d5a8050ba0aca229dfae64e62fd54bbf5339d532df77a8d
mobilenetv2 float32 91.95 / 91.95 86.39 / 86.39 55.35 / 55.35 77.90 / 77.90 +0.00 a848d279b6a8e37b67a5b02680bc26cb3b17f5eb1ac67a5084c35bac0678956a
resnet18 2 85.83 / 85.83 74.43 / 74.43 36.24 / 36.24 65.50 / 65.50 +0.00 9399854179d3e2cd902125ae8281496c3bd48375e184094bc59d72a2fb97da1c
resnet18 5 91.20 / 91.20 84.39 / 84.39 51.10 / 51.10 75.57 / 75.57 -0.00 6b101cfb5c31a837460d16b96a08f22246ed01a61e89a5cb9e4f98fb377db129
resnet18 32 91.96 / 91.96 85.68 / 85.68 52.06 / 52.06 76.57 / 76.57 -0.00 f537b7072e9445687aa0d48eb1591e869ea860066ee70a3af68dfbf42b5038dd
resnet18 256 91.80 / 91.80 85.85 / 85.85 53.05 / 53.05 76.90 / 76.90 -0.00 8c8dfd32125b88b53e7bfbb3f461582b98cb60f1b6d29eb4921b5c6b6637d6db
resnet18 float32 91.73 / 91.73 85.51 / 85.51 52.43 / 52.43 76.56 / 76.56 +0.00 40ea36fc1849636232e06d36dbd494b1307cce7e5926589ba622c99c468e2561
resnet34 2 89.10 / 89.10 81.19 / 81.19 43.95 / 43.95 71.41 / 71.41 +0.00 7627959075f705fdc0103780c5dce66532c8822d9c1dc670f93eb89be8b1d771
resnet34 4 92.34 / 92.34 86.33 / 86.33 53.26 / 53.26 77.31 / 77.31 +0.00 bc7470bec7f9300e3e6adacf5c5cf6a4307015cf93ae19d18709216a0028ae87
resnet34 128 92.59 / 92.59 87.06 / 87.06 55.10 / 55.10 78.25 / 78.25 -0.00 5067139a0ee9996c1c93c92e4ea73d141c9d9820fb6858cf8f2d0a585d47019f
resnet34 256 92.67 / 92.67 87.11 / 87.11 55.14 / 55.14 78.30 / 78.30 -0.00 b033441a00e465e4f39c5f9e89c4870a6b5d5756ab21d20e9b6b8cafddc90bbd
resnet34 float32 92.67 / 92.67 87.31 / 87.31 55.19 / 55.19 78.39 / 78.39 -0.00 5f7fd21b84f2c2754402e65ecdf45742ac114dd92ab0dc56e883e4d7dba74a43
resnet50 2 90.22 / 90.22 81.30 / 81.30 42.97 / 42.97 71.50 / 71.50 +0.00 c164c8257fc8d4010540c3664a49e357797eb170794e8b7d7b38ffa32d4943f3
resnet50 4 92.61 / 92.61 87.59 / 87.59 53.92 / 53.92 78.04 / 78.04 +0.00 85a398ec8366c8a05aac31f818384b3a7384e25849b7d63c91ae66f8d4da8716
resnet50 128 92.82 / 92.82 87.10 / 87.10 52.48 / 52.48 77.47 / 77.47 +0.00 29801f0d2c2ba6b13a3eb3336a78a0fbf34818fd750ff9816d124672ca0e9afe
resnet50 256 92.78 / 92.78 87.11 / 87.11 52.27 / 52.27 77.38 / 77.38 +0.00 8f40a8e2ce4dabac9d15cf3fe364a3fcb540fef94ac495118e66e4b8b9cb25ac
resnet50 float32 93.52 / 93.52 88.88 / 88.88 58.03 / 58.03 80.14 / 80.14 +0.00 d8a981414d884e161109d206843b7f8dcb6dc4252b099c326bf6b4bea8fe67ff

To check a file yourself: download it, sha256sum it and compare with the value above, then run inference/export_check.py --format <fmt> --network <backbone> --hf-repo azemel/retinaface-xs --hf-level <level> (ONNX needs --onnx-provider CPU|CUDA, CoreML needs --compute-units and macOS).

CoreML verification

Every exported CoreML file has been verified against its PyTorch source on the full 3226-image WIDER FACE val set (inference/export_check.py --format coreml, the same fixed 640x640 letterboxed input as the ONNX check above; inference/validate_coreml.sh re-checks the published files straight from this repo). PyTorch vs. CoreML mean AP is identical (0.00%) at all 35 exported levels below on CPU_AND_GPU (the GPU, "MPS" on Apple Silicon), and also on CPU_ONLY for the 27 rows marked GPU + CPU. The CoreML input is a native RGB ImageType; the exported graph permutes it to the BGR order the checkpoints were trained on.

GPU caveat, and why the 128/256-cluster CoreML files are large: on the CoreML GPU path a per-channel-palettized dense spatial (3x3) conv is wrong when its index table is 2-, 4- or 8-bit wide (CPU is exact at every width). So those layers never get such a table: they get a 1-, 3- or 6-bit table (the cluster count rounded up to a supported width), and stay float32 above 64 clusters. The 128- and 256-cluster CoreML packages are therefore close to uncompressed; lower levels compress as expected. 1x1 and depthwise convs are unaffected.

backbone clusters mean AP PyTorch mean AP CoreML diff zip on HF (MB) unpacked (MB) verified (full val)
mobilenetv1 2 60.77 60.77 +0.00 0.73 1.54 GPU + CPU
mobilenetv1 7 71.47 71.47 +0.00 1.94 2.99 GPU + CPU
mobilenetv1 64 72.63 72.63 +0.00 5.08 7.16 GPU + CPU
mobilenetv1 256 72.51 72.51 +0.00 10.49 14.34 GPU + CPUΒΉ
mobilenetv1 float32 72.35 72.35 +0.00 15.45 18.59 GPUΒ²
mobilenetv1_0.25 2 40.57 40.57 +0.00 0.16 0.96 GPU + CPU
mobilenetv1_0.25 12 68.26 68.26 +0.00 0.45 2.54 GPU + CPUΒΉ
mobilenetv1_0.25 128 67.65 67.65 +0.00 1.29 3.77 GPU + CPUΒΉ
mobilenetv1_0.25 256 67.73 67.73 +0.00 1.44 3.69 GPU + CPUΒΉ
mobilenetv1_0.25 float32 68.08 68.08 +0.00 1.65 3.69 GPUΒ²
mobilenetv1_0.50 2 46.67 46.67 +0.00 0.35 1.16 GPU + CPU
mobilenetv1_0.50 8 68.97 68.97 +0.00 0.91 1.85 GPU + CPU
mobilenetv1_0.50 12 69.26 69.26 +0.00 1.21 3.56 GPUΒ²
mobilenetv1_0.50 256 70.34 70.34 +0.00 4.81 8.28 GPU + CPUΒΉ
mobilenetv1_0.50 float32 69.94 69.94 +0.00 6.20 8.60 GPUΒ²
mobilenetv2 2 58.35 58.35 +0.00 0.67 1.52 GPU + CPU
mobilenetv2 5 75.81 75.81 +0.00 1.56 2.86 GPU + CPU
mobilenetv2 64 77.53 77.53 +0.00 5.06 7.26 GPU + CPU
mobilenetv2 256 77.97 77.97 +0.00 8.57 12.64 GPU + CPUΒΉ
mobilenetv2 float32 77.90 77.90 +0.00 11.63 14.47 GPUΒ²
resnet18 2 65.50 65.50 +0.00 1.46 2.42 GPU + CPU
resnet18 5 75.57 75.57 +0.00 3.76 5.69 GPU + CPU
resnet18 32 76.57 76.57 +0.00 9.23 12.58 GPU + CPU
resnet18 256 76.90 76.90 +0.00 22.53 49.95 GPU + CPUΒΉ
resnet18 float32 76.56 76.56 +0.00 44.66 50.02 GPUΒ²
resnet34 2 71.41 71.41 +0.00 2.56 3.76 GPU + CPU
resnet34 4 77.31 77.31 +0.00 5.84 9.58 GPU + CPUΒΉ
resnet34 128 78.25 78.25 +0.00 34.49 90.56 GPU + CPUΒΉ
resnet34 256 78.30 78.30 +0.00 40.71 90.39 GPU + CPUΒΉ
resnet34 float32 78.39 78.39 +0.00 82.21 90.46 GPUΒ²
resnet50 2 71.50 71.50 +0.00 3.61 4.65 GPU + CPU
resnet50 4 78.04 78.04 +0.00 7.48 10.27 GPU + CPU
resnet50 128 77.47 77.47 +0.00 44.50 93.81 GPU + CPU
resnet50 256 77.38 77.38 +0.00 56.94 92.02 GPU + CPU
resnet50 float32 80.14 80.14 +0.00 101.45 111.09 GPUΒ²

Sizes are in MB (1 MB = 10^6 bytes), measured from the published files: the zip as stored on HF, and the unpacked model.mlpackage inside it.

Β² Added later (float32 of every backbone, and mobilenetv1_0.50 at 12 clusters): verified on the GPU unit on the full val set; CPU_ONLY has not been run for these yet.

ΒΉ Rebuilt for the GPU fix above: the published file was verified on the GPU on the full val set; its CPU result was measured on the previous build of the same weights (palettization is lossless, so the CPU output is unchanged).

CoreML sizes and compression

Sizes of the published CoreML exports ("raw" = the unpacked model.mlpackage on disk, all files inside the zip; "zip" = the downloadable .zip; 1 MB = 10^6 bytes). "Compression ratio" = that backbone's float32 CoreML size divided by this row's size, computed separately for raw and zip. The float32 rows are the uncompressed reference every other row is measured against. These are measured file sizes, unlike the "est. size" column in the metrics tables below, which is a theoretical weight-only estimate.

backbone clusters CoreML size (raw/zip) compression ratio (raw/zip)
mobilenetv1 2 1.54 / 0.73 MB 12.08x / 21.31x
mobilenetv1 7 2.99 / 1.94 MB 6.22x / 7.95x
mobilenetv1 64 7.16 / 5.08 MB 2.60x / 3.04x
mobilenetv1 256 14.34 / 10.49 MB 1.30x / 1.47x
mobilenetv1 float32 18.59 / 15.45 MB 1.00x / 1.00x
mobilenetv1_0.25 2 0.96 / 0.16 MB 3.83x / 10.28x
mobilenetv1_0.25 12 2.54 / 0.45 MB 1.45x / 3.67x
mobilenetv1_0.25 128 3.77 / 1.29 MB 0.98x / 1.28x
mobilenetv1_0.25 256 3.69 / 1.44 MB 1.00x / 1.15x
mobilenetv1_0.25 float32 3.69 / 1.65 MB 1.00x / 1.00x
mobilenetv1_0.50 2 1.16 / 0.35 MB 7.40x / 17.64x
mobilenetv1_0.50 8 1.85 / 0.91 MB 4.64x / 6.84x
mobilenetv1_0.50 12 3.56 / 1.21 MB 2.42x / 5.12x
mobilenetv1_0.50 256 8.28 / 4.81 MB 1.04x / 1.29x
mobilenetv1_0.50 float32 8.60 / 6.20 MB 1.00x / 1.00x
mobilenetv2 2 1.52 / 0.67 MB 9.51x / 17.39x
mobilenetv2 5 2.86 / 1.56 MB 5.07x / 7.46x
mobilenetv2 64 7.26 / 5.06 MB 1.99x / 2.30x
mobilenetv2 256 12.64 / 8.57 MB 1.14x / 1.36x
mobilenetv2 float32 14.47 / 11.63 MB 1.00x / 1.00x
resnet18 2 2.42 / 1.46 MB 20.67x / 30.59x
resnet18 5 5.69 / 3.76 MB 8.79x / 11.88x
resnet18 32 12.58 / 9.23 MB 3.97x / 4.84x
resnet18 256 49.95 / 22.53 MB 1.00x / 1.98x
resnet18 float32 50.02 / 44.66 MB 1.00x / 1.00x
resnet34 2 3.76 / 2.56 MB 24.09x / 32.05x
resnet34 4 9.58 / 5.84 MB 9.44x / 14.07x
resnet34 128 90.56 / 34.49 MB 1.00x / 2.38x
resnet34 256 90.39 / 40.71 MB 1.00x / 2.02x
resnet34 float32 90.46 / 82.21 MB 1.00x / 1.00x
resnet50 2 4.65 / 3.61 MB 23.88x / 28.08x
resnet50 4 10.27 / 7.48 MB 10.81x / 13.56x
resnet50 128 93.81 / 44.50 MB 1.18x / 2.28x
resnet50 256 92.02 / 56.94 MB 1.21x / 1.78x
resnet50 float32 111.09 / 101.45 MB 1.00x / 1.00x

CoreML: AP vs. measured size

CoreML models: easy, medium and hard AP vs. measured zipped package size, log-log axes, one line per backbone

This graph is based on the CoreML conversion, not on the PyTorch checkpoints: every point is one published CoreML model (checkpoints/<arch>/coreml/<arch>_<level>.zip, exported with inference/export_coreml.py, coremltools 9.0). The AP is measured on that converted model itself -- its own easy / medium / hard AP from the macOS validation above (Apple GPU, fixed 640x640 letterbox, full val set) -- and the x-axis is the measured size of the published .zip from the size table above, not an estimate. Easy, medium and hard are never averaged; all three panels share the same axes, both logarithmic. The ringed dot is the selected level and the diamond is the float32 baseline. Also in assets/: the log-x version, the same plots against the unpacked package size (coreml_ap_vs_size_raw_loglog_*), dark variants of each, and the underlying data as coreml_ap_vs_size.csv.

Accuracy vs. size

Easy, medium and hard AP on WIDER FACE val vs. estimated model size, log-log axes, one line per backbone

This graph is based on the PyTorch checkpoints (the training pipeline's evaluation and its estimated weight size, as in the tables below), not on any converted format. The three WIDER FACE metrics -- easy (7,211 faces), medium (13,319) and hard (31,958) -- each against the estimated weight size in MB, in their own panel; both axes logarithmic and all three panels on the same x and y axes. One line per backbone; each dot is a compression level (2-256 clusters); the ringed dot is the selected level and the diamond is the float32 baseline. Like the tables below, this is the variable-size AP, not the fixed-size verification AP above.

mobilenetv1

clusters easy medium hard mean avg. metric drop vs float32 est. size (MB) compression ratio checkpoint
float32 0.9059 0.8913 0.8394 0.8789 β€” 15.87 1.00x mobilenetv1_float32.zip
256 0.9072 0.8929 0.8393 0.8798 +0.10% 16.01 0.99x mobilenetv1_c256.zip
128 0.9062 0.8931 0.8395 0.8796 +0.09% 9.53 1.67x mobilenetv1_c128.zip
64 0.9081 0.8935 0.8403 0.8806 +0.20% 6.04 2.63x mobilenetv1_c64.zip
32 0.9064 0.8934 0.8416 0.8805 +0.19% 4.05 3.91x mobilenetv1_c32.zip
16 0.9057 0.8906 0.8357 0.8773 -0.17% 2.81 5.64x mobilenetv1_c16.zip
12 0.9044 0.8893 0.8380 0.8772 -0.18% 2.63 6.04x mobilenetv1_c12.zip
8 0.9034 0.8897 0.8359 0.8763 -0.29% 1.95 8.15x mobilenetv1_c8.zip
7 0.9037 0.8881 0.8279 0.8733 -0.64% 1.90 8.36x mobilenetv1_c7.zip
6 0.8943 0.8796 0.8233 0.8657 -1.49% 1.85 8.57x mobilenetv1_c6.zip
5 0.8985 0.8837 0.8253 0.8692 -1.10% 1.81 8.79x mobilenetv1_c5.zip
4 0.8850 0.8705 0.8145 0.8567 -2.52% 1.27 12.53x mobilenetv1_c4.zip
3 0.8764 0.8606 0.8018 0.8462 -3.71% 1.22 13.01x mobilenetv1_c3.zip
2 0.8224 0.8091 0.7291 0.7869 -10.47% 0.68 23.35x mobilenetv1_c2.zip

mobilenetv1_0.25

clusters easy medium hard mean avg. metric drop vs float32 est. size (MB) compression ratio checkpoint
float32 0.8848 0.8701 0.8040 0.8530 β€” 1.63 1.00x mobilenetv1_0.25_float32.zip
256 0.8876 0.8738 0.8068 0.8561 +0.36% 3.79 0.43x mobilenetv1_0.25_c256.zip
128 0.8887 0.8744 0.8072 0.8568 +0.44% 2.06 0.79x mobilenetv1_0.25_c128.zip
64 0.8841 0.8711 0.8077 0.8543 +0.16% 1.17 1.40x mobilenetv1_0.25_c64.zip
32 0.8816 0.8661 0.8040 0.8506 -0.28% 0.70 2.34x mobilenetv1_0.25_c32.zip
16 0.8831 0.8670 0.8026 0.8509 -0.24% 0.44 3.73x mobilenetv1_0.25_c16.zip
12 0.8870 0.8688 0.8037 0.8531 +0.02% 0.38 4.24x mobilenetv1_0.25_c12.zip
8 0.8769 0.8633 0.7850 0.8417 -1.32% 0.28 5.79x mobilenetv1_0.25_c8.zip
7 0.8711 0.8544 0.7915 0.8390 -1.64% 0.27 6.08x mobilenetv1_0.25_c7.zip
6 0.8599 0.8439 0.7671 0.8236 -3.44% 0.25 6.39x mobilenetv1_0.25_c6.zip
5 0.8628 0.8473 0.7704 0.8268 -3.06% 0.24 6.73x mobilenetv1_0.25_c5.zip
4 0.8517 0.8341 0.7393 0.8083 -5.23% 0.18 9.12x mobilenetv1_0.25_c4.zip
3 0.7476 0.7410 0.6868 0.7251 -14.99% 0.17 9.84x mobilenetv1_0.25_c3.zip
2 0.6544 0.6004 0.4698 0.5749 -32.60% 0.10 15.93x mobilenetv1_0.25_c2.zip

mobilenetv1_0.50

clusters easy medium hard mean avg. metric drop vs float32 est. size (MB) compression ratio checkpoint
float32 0.8944 0.8798 0.8222 0.8654 β€” 6.32 1.00x mobilenetv1_0.50_float32.zip
256 0.8945 0.8798 0.8263 0.8669 +0.17% 8.24 0.77x mobilenetv1_0.50_c256.zip
128 0.8932 0.8788 0.8213 0.8644 -0.12% 4.74 1.34x mobilenetv1_0.50_c128.zip
64 0.8915 0.8769 0.8222 0.8635 -0.22% 2.88 2.19x mobilenetv1_0.50_c64.zip
32 0.8917 0.8768 0.8242 0.8642 -0.14% 1.86 3.40x mobilenetv1_0.50_c32.zip
16 0.8940 0.8790 0.8198 0.8643 -0.14% 1.25 5.06x mobilenetv1_0.50_c16.zip
12 0.8856 0.8692 0.8155 0.8568 -1.00% 1.15 5.52x mobilenetv1_0.50_c12.zip
8 0.8873 0.8729 0.8165 0.8589 -0.75% 0.85 7.47x mobilenetv1_0.50_c8.zip
7 0.8797 0.8642 0.8087 0.8509 -1.68% 0.82 7.71x mobilenetv1_0.50_c7.zip
6 0.8778 0.8629 0.7999 0.8468 -2.15% 0.79 7.96x mobilenetv1_0.50_c6.zip
5 0.8779 0.8600 0.8002 0.8460 -2.24% 0.77 8.23x mobilenetv1_0.50_c5.zip
4 0.8579 0.8406 0.7681 0.8222 -4.99% 0.55 11.56x mobilenetv1_0.50_c4.zip
3 0.8460 0.8259 0.7492 0.8070 -6.75% 0.52 12.14x mobilenetv1_0.50_c3.zip
2 0.7733 0.7270 0.6098 0.7034 -18.73% 0.30 21.14x mobilenetv1_0.50_c2.zip

mobilenetv2

clusters easy medium hard mean avg. metric drop vs float32 est. size (MB) compression ratio checkpoint
float32 0.9174 0.9104 0.8642 0.8973 β€” 11.93 1.00x mobilenetv2_float32.zip
256 0.9165 0.9091 0.8592 0.8949 -0.27% 21.03 0.57x mobilenetv2_c256.zip
128 0.9184 0.9089 0.8586 0.8953 -0.23% 11.69 1.02x mobilenetv2_c128.zip
64 0.9211 0.9121 0.8621 0.8984 +0.12% 6.84 1.75x mobilenetv2_c64.zip
32 0.9203 0.9125 0.8606 0.8978 +0.05% 4.22 2.82x mobilenetv2_c32.zip
16 0.9110 0.9028 0.8496 0.8878 -1.06% 2.74 4.36x mobilenetv2_c16.zip
12 0.9131 0.9043 0.8524 0.8899 -0.83% 2.45 4.86x mobilenetv2_c12.zip
8 0.9180 0.9080 0.8562 0.8941 -0.36% 1.81 6.61x mobilenetv2_c8.zip
7 0.9117 0.9056 0.8513 0.8895 -0.87% 1.74 6.87x mobilenetv2_c7.zip
6 0.9161 0.9080 0.8479 0.8907 -0.74% 1.67 7.16x mobilenetv2_c6.zip
5 0.9181 0.9044 0.8530 0.8918 -0.62% 1.60 7.48x mobilenetv2_c5.zip
4 0.9044 0.8929 0.8341 0.8772 -2.25% 1.16 10.31x mobilenetv2_c4.zip
3 0.8919 0.8788 0.8229 0.8645 -3.66% 1.09 10.98x mobilenetv2_c3.zip
2 0.8563 0.8352 0.7504 0.8140 -9.29% 0.65 18.40x mobilenetv2_c2.zip

resnet18

clusters easy medium hard mean avg. metric drop vs float32 est. size (MB) compression ratio checkpoint
float32 0.9151 0.9102 0.8647 0.8967 β€” 45.84 1.00x resnet18_float32.zip
256 0.9192 0.9128 0.8686 0.9002 +0.39% 17.46 2.62x resnet18_c256.zip
128 0.9157 0.9121 0.8669 0.8983 +0.18% 13.05 3.51x resnet18_c128.zip
64 0.9192 0.9146 0.8682 0.9006 +0.44% 10.12 4.53x resnet18_c64.zip
32 0.9214 0.9166 0.8696 0.9025 +0.65% 7.95 5.77x resnet18_c32.zip
16 0.9206 0.9141 0.8675 0.9007 +0.46% 6.14 7.46x resnet18_c16.zip
12 0.9236 0.9150 0.8661 0.9015 +0.54% 6.05 7.58x resnet18_c12.zip
8 0.9217 0.9140 0.8646 0.9001 +0.39% 4.53 10.13x resnet18_c8.zip
7 0.9217 0.9143 0.8635 0.8998 +0.35% 4.50 10.18x resnet18_c7.zip
6 0.9187 0.9108 0.8642 0.8979 +0.14% 4.48 10.23x resnet18_c6.zip
5 0.9217 0.9116 0.8640 0.8991 +0.27% 4.46 10.29x resnet18_c5.zip
4 0.9118 0.9055 0.8592 0.8922 -0.50% 3.00 15.27x resnet18_c4.zip
3 0.9070 0.8980 0.8478 0.8843 -1.38% 2.98 15.39x resnet18_c3.zip
2 0.8798 0.8699 0.7949 0.8482 -5.40% 1.52 30.08x resnet18_c2.zip

resnet34

clusters easy medium hard mean avg. metric drop vs float32 est. size (MB) compression ratio checkpoint
float32 0.9414 0.9310 0.8874 0.9199 β€” 84.40 1.00x resnet34_float32.zip
256 0.9424 0.9320 0.8872 0.9205 +0.06% 30.75 2.74x resnet34_c256.zip
128 0.9412 0.9324 0.8891 0.9209 +0.10% 23.32 3.62x resnet34_c128.zip
64 0.9421 0.9323 0.8881 0.9208 +0.10% 18.28 4.62x resnet34_c64.zip
32 0.9400 0.9320 0.8891 0.9204 +0.05% 14.45 5.84x resnet34_c32.zip
16 0.9370 0.9285 0.8856 0.9170 -0.32% 11.21 7.53x resnet34_c16.zip
12 0.9393 0.9287 0.8836 0.9172 -0.30% 11.06 7.63x resnet34_c12.zip
8 0.9415 0.9318 0.8872 0.9202 +0.03% 8.28 10.19x resnet34_c8.zip
7 0.9389 0.9281 0.8855 0.9175 -0.27% 8.24 10.24x resnet34_c7.zip
6 0.9384 0.9292 0.8842 0.9173 -0.29% 8.20 10.29x resnet34_c6.zip
5 0.9377 0.9272 0.8801 0.9150 -0.54% 8.17 10.33x resnet34_c5.zip
4 0.9343 0.9257 0.8815 0.9139 -0.66% 5.49 15.36x resnet34_c4.zip
3 0.9286 0.9178 0.8688 0.9050 -1.62% 5.46 15.47x resnet34_c3.zip
2 0.9152 0.9024 0.8458 0.8878 -3.49% 2.78 30.31x resnet34_c2.zip

resnet50

clusters easy medium hard mean avg. metric drop vs float32 est. size (MB) compression ratio checkpoint
float32 0.9483 0.9384 0.8939 0.9269 β€” 104.12 1.00x resnet50_float32.zip
256 0.9391 0.9326 0.8871 0.9196 -0.79% 54.60 1.91x resnet50_c256.zip
128 0.9355 0.9297 0.8882 0.9178 -0.98% 37.15 2.80x resnet50_c128.zip
64 0.9301 0.9253 0.8861 0.9138 -1.41% 26.80 3.88x resnet50_c64.zip
32 0.9262 0.9248 0.8850 0.9120 -1.60% 20.01 5.20x resnet50_c32.zip
16 0.9233 0.9224 0.8840 0.9099 -1.83% 14.98 6.95x resnet50_c16.zip
12 0.9234 0.9222 0.8841 0.9099 -1.83% 14.54 7.16x resnet50_c12.zip
8 0.9223 0.9226 0.8849 0.9100 -1.83% 10.85 9.60x resnet50_c8.zip
7 0.9175 0.9192 0.8799 0.9055 -2.30% 10.74 9.70x resnet50_c7.zip
6 0.9241 0.9212 0.8823 0.9092 -1.90% 10.63 9.80x resnet50_c6.zip
5 0.9260 0.9239 0.8822 0.9107 -1.74% 10.52 9.90x resnet50_c5.zip
4 0.9129 0.9149 0.8771 0.9017 -2.72% 7.16 14.54x resnet50_c4.zip
3 0.9099 0.9115 0.8734 0.8983 -3.09% 7.05 14.77x resnet50_c3.zip
2 0.9036 0.9004 0.8410 0.8817 -4.88% 3.69 28.21x resnet50_c2.zip
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Space using azemel/retinaface-xs 1