|
37 | 37 | # utility functions to fetch models and data for
|
38 | 38 | # testing various qonnx transformations
|
39 | 39 |
|
| 40 | +a2q_rn18_preproc_mean = np.asarray([0.491, 0.482, 0.447], dtype=np.float32) |
| 41 | +a2q_rn18_preproc_std = np.asarray([0.247, 0.243, 0.262], dtype=np.float32) |
| 42 | +a2q_rn18_int_range = (0, 255) |
| 43 | +a2q_rn18_iscale = 1 / 255 |
| 44 | +a2q_rn18_rmin = (a2q_rn18_int_range[0] * a2q_rn18_iscale - a2q_rn18_preproc_mean) / a2q_rn18_preproc_std |
| 45 | +a2q_rn18_rmax = (a2q_rn18_int_range[1] * a2q_rn18_iscale - a2q_rn18_preproc_mean) / a2q_rn18_preproc_std |
| 46 | +a2q_rn18_scale = (1 / a2q_rn18_preproc_std) * a2q_rn18_iscale |
| 47 | +a2q_rn18_bias = -a2q_rn18_preproc_mean * a2q_rn18_preproc_std |
| 48 | +a2q_rn18_common = { |
| 49 | + "input_shape": (1, 3, 32, 32), |
| 50 | + "input_range": (a2q_rn18_rmin, a2q_rn18_rmax), |
| 51 | + "int_range": a2q_rn18_int_range, |
| 52 | + "scale": a2q_rn18_scale, |
| 53 | + "bias": a2q_rn18_bias, |
| 54 | +} |
| 55 | +a2q_rn18_urlbase = "https://github.com/fastmachinelearning/qonnx_model_zoo/releases/download/a2q-20240905/" |
| 56 | + |
| 57 | +a2q_model_details = { |
| 58 | + "rn18_w4a4_a2q_16b": { |
| 59 | + "description": "4-bit ResNet-18 on CIFAR-10, A2Q 16-bit accumulators", |
| 60 | + "url": a2q_rn18_urlbase + "quant_resnet18_w4a4_a2q_16b-d4bfa990.onnx", |
| 61 | + **a2q_rn18_common, |
| 62 | + }, |
| 63 | + "rn18_w4a4_a2q_15b": { |
| 64 | + "description": "4-bit ResNet-18 on CIFAR-10, A2Q 15-bit accumulators", |
| 65 | + "url": a2q_rn18_urlbase + "quant_resnet18_w4a4_a2q_15b-eeca8ac2.onnx", |
| 66 | + **a2q_rn18_common, |
| 67 | + }, |
| 68 | + "rn18_w4a4_a2q_14b": { |
| 69 | + "description": "4-bit ResNet-18 on CIFAR-10, A2Q 14-bit accumulators", |
| 70 | + "url": a2q_rn18_urlbase + "quant_resnet18_w4a4_a2q_14b-563cf426.onnx", |
| 71 | + **a2q_rn18_common, |
| 72 | + }, |
| 73 | + "rn18_w4a4_a2q_13b": { |
| 74 | + "description": "4-bit ResNet-18 on CIFAR-10, A2Q 13-bit accumulators", |
| 75 | + "url": a2q_rn18_urlbase + "quant_resnet18_w4a4_a2q_13b-d3cae293.onnx", |
| 76 | + **a2q_rn18_common, |
| 77 | + }, |
| 78 | + "rn18_w4a4_a2q_12b": { |
| 79 | + "description": "4-bit ResNet-18 on CIFAR-10, A2Q 12-bit accumulators", |
| 80 | + "url": a2q_rn18_urlbase + "quant_resnet18_w4a4_a2q_12b-fb3a0f8a.onnx", |
| 81 | + **a2q_rn18_common, |
| 82 | + }, |
| 83 | + "rn18_w4a4_a2q_plus_16b": { |
| 84 | + "description": "4-bit ResNet-18 on CIFAR-10, A2Q+ 16-bit accumulators", |
| 85 | + "url": a2q_rn18_urlbase + "quant_resnet18_w4a4_a2q_plus_16b-09e47feb.onnx", |
| 86 | + **a2q_rn18_common, |
| 87 | + }, |
| 88 | + "rn18_w4a4_a2q_plus_15b": { |
| 89 | + "description": "4-bit ResNet-18 on CIFAR-10, A2Q+ 15-bit accumulators", |
| 90 | + "url": a2q_rn18_urlbase + "quant_resnet18_w4a4_a2q_plus_15b-10e7bc83.onnx", |
| 91 | + **a2q_rn18_common, |
| 92 | + }, |
| 93 | + "rn18_w4a4_a2q_plus_14b": { |
| 94 | + "description": "4-bit ResNet-18 on CIFAR-10, A2Q+ 14-bit accumulators", |
| 95 | + "url": a2q_rn18_urlbase + "quant_resnet18_w4a4_a2q_plus_14b-8db8c78c.onnx", |
| 96 | + **a2q_rn18_common, |
| 97 | + }, |
| 98 | + "rn18_w4a4_a2q_plus_13b": { |
| 99 | + "description": "4-bit ResNet-18 on CIFAR-10, A2Q+ 13-bit accumulators", |
| 100 | + "url": a2q_rn18_urlbase + "quant_resnet18_w4a4_a2q_plus_13b-f57b05ce.onnx", |
| 101 | + **a2q_rn18_common, |
| 102 | + }, |
| 103 | + "rn18_w4a4_a2q_plus_12b": { |
| 104 | + "description": "4-bit ResNet-18 on CIFAR-10, A2Q+ 12-bit accumulators", |
| 105 | + "url": a2q_rn18_urlbase + "quant_resnet18_w4a4_a2q_plus_12b-1e2aca29.onnx", |
| 106 | + **a2q_rn18_common, |
| 107 | + }, |
| 108 | +} |
| 109 | + |
40 | 110 | test_model_details = {
|
41 | 111 | "FINN-CNV_W2A2": {
|
42 | 112 | "description": "2-bit VGG-10-like CNN on CIFAR-10",
|
|
116 | 186 | "input_shape": (1, 3, 224, 224),
|
117 | 187 | "input_range": (0, 1),
|
118 | 188 | },
|
| 189 | + **a2q_model_details, |
119 | 190 | }
|
120 | 191 |
|
121 | 192 |
|
|
0 commit comments