File size: 5,423 Bytes
2236bcc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
---
license: mit
tags:
  - object-detection
  - yolox
  - onnx
  - int8
  - coco
  - fpga
language: en
library_name: onnxruntime
pipeline_tag: object-detection
---

# YOLOX-Nano ReLU (MIT) β€” work-in-progress training

A YOLOX-Nano variant with **ReLU activations and no depthwise convolutions**,
**trained from random initialisation on COCO 2017 by Pablo Mendoza
(`@thefalley`)** on his own server (NVIDIA GTX 1050 Ti, 4 GB VRAM). The
weights, the ONNX export pipeline, the INT8 quantization, the decoder and
all inference scripts in this repository are original work, released under
the MIT License.

The training architecture is `yolox_nano_ti_lite` from TexasInstruments'
`edgeai-yolox` repository β€” used as a build tool only, **not redistributed**
here. See `NOTICE.md` for the full provenance chain.

## Training status (live)

| | |
|---|---|
| Current epoch | **1 / 300** |
| AP @ IoU=0.5:0.95 | *** (will be measured at validation milestones) |
| Hardware | GTX 1050 Ti, 4 GB VRAM (own server, no cloud) |
| Started | 2026-05-10 |
| Last update | 2026-05-11 |
| Status | πŸ”„ Training in progress |
| Target | epoch 300, target mAP@0.5:0.95 β‰ˆ 0.26 (TI baseline for the same architecture) |

> **This is an early-checkpoint release** intended to validate the full
> pipeline (PTH β†’ ONNX β†’ INT8 β†’ inference) end-to-end. Detection quality
> will improve substantially as training progresses; the repository will
> be updated incrementally with later checkpoints.

## Files

| File | Size | SHA-256 |
|---|---:|---|
| `yolox_nano_relu_float.onnx`     | *** | *** |
| `yolox_nano_relu_int8_qop.onnx`  | *** | *** |

## Architecture

| | |
|---|---|
| Family | YOLOX-Nano (Megvii, 2021) with the TI ti-lite modifications |
| Depth multiplier | 0.33 |
| Width multiplier | 0.25 |
| Parameters | ~1.9 M |
| Activation | **ReLU** (every Conv block; no SiLU) |
| Convolutions | **Regular Conv2D only** (no depthwise separable) |
| Input | 1Γ—3Γ—416Γ—416, RGB, NCHW |
| Output (when exported with `--no-onnxsim`) | single tensor `(1, N, 85)` with `[cx, cy, w, h, obj, class_0..class_79]` already in input-pixel coords, anchor-free YOLOX-style |
| Quantization | Per-tensor INT8 (W symmetric, A asymmetric); bias INT32 |

These design choices are deliberate to match the operator set of an
INT8 FPGA DPU (Xilinx ZedBoard XC7Z020) that supports Conv2D + ReLU/Leaky
+ Add + Concat + MaxPool + Resize + Transpose only.

## Performance

| Metric | FP32 | INT8 | Reference (TI baseline) |
|---|---|---|---|
| AP @ IoU=0.5:0.95 | *** | *** | 0.261 |
| AP @ IoU=0.5      | *** | *** | 0.418 |

Reference numbers are TI's published metrics for the fully-trained
yolox_nano_ti_lite (300 epochs). Our weights are still being trained;
intermediate metrics will appear here as checkpoints are released.

## Visual inference samples

Sample detections produced by the current published checkpoint of this
model on classic test images (epoch 1 / 300 β€” detection quality will
improve as training advances).

| | |
|---|---|
| ![dog](images/float_dog.png) | ![traffic](images/float_traffic.png) |
| ![parking](images/float_parking.png) | ![dining](images/float_dining.png) |

## Reproducibility

This release is a snapshot of an ongoing training run. The pipeline:

```
1.  Train         (TI edgeai-yolox, GTX 1050 Ti, COCO train2017)
       β†’ yolox_nano_relu.pth

2.  Export ONNX   (tools/export_onnx.py from edgeai-yolox, --opset 13)
       β†’ yolox_nano_relu_float.onnx

3.  Quantize INT8 (onnxruntime.quantize_static, 1000 random COCO val2017
                   images for calibration, seed = 42, per-tensor)
       β†’ yolox_nano_relu_int8_qop.onnx
```

Calibration was performed once on the float ONNX of the published
checkpoint and will be re-run for each later checkpoint to keep INT8
in sync with the trained float weights.

## Provenance summary

```
TI yolox_nano_ti_lite exp file   (BSD-3 + Apache-2.0, build tool only)
        β”‚
        β”‚  Train from scratch, COCO train2017, own hardware
        β–Ό
yolox_nano_relu.pth                MIT (original training output)
        β”‚
        β”‚  TI export_onnx.py (build tool)
        β–Ό
yolox_nano_relu_float.onnx         MIT (this repository)
        β”‚
        β”‚  onnxruntime.quantize_static (MIT, tool)  +  COCO val2017 (CC BY 4.0)
        β–Ό
yolox_nano_relu_int8_qop.onnx      MIT (this repository)
```

The TI source code is used only as a build-time tool and is **not**
redistributed here. The weights themselves are an original training
output of the author. See `NOTICE.md` for full attribution.

## Detector size collection by the same author

| Repository | INT8 size | mAP@0.5:0.95 |
|---|---|---|
| [yolov4-leaky-416-int8-qop](https://huggingface.co/Thefalley/yolov4-leaky-416-int8-qop) | 61.66 MiB | 0.345 |
| [yolov4-tiny-416-int8-qop](https://huggingface.co/Thefalley/yolov4-tiny-416-int8-qop) | 5.83 MiB | 0.163 |
| [yolo-fastest-1.1-320-int8-qop](https://huggingface.co/Thefalley/yolo-fastest-1.1-320-int8-qop) | 0.47 MiB | (pending) |
| **yolox-nano-relu-mit** (this) | *** | *** (training in progress) |

## Citation

```bibtex
@article{ge2021yolox,
  author  = {Ge, Zheng and Liu, Songtao and Wang, Feng and Li, Zeming and Sun, Jian},
  title   = {YOLOX: Exceeding YOLO Series in 2021},
  journal = {arXiv:2107.08430},
  year    = {2021}
}
```

Author of the trained weights and INT8 derivative: **Pablo Mendoza**
(`@thefalley`), 2026.