Add CUA-S1-FORMS FP16 Core ML conversion and verified artifacts

#1
by alexwengg - opened
This view is limited to 50 files because it contains too many changes. See the raw diff here.
Files changed (50) hide show
  1. .gitattributes +3 -0
  2. LICENSE +21 -0
  3. NOTICES.md +18 -0
  4. README.md +446 -0
  5. UPSTREAM-THIRD-PARTY-NOTICES.md +46 -0
  6. ane-gather/conversion.json +36 -0
  7. ane-gather/cua_s1_forms_fp16_options32.mlmodelc/analytics/coremldata.bin +3 -0
  8. ane-gather/cua_s1_forms_fp16_options32.mlmodelc/coremldata.bin +3 -0
  9. ane-gather/cua_s1_forms_fp16_options32.mlmodelc/model.mil +404 -0
  10. ane-gather/cua_s1_forms_fp16_options32.mlmodelc/weights/weight.bin +3 -0
  11. ane-gather/cua_s1_forms_fp16_options32.mlpackage/Data/com.apple.CoreML/model.mlmodel +3 -0
  12. ane-gather/cua_s1_forms_fp16_options32.mlpackage/Data/com.apple.CoreML/weights/weight.bin +3 -0
  13. ane-gather/cua_s1_forms_fp16_options32.mlpackage/Manifest.json +18 -0
  14. assets.lock.json +54 -0
  15. checksums.json +66 -0
  16. conversion.json +35 -0
  17. cua_s1_forms_fp16_options32.mlmodelc/analytics/coremldata.bin +3 -0
  18. cua_s1_forms_fp16_options32.mlmodelc/coremldata.bin +3 -0
  19. cua_s1_forms_fp16_options32.mlmodelc/model.mil +418 -0
  20. cua_s1_forms_fp16_options32.mlmodelc/weights/weight.bin +3 -0
  21. cua_s1_forms_fp16_options32.mlpackage/Data/com.apple.CoreML/model.mlmodel +3 -0
  22. cua_s1_forms_fp16_options32.mlpackage/Data/com.apple.CoreML/weights/weight.bin +3 -0
  23. cua_s1_forms_fp16_options32.mlpackage/Manifest.json +18 -0
  24. demo/browser-demo.gif +3 -0
  25. demo/browser-demo.mp4 +3 -0
  26. demo/browser-preview.png +3 -0
  27. int4-source-fp16/conversion.json +73 -0
  28. int4-source-fp16/cua_s1_forms_fp16_options32.mlpackage/Data/com.apple.CoreML/model.mlmodel +3 -0
  29. int4-source-fp16/cua_s1_forms_fp16_options32.mlpackage/Data/com.apple.CoreML/weights/weight.bin +3 -0
  30. int4-source-fp16/cua_s1_forms_fp16_options32.mlpackage/Manifest.json +18 -0
  31. int4-weights/conversion.json +124 -0
  32. int4-weights/cua_s1_forms_int4_options32.mlpackage/Data/com.apple.CoreML/model.mlmodel +3 -0
  33. int4-weights/cua_s1_forms_int4_options32.mlpackage/Data/com.apple.CoreML/weights/weight.bin +3 -0
  34. int4-weights/cua_s1_forms_int4_options32.mlpackage/Manifest.json +18 -0
  35. int8-weights/conversion.json +85 -0
  36. int8-weights/cua_s1_forms_int8_options32.mlpackage/Data/com.apple.CoreML/model.mlmodel +3 -0
  37. int8-weights/cua_s1_forms_int8_options32.mlpackage/Data/com.apple.CoreML/weights/weight.bin +3 -0
  38. int8-weights/cua_s1_forms_int8_options32.mlpackage/Manifest.json +18 -0
  39. preprocessing.py +46 -0
  40. reports/ane-comparison.json +784 -0
  41. reports/ane-fallback.json +84 -0
  42. reports/ane-gather-fallback.json +38 -0
  43. reports/ane-gather-profile.json +0 -0
  44. reports/ane-gather-verification.json +3314 -0
  45. reports/ane-profile.json +0 -0
  46. reports/browser-validation.json +0 -0
  47. reports/int4-demo-verification.json +1799 -0
  48. reports/int4-fallback.json +112 -0
  49. reports/int4-profile.json +1105 -0
  50. reports/int4-source-demo-verification.json +1748 -0
.gitattributes CHANGED
@@ -33,3 +33,6 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ demo/browser-demo.gif filter=lfs diff=lfs merge=lfs -text
37
+ demo/browser-demo.mp4 filter=lfs diff=lfs merge=lfs -text
38
+ demo/browser-preview.png filter=lfs diff=lfs merge=lfs -text
LICENSE ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Cua AI, Inc.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
NOTICES.md ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Distribution notices
2
+
3
+ This repository distributes FP16 Core ML derivatives of the MIT-licensed
4
+ CUA-S1-FORMS checkpoint published by Cua at
5
+ https://huggingface.co/cua-ai/cua-s1-forms/tree/f54adbf447f4ca6ec259f529ee3f2e3e09f8cc71.
6
+ The Cua MIT license is included as LICENSE.
7
+
8
+ The model implementation includes byte-collation and attention primitives adapted
9
+ from Minimal Labs' MIT-licensed jevlike project. Its copyright and license are
10
+ preserved in UPSTREAM-THIRD-PARTY-NOTICES.md. That file is an unmodified notice
11
+ from the source distribution; its statement that the source package does not
12
+ bundle model weights describes that upstream package. This derived distribution
13
+ does include the converted weights listed above.
14
+
15
+ The upstream demo dataset, training datasets, source safetensors checkpoint,
16
+ Python environment, and third-party dependencies are not bundled. The local
17
+ preprocessing helper is from the FluidInference Mobius conversion toolkit.
18
+ Model/data revisions and source download hashes are recorded in assets.lock.json.
README.md ADDED
@@ -0,0 +1,446 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: mit
3
+ library_name: coreml
4
+ pipeline_tag: text-classification
5
+ base_model: cua-ai/cua-s1-forms
6
+ base_model_relation: quantized
7
+ datasets:
8
+ - cua-ai/cua-s1-forms
9
+ tags:
10
+ - coreml
11
+ - apple-silicon
12
+ - computer-use
13
+ - classification
14
+ - cua-s1
15
+ - fp16
16
+ ---
17
+
18
+ # CUA-S1-FORMS — Core ML
19
+
20
+ FP16 Core ML conversion of [Cua's CUA-S1-FORMS](https://huggingface.co/cua-ai/cua-s1-forms),
21
+ a **706,048-parameter** specialist that selects among supplied form actions.
22
+ The portable package is **1,511,163 bytes (1.51 MB)**. No text generation, KV cache,
23
+ or external tokenizer is required.
24
+
25
+ The model uses small Transformer encoders over UTF-8 bytes and an attention
26
+ readout. It is a classifier, not an autoregressive LLM. The inherited checkpoint
27
+ configuration contains an unused `hf_model` value; this `tinyx` checkpoint does
28
+ not load Qwen weights.
29
+
30
+ ## Files
31
+
32
+ | File | Purpose |
33
+ | --- | --- |
34
+ | `cua_s1_forms_fp16_options32.mlpackage/` | Portable model; compile locally or add to Xcode |
35
+ | `cua_s1_forms_fp16_options32.mlmodelc/` | Compiled bundle for FluidAudio's model loader |
36
+ | `preprocessing.py` | Upstream-compatible byte encoding and input validation |
37
+ | `conversion.json` | Architecture, conversion versions, and portable package hashes |
38
+ | `assets.lock.json` | Pinned upstream source, model, and demo hashes |
39
+ | `synthetic-test.lock.json` | Full published synthetic test revision, count, size, and SHA-256 |
40
+ | `checksums.json` | SHA-256 of each distributed file except this checksum file |
41
+ | `reports/` | Per-row parity, original Cua metrics, and compute-placement report |
42
+
43
+ The model targets **iOS 17/macOS 14 or newer**. Runtime validation used an Apple
44
+ silicon Mac. Use the portable package for local compilation on other supported
45
+ systems; iPhone performance and compatibility of the precompiled bundle across
46
+ older OS versions have not been measured.
47
+
48
+ ## Python usage
49
+
50
+ Install `coremltools==9.0`, `numpy==1.26.4`, and `huggingface_hub` on macOS.
51
+ Download this repository, then run from its directory:
52
+
53
+ ```python
54
+ import coremltools as ct
55
+ from preprocessing import InputLimits, prepare_inputs
56
+
57
+ model = ct.models.MLModel(
58
+ "cua_s1_forms_fp16_options32.mlpackage",
59
+ compute_units=ct.ComputeUnit.CPU_AND_NE,
60
+ )
61
+ options = ["fill E-mail: person@example.com", "check", "click", "skip"]
62
+ inputs = prepare_inputs(
63
+ 'TASK fill the form from the document, then submit\n'
64
+ 'FORM Contact details\nELEMENT Edit "Email address" value=""',
65
+ options,
66
+ InputLimits(),
67
+ )
68
+ raw_probabilities = model.predict(inputs)["probabilities"][0, :len(options)]
69
+ print(options[int(raw_probabilities.argmax())], raw_probabilities)
70
+ ```
71
+
72
+ Download the model artifacts:
73
+
74
+ ```bash
75
+ hf download FluidInference/cua-s1-forms-coreml --revision main --local-dir ./cua-coreml
76
+ cd cua-coreml
77
+ ```
78
+
79
+ ## Swift usage
80
+
81
+ The [FluidAudio integration](https://github.com/FluidInference/FluidAudio/tree/main)
82
+ provides `CuaS1FormsManager`:
83
+
84
+ ```swift
85
+ import FluidAudio
86
+ import Foundation
87
+
88
+ let manager = try await CuaS1FormsManager.load(
89
+ from: URL(fileURLWithPath: "/models/cua_s1_forms_fp16_options32.mlpackage"))
90
+ let decision = try await manager.score(
91
+ context: "TASK fill the form from the document, then submit\nFORM Contact details\nELEMENT Edit \"Email address\" value=\"\"",
92
+ options: ["fill E-mail: person@example.com", "check", "click", "skip"])
93
+ print(decision.selectedOption, decision.probabilities)
94
+ ```
95
+
96
+ `decision.probabilities` uses stable Swift softmax; `decision.rawProbabilities`
97
+ preserves the package output shown in the Python example. See the
98
+ [full runtime validation](#swift-probability-fix).
99
+
100
+ `try await CuaS1FormsManager.load()` downloads
101
+ and caches the compiled artifact automatically.
102
+
103
+ ## Tensor interface
104
+
105
+ | Name | Type | Shape |
106
+ | --- | --- | --- |
107
+ | `context_ids` | int32 | `[1, 224]` |
108
+ | `option_ids` | int32 | `[1, 32, 96]` |
109
+ | `option_mask` | int32 | `[1, 32]` |
110
+ | `logits` | float32 output | `[1, 32]` |
111
+ | `probabilities` | float32 output | `[1, 32]` |
112
+
113
+ Encode UTF-8 bytes plus one, pad with zero, and truncate by bytes at 224 for
114
+ context and 96 per option. Supply a nonempty context and 2–32 nonempty options.
115
+ Set option-mask entries to one for supplied options and zero for padding.
116
+ Padded logits are `-10000`; padded probabilities are zero. Inputs above 32
117
+ options must be rejected or use a separately exported larger-capacity model.
118
+ The example helper rejects overflow rather than dropping choices.
119
+
120
+ ## Conversion verification
121
+
122
+ On the complete pinned **196-row upstream demo**, PyTorch and Core ML both
123
+ selected **196/196 labeled options correctly**, and matched each other's selected
124
+ option on every row. The unmodified upstream Cua evaluator reports 36 fill,
125
+ 4 check, 6 click, and 150 skip decisions, with zero wrong actions, wrong targets,
126
+ or unsafe actions on these saved predictions. It counts `skip` as abstention,
127
+ so its 23.47% coverage corresponds to 46 actionable decisions.
128
+
129
+ | Check | Core ML `ALL` | Core ML `CPU_AND_NE` |
130
+ | --- | ---: | ---: |
131
+ | Selected options matching PyTorch | 196 / 196 | 196 / 196 |
132
+ | Maximum absolute probability error | 0.003099 | 0.002336 |
133
+ | Warm model-call median | 1.85 ms | 0.90 ms |
134
+ | Warm model-call p95 | 2.49 ms | 0.94 ms |
135
+
136
+ Measured September 19, 2026 on Apple M5 Pro, 24 GB, macOS 27.0, using
137
+ Python 3.11.11, PyTorch 2.7.0, and coremltools 9.0. Timing is exploratory and
138
+ includes Python call overhead; model loading, encoding, document extraction,
139
+ UI observation, and action execution are excluded. It is not an optimized
140
+ PyTorch/MPS speed comparison.
141
+
142
+ The conversion gates require 100% selected-option agreement, no accuracy loss,
143
+ maximum absolute probability error ≤ 0.005, finite outputs, normalized live
144
+ probabilities, and zero probability for padding. The FP32 export adapter differs
145
+ from the unmodified PyTorch reference by at most 0.00000113. Six reversed-option
146
+ checks also pass on each Core ML configuration. The checked-in placement report
147
+ counts 149 Neural Engine operations, 24 CPU operations, and zero GPU operations;
148
+ operation counts are not a measurement of time spent on each processor.
149
+
150
+ These results verify conversion on three demo forms and three PDFs. They do not
151
+ establish generalization, live GUI completion rates, or production safety.
152
+ The original demo is not redistributed here; its exact revision and SHA-256 are
153
+ in the asset lock. No training was performed. The separate full synthetic test below evaluates
154
+ the unchanged artifacts and exposes numerical failures outside this demo.
155
+
156
+ ## Full published synthetic test
157
+
158
+ Evaluated the complete published synthetic [`test.jsonl`](https://huggingface.co/datasets/cua-ai/cua-s1-forms/blob/8273f34778b99ac2e12d9f6e7d57dad99ae20845/test.jsonl):
159
+ **24,370 decisions across 1,040 episode seeds**, with no excluded rows or truncated
160
+ inputs. The dataset revision is `8273f34778b99ac2e12d9f6e7d57dad99ae20845`; its
161
+ SHA-256 is `d63a7e0db195d4d20154a40b2f8dd09ce3bb65487a158c638da5c609d4475e7c`.
162
+ The upstream [model card](https://huggingface.co/cua-ai/cua-s1-forms/blob/f54adbf447f4ca6ec259f529ee3f2e3e09f8cc71/README.md) reports 99.95% on an approximately 15,000-row
163
+ synthetic test. Our result rounds to that accuracy, but the released file contains
164
+ 24,370 rows; this does not reconstruct the card's unspecified smaller manifest.
165
+
166
+ | Model / backend | Correct decisions | Top-1 accuracy | Median call | p95 call |
167
+ | --- | ---: | ---: | ---: | ---: |
168
+ | Upstream PyTorch / CPU | 24,359 / 24,370 | 99.9549% | 1.787 ms | 3.104 ms |
169
+ | Original FP16 Core ML / CPU + ANE | 24,359 / 24,370 | 99.9549% | 1.003 ms | 1.133 ms |
170
+ | ANE-gather FP16 Core ML / CPU + ANE | 24,359 / 24,370 | 99.9549% | 1.052 ms | 1.177 ms |
171
+
172
+ Both Core ML exports select the same option as PyTorch on **all 24,370 rows**.
173
+ All three share the same 11 errors: choosing `fill` when the label is `skip`.
174
+ The original Cua evaluator counts these as wrong/unsafe actions; this offline
175
+ benchmark executes no actions. All 9,802 fill, 816 check, and 1,040 click labels
176
+ are correct; skip accuracy is 12,701/12,712. Higher ANE placement is approximately
177
+ **4.8% slower** by median here, so the original remains the default.
178
+
179
+ **Strict numerical conversion parity fails for both exports.** Each has 11 rows
180
+ above the original 0.005 absolute probability-error limit, with a maximum error
181
+ of **0.0204874**. One further row (zero-based index 19270) has a live-probability
182
+ sum of **0.99893665**, which failed the original Swift manager's 0.001
183
+ normalization guard despite a correct argmax. The [Swift probability fix](#swift-probability-fix)
184
+ now handles that output. These raw conversion reports retain the original scores,
185
+ failed gates, tolerances, and model weights; the runtime fix does not establish
186
+ raw numerical parity. The earlier 196-row demo passed its numerical gates.
187
+
188
+ Measured September 19, 2026 on **Apple M5 Pro, 24 GB, macOS 27.0 (26A428)**,
189
+ Python 3.11.11, PyTorch 2.7.0, coremltools 9.0. Batch size 1, three warmup rows per
190
+ model, one timed pass over the whole split; both Core ML models remain loaded
191
+ and alternate AB/BA order by row. PyTorch uses two CPU threads and one inter-op
192
+ thread, with the Transformer fast path disabled. Timers cover PyTorch
193
+ forward + softmax or synchronous Core ML prediction, excluding encoding,
194
+ validation, loading, UI, and network. These compare deployment backends, not
195
+ algorithms on equal hardware, and differ from the separate Swift timings at the end of this card.
196
+
197
+ Upstream describes this synthetic split as disjoint from training/validation by
198
+ form signature; those signatures were not independently re-audited here. No
199
+ training, validation inference, test-based tuning, or hosted Jev/API comparison
200
+ was performed. This measures supplied-option classification, not unseen real-world
201
+ GUI completion or document extraction.
202
+
203
+ [Full report](reports/synthetic-test.json), [complete compressed per-row trace](reports/synthetic-test-decisions.jsonl.gz),
204
+ and [test manifest](synthetic-test.lock.json) retain the exact protocol, hashes,
205
+ paired decisions, action metrics, and all failed numerical checks. Reproduce with
206
+ `benchmark-synthetic.py --require-parity` in the [Mobius toolkit](https://github.com/FluidInference/mobius/tree/main/models/computer-use/cua-s1-forms/coreml#full-published-synthetic-test).
207
+ That command exits 1 for the recorded numerical failures; it does not normalize
208
+ scores or weaken the original gates. Treat these artifacts as under review
209
+ until the numerical failures are resolved and validated.
210
+
211
+ ## ANE profile
212
+
213
+ A separate September 19 profile uses the same portable-package hashes on the M5
214
+ Pro, with real demo rows 0, 68, and 130 (27, 21, and 19 options). Each policy
215
+ runs two warmup passes and ten timed passes, totaling 30 timed predictions. All
216
+ 120 timed predictions select the correct labels.
217
+
218
+ | Policy | CPU ops | GPU ops | ANE ops | Warm p50 | Warm p95 |
219
+ | --- | ---: | ---: | ---: | ---: | ---: |
220
+ | `CPU_ONLY` | 173 | 0 | 0 | 1.527 ms | 1.602 ms |
221
+ | `CPU_AND_GPU` | 0 | 173 | 0 | 0.929 ms | 2.380 ms |
222
+ | `CPU_AND_NE` | 24 | 0 | 149 | 0.929 ms | 0.973 ms |
223
+ | `ALL` | 0 | 173 | 0 | 0.912 ms | 1.229 ms |
224
+
225
+ `CPU_AND_NE` assigns 86.1% of operations to ANE; `ALL` chooses the GPU on this
226
+ Mac. CPU fallbacks cover integer/mask preparation and embedding gathers. These
227
+ are public `MLComputePlan` preferred-device assignments, not measurements of
228
+ utilization, energy, or time spent on each device. No Instruments runtime trace
229
+ was captured.
230
+
231
+ ANE model loading took 566.8 ms, followed by a 1.65 ms first prediction, with
232
+ system caches retained. These are not first-install cold-start numbers. Warm
233
+ timing includes Python model-call overhead and excludes encoding, Swift/UI work,
234
+ and animation. This three-row timing manifest differs from the full conversion
235
+ parity run above; no weights or graph were changed.
236
+
237
+ See [reports/ane-profile.json](reports/ane-profile.json) for all operation
238
+ assignments, individual timings, hashes, and the protocol;
239
+ [reports/ane-fallback.json](reports/ane-fallback.json) records rejection reasons.
240
+ Reproduce with `uv run --frozen python profile-coreml.py` in the
241
+ [Mobius conversion directory](https://github.com/FluidInference/mobius/tree/main/models/computer-use/cua-s1-forms/coreml).
242
+
243
+ ## Optional higher-ANE variant
244
+
245
+ The `ane-gather/` directory contains an alternative portable package and compiled
246
+ bundle with the **same int32 inputs and float32 outputs** and all trained weights.
247
+ The variant uses shared float16 mask inputs and unsigned 16-bit embedding indices
248
+ to eliminate negative-index correction and place the gathers on ANE. Valid byte
249
+ IDs 0–256 remain exact. It is **1,509,491 bytes** as a portable package.
250
+
251
+ On this M5 Pro, the scheduler plan is **162 ANE operations and 3 CPU input casts
252
+ (98.2% ANE)** for both `CPU_AND_NE` and `ALL`. The default model has 149 ANE and
253
+ 24 CPU operations (86.1%) under `CPU_AND_NE`. Counts are not runtime or energy
254
+ shares, and host byte encoding still runs outside the model.
255
+
256
+ The optional variant passes **196/196 decisions** against upstream on `ALL` and
257
+ `CPU_AND_NE`, with maximum probability error **0.002336** under the unchanged
258
+ 0.005 tolerance. **28 Python regression tests** pass, including all byte-ID
259
+ boundaries, full option capacity, truncation, and reordered choices. The Swift
260
+ manager independently passes all 196 reference decisions, compiled-cache loading,
261
+ and concurrent/reordered requests; the native demo passes its three-form checks.
262
+
263
+ A matched same-process ABBA comparison uses three real inputs and 60 timed calls
264
+ per model after warmup:
265
+
266
+ | Artifact | CPU ops | ANE ops | Warm p50 | Warm p95 |
267
+ | --- | ---: | ---: | ---: | ---: |
268
+ | Root/default | 24 | 149 | 0.915 ms | 0.968 ms |
269
+ | `ane-gather/` | 3 | 162 | 0.970 ms | 0.988 ms |
270
+
271
+ Higher ANE placement is about **6% slower** in this local comparison, so the
272
+ root/default artifact remains unchanged. No energy or CPU-time saving is claimed.
273
+ The original input names, dtypes, shapes, and byte encoding still apply. Load
274
+ `ane-gather/cua_s1_forms_fp16_options32.mlpackage` with the existing Python or
275
+ Swift APIs, or pass its local path to the Swift demo's `--model` argument.
276
+
277
+ Reports: [parity](reports/ane-gather-verification.json),
278
+ [Swift validation](reports/swift-ane-validation.json),
279
+ [compute plans](reports/ane-gather-profile.json),
280
+ [fallbacks](reports/ane-gather-fallback.json), and
281
+ [matched comparison](reports/ane-comparison.json). Reproduce with
282
+ `uv run --frozen python convert-coreml.py --optimization ane-gather --output-dir build/ane-gather`
283
+ in the [Mobius conversion directory](https://github.com/FluidInference/mobius/tree/main/models/computer-use/cua-s1-forms/coreml#optional-higher-ane-variant).
284
+
285
+ ## INT8 weight trial
286
+
287
+ A matched run over all **24,370 synthetic decisions** on the same M5 Pro:
288
+
289
+ | Export | Package size | Accuracy | Median | p95 |
290
+ | --- | ---: | ---: | ---: | ---: |
291
+ | Original FP16 | 1.51 MB | 99.9549% | 0.990 ms | 1.102 ms |
292
+ | INT8 weights, FP16 compute | 0.81 MB | 99.9549% | 0.990 ms | 1.104 ms |
293
+
294
+ **46.2% smaller**, with every selected option unchanged and effectively identical
295
+ latency. Numerical parity still fails: 64 rows exceed the 0.005 probability-error
296
+ limit (maximum 0.067738), versus 11 for FP16. No INT8 probability-sum violations
297
+ were observed. The original remains the default.
298
+
299
+ The experimental `int8-weights/cua_s1_forms_int8_options32.mlpackage` uses INT8
300
+ weights with FP16 computation. Compile it locally or load it with the existing
301
+ Swift `load(from:)` API. Inputs and outputs match the original model. This
302
+ variant was measured on M5 Pro; iPhone behavior has not been measured.
303
+
304
+ [Full report](reports/int8-synthetic-test.json) ·
305
+ [Complete per-row trace](reports/int8-synthetic-test-decisions.jsonl.gz) ·
306
+ [Quantization manifest](int8-weights/conversion.json) ·
307
+ [Reproduction](https://github.com/FluidInference/mobius/tree/main/models/computer-use/cua-s1-forms/coreml#int8-weight-trial)
308
+
309
+ The matched benchmark uses CPU+ANE, batch 1, three warmups/model, and one complete
310
+ pass with alternating Core ML order; encoding/loading/UI are excluded. All models
311
+ get the same 24,359 decisions correct. Public compute plans assign 149 ANE and
312
+ 32 CPU operations, with 19 unassigned constant-dequantization operations. This
313
+ compression does not establish an INT8 activation path or a speed/energy gain.
314
+ No calibration, training, or test-based tuning was performed. Numerical parity
315
+ remains failed; the default FP16 artifacts are unchanged.
316
+
317
+ ## INT4 weight trial
318
+
319
+ A matched run over all **24,370 synthetic decisions** on M5 Pro, CPU+ANE:
320
+
321
+ | Export | Package size | Accuracy | Median | p95 |
322
+ | --- | ---: | ---: | ---: | ---: |
323
+ | FP16 control, iOS 18 target | 1.51 MB | 99.9549% | 0.982 ms | 1.081 ms |
324
+ | INT4 weights, FP16 compute | 0.45 MB | 99.9302% | 0.982 ms | 1.082 ms |
325
+
326
+ **70.1% smaller**, with essentially unchanged latency. INT4 makes **17 errors
327
+ versus 11** for FP16: 14 choices change, introducing 10 errors and correcting four.
328
+ Numerical parity fails: 356 rows exceed the 0.005 probability-error limit
329
+ (maximum 0.754359); no INT4 probability-sum violations were observed.
330
+
331
+ Packed INT4 requires **iOS 18/macOS 15**. Both exports use the same decomposed
332
+ attention graph and FP16 computation. Batch-1 timing excludes encoding/loading/UI.
333
+ INT8 preserves all choices at 0.81 MB; the original FP16 remains the default.
334
+
335
+ The experimental INT4 package is
336
+ `int4-weights/cua_s1_forms_int4_options32.mlpackage`. Its matched FP16 control is
337
+ `int4-source-fp16/cua_s1_forms_fp16_options32.mlpackage`. Nineteen weight tensors
338
+ use per-channel symmetric INT4 with a 2,048-element threshold; no calibration or
339
+ retraining. This is weight compression with FP16 computation. The graph is
340
+ retargeted from the verified original to preserve decomposed attention.
341
+
342
+ [Full report](reports/int4-synthetic-test.json) ·
343
+ [Complete per-row trace](reports/int4-synthetic-test-decisions.jsonl.gz) ·
344
+ [Quantization manifest](int4-weights/conversion.json) ·
345
+ [FP16 control manifest](int4-source-fp16/conversion.json) ·
346
+ [Reproduction](https://github.com/FluidInference/mobius/tree/main/models/computer-use/cua-s1-forms/coreml#int4-weight-trial)
347
+
348
+ The demo retains 196/196 choices but fails numerical parity. The full benchmark
349
+ above exposes the accuracy loss. Public compute-plan placement is 149 ANE / 32 CPU
350
+ operations, plus 19 unassigned constant dequantizations; no speed/energy claim.
351
+
352
+ ## Application responsibilities
353
+
354
+ The application must extract document entities, describe UI elements, build
355
+ candidate actions, and validate and order the selected actions. Submission and
356
+ other effects require application authorization. Scores are not calibrated
357
+ confidence guarantees. Text outside the byte limits is truncated, and arbitrary
358
+ new forms and languages require their own evaluation.
359
+
360
+ ## Source, reproduction, and license
361
+
362
+ The [Mobius conversion toolkit](https://github.com/FluidInference/mobius/tree/main/models/computer-use/cua-s1-forms/coreml)
363
+ contains the conversion code, lockfile, original reference implementation and
364
+ evaluator, tests, and full reproduction instructions. Adaptations are limited
365
+ to export-compatible masking, a floating-point clamp constant, finite padded
366
+ logits, and disabling the fused PyTorch Transformer fast path during tracing.
367
+ All trained layers and checkpoint tensors are retained; internal compute and
368
+ weights are converted to FP16.
369
+
370
+ - Model: [`cua-ai/cua-s1-forms` at `f54adbf447f4ca6ec259f529ee3f2e3e09f8cc71`](https://huggingface.co/cua-ai/cua-s1-forms/tree/f54adbf447f4ca6ec259f529ee3f2e3e09f8cc71).
371
+ - Demo: [`cua-ai/cua-s1-forms` at `8273f34778b99ac2e12d9f6e7d57dad99ae20845`](https://huggingface.co/datasets/cua-ai/cua-s1-forms/tree/8273f34778b99ac2e12d9f6e7d57dad99ae20845).
372
+ - Code: [`trycua/cua` at `83f142c4290a0f7d9ed545ae8532858c6e4f8145`](https://github.com/trycua/cua/tree/83f142c4290a0f7d9ed545ae8532858c6e4f8145/libs/cua-s1).
373
+
374
+ The pinned model and dataset cards declare MIT. See [LICENSE](LICENSE),
375
+ [NOTICES.md](NOTICES.md), and the preserved
376
+ [upstream third-party notices](UPSTREAM-THIRD-PARTY-NOTICES.md).
377
+
378
+ ## Swift probability fix
379
+
380
+ The Swift manager computes a stable softmax from live logits using Double arithmetic
381
+ and returns Float `probabilities`. The model's original softmax output remains
382
+ available as `rawProbabilities`, including FP16 rounding errors.
383
+
384
+ All **73,110 real Swift API calls completed** on the pinned synthetic split
385
+ (Apple M5 Pro, 24 GB, macOS 27.0; Swift 6.2.3, release build, CPU+ANE):
386
+
387
+ | Variant | Calls completed | Correct decisions | Changed choices after fix | Probability-sum failures after fix |
388
+ | --- | ---: | ---: | ---: | ---: |
389
+ | FP16 | 24,370 | 24,359 (99.9549%) | 0 | 0 |
390
+ | INT8 | 24,370 | 24,359 (99.9549%) | 0 | 0 |
391
+ | INT4 | 24,370 | 24,353 (99.9302%) | 0 | 0 |
392
+
393
+ The recorded FP16 sum failure is fixed. Stable probabilities agree with an
394
+ independent float64 softmax within **0.000000030**. Raw conversion-parity failures
395
+ and INT4's accuracy loss remain. This validation changes no model artifacts and
396
+ makes no new latency claim. Earlier complete Swift timings predate this fix.
397
+
398
+ [Runtime report](reports/swift-runtime/report.json) · [Full runtime trace](reports/swift-runtime/decisions.jsonl.gz)
399
+ The report pins the dataset, packages, saved reference traces, Swift sources,
400
+ and validation harness by SHA-256.
401
+
402
+ Reproduce with the [Mobius Swift validation harness](https://github.com/FluidInference/mobius/tree/main/models/computer-use/cua-s1-forms/coreml#swift-probability-fix).
403
+
404
+ ## Live browser proof and expanded Swift benchmark
405
+
406
+ [![Actual CUA-driven browser forms](demo/browser-demo.gif)](demo/browser-demo.mp4)
407
+
408
+ The [native Swift browser demo](https://github.com/FluidInference/FluidAudio/tree/7f9eb92b0af8594c4e048a9e57f697340aacfa67/Examples/CuaS1FormsDemo)
409
+ loads both variants into independent WKWebViews. It reads actual DOM labels,
410
+ roles and state, asks the model for a choice, applies compatible fill/check
411
+ actions, dispatches events, and independently verifies the resulting DOM.
412
+ Source values are user-entered or supplied by the original public examples.
413
+ HTML contains controls, not source values or expected choices. The
414
+ [recording](https://github.com/FluidInference/FluidAudio/blob/7f9eb92b0af8594c4e048a9e57f697340aacfa67/Examples/CuaS1FormsDemo/browser-demo.mp4)
415
+ shows patient, job and insurance forms: **100/100 original decisions** across
416
+ both models, with event-count, stale-observation and explicit-click checks.
417
+ Full actual contexts/candidates/actions are in [browser-validation.json](reports/browser-validation.json).
418
+ This is bounded local browser automation, not arbitrary desktop control or PDF extraction.
419
+
420
+ The expanded **release Swift** comparison uses all 50 initial controls, both
421
+ models resident, one warmup pass per model and ABBA with two full passes per
422
+ block (200 timed calls/model). All 400 choices match upstream labels. On the
423
+ M5 Pro / 24 GB / macOS 27.0 (26A428), original median/p95 is **0.912/0.933 ms**;
424
+ ANE gather is **0.961/0.984 ms**, about 5.4% slower by median. This timer includes
425
+ Swift encoding + Core ML + output decoding and excludes browser/rendering/animation.
426
+ See [swift-variant-comparison.json](reports/swift-variant-comparison.json) for
427
+ raw samples, exact model hashes, per-form statistics, and load/first-call costs.
428
+ The earlier compute-plan counts still apply to these unchanged artifacts;
429
+ no utilization, energy saving or held-out accuracy claim is made.
430
+
431
+ Reproduce from FluidAudio commit `7f9eb92b0af8594c4e048a9e57f697340aacfa67` (the example is
432
+ retained in history and is not part of the current library PR):
433
+
434
+ ```bash
435
+ git worktree add --detach /tmp/cua-s1-browser-repro 7f9eb92b0af8594c4e048a9e57f697340aacfa67
436
+ cd /tmp/cua-s1-browser-repro
437
+ Examples/CuaS1FormsDemo/run.sh --browser
438
+ swift run --package-path Examples/CuaS1FormsDemo -c release CuaS1FormsDemo \
439
+ --benchmark --report /absolute/path/to/variant-comparison.json \
440
+ --hardware "Describe the measured Mac"
441
+ ```
442
+
443
+ Both packages are fetched by pinned revisions and verified hashes, or supplied
444
+ with `--model /path/to/original.mlpackage --ane-model /path/to/ane-gather.mlpackage`.
445
+ The [demo README](https://github.com/FluidInference/FluidAudio/tree/7f9eb92b0af8594c4e048a9e57f697340aacfa67/Examples/CuaS1FormsDemo#matched-swift-benchmark)
446
+ also documents real-browser recording and its separate validation trace.
UPSTREAM-THIRD-PARTY-NOTICES.md ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Third-party notices
2
+
3
+ This Cua-S1 component does not bundle third-party model weights, datasets,
4
+ binaries, or media.
5
+
6
+ ## jevlike
7
+
8
+ Parts of `python/src/cua_s1/model.py` are adapted from the MIT-licensed
9
+ [`jevlike`](https://github.com/vinnylarouge/jevlike) project at commit
10
+ [`94f5fd1b0b11d52bbdfdf4e0ee6aa96b568f8452`](https://github.com/vinnylarouge/jevlike/commit/94f5fd1b0b11d52bbdfdf4e0ee6aa96b568f8452).
11
+ The adapted material is limited to the byte-collation and small attention-model
12
+ primitives in that file.
13
+
14
+ Copyright (c) 2026 Minimal Labs
15
+
16
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
17
+ this software and associated documentation files (the "Software"), to deal in
18
+ the Software without restriction, including without limitation the rights to
19
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
20
+ the Software, and to permit persons to whom the Software is furnished to do so,
21
+ subject to the following conditions:
22
+
23
+ The above copyright notice and this permission notice shall be included in all
24
+ copies or substantial portions of the Software.
25
+
26
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
27
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
28
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
29
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
30
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
31
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
32
+ SOFTWARE.
33
+
34
+ The Python package declares Hatchling as a build-system requirement. Hatchling
35
+ is build tooling and is not bundled in the resulting package; it is distributed
36
+ under its own terms.
37
+
38
+ The Python package declares its runtime dependencies in `python/pyproject.toml`.
39
+ The component-local `python/uv.lock` records the tested development resolution.
40
+ Those dependencies remain distributed under their own licenses and are not
41
+ copied into this repository.
42
+
43
+ Future checkpoint or software distributions must update this file with the
44
+ applicable notices for all included third-party code, models, datasets, assets,
45
+ and other materials. A reference to Cua-S1 or `cua-s1-form-v0` does not grant
46
+ rights to third-party material.
ane-gather/conversion.json ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "cua_s1_forms_fp16_options32.mlpackage",
3
+ "precision": "float16",
4
+ "optimization": "ane-gather",
5
+ "minimum_target": "iOS17/macOS14",
6
+ "limits": {
7
+ "context_bytes": 224,
8
+ "option_bytes": 96,
9
+ "max_options": 32
10
+ },
11
+ "model_config": {
12
+ "context_tokens": 224,
13
+ "encoder": "tinyx",
14
+ "heads": 4,
15
+ "hf_model": "Qwen/Qwen2.5-0.5B",
16
+ "layers": 2,
17
+ "option_tokens": 96,
18
+ "rank": 128,
19
+ "width": 128
20
+ },
21
+ "parameters": 706048,
22
+ "assets_lock_sha256": "8e65ad70af6bb814b571cdcfe828ba4bc339147da2d2211cbeac416163ef18ba",
23
+ "model_revision": "f54adbf447f4ca6ec259f529ee3f2e3e09f8cc71",
24
+ "source_revision": "83f142c4290a0f7d9ed545ae8532858c6e4f8145",
25
+ "trace_row": 0,
26
+ "trace_dataset_revision": "8273f34778b99ac2e12d9f6e7d57dad99ae20845",
27
+ "export_seconds": 0.6771400420111604,
28
+ "python": "3.11.11",
29
+ "torch": "2.7.0",
30
+ "coremltools": "9.0",
31
+ "package_files": {
32
+ "Data/com.apple.CoreML/model.mlmodel": "de18e313c3b625e35d008ed8b6b24108edc6df7bf2fae9533af03519eca11b63",
33
+ "Data/com.apple.CoreML/weights/weight.bin": "4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895",
34
+ "Manifest.json": "38f812a04eb2322080634ba788c61df362336168466ca67e5549058d346ac793"
35
+ }
36
+ }
ane-gather/cua_s1_forms_fp16_options32.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:526dccb87bdc036df1e8add0b50dd6540db534808fc2f8caa97cd897b4fc1fa3
3
+ size 243
ane-gather/cua_s1_forms_fp16_options32.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0f2a8ed9fe8abcc39c7ee0575e2562d589d459683b92708fa9788b533be3038b
3
+ size 876
ane-gather/cua_s1_forms_fp16_options32.mlmodelc/model.mil ADDED
@@ -0,0 +1,404 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ program(1.0)
2
+ [buildInfo = dict<tensor<string, []>, tensor<string, []>>({{"coremlc-component-MIL", "3600.16.1"}, {"coremlc-version", "3600.25.2"}, {"coremltools-component-milinternal", ""}, {"coremltools-version", "9.0"}})]
3
+ {
4
+ func main<ios17>(tensor<int32, [1, 224]> context_ids, tensor<int32, [1, 32, 96]> option_ids, tensor<int32, [1, 32]> option_mask) {
5
+ tensor<string, []> mask_options_to_fp16_dtype_0 = const()[name = tensor<string, []>("mask_options_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
6
+ tensor<fp16, []> var_29_promoted_to_fp16 = const()[name = tensor<string, []>("op_29_promoted_to_fp16"), val = tensor<fp16, []>(0x0p+0)];
7
+ tensor<fp16, [1, 32]> option_mask_to_fp16 = cast(dtype = mask_options_to_fp16_dtype_0, x = option_mask)[name = tensor<string, []>("cast_68")];
8
+ tensor<bool, [1, 32]> option_mask_cast_fp16 = not_equal(x = option_mask_to_fp16, y = var_29_promoted_to_fp16)[name = tensor<string, []>("option_mask_cast_fp16")];
9
+ tensor<string, []> mask_context_ids_to_fp16_dtype_0 = const()[name = tensor<string, []>("mask_context_ids_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
10
+ tensor<fp16, []> var_31_promoted_to_fp16 = const()[name = tensor<string, []>("op_31_promoted_to_fp16"), val = tensor<fp16, []>(0x0p+0)];
11
+ tensor<fp16, [1, 224]> context_ids_to_fp16 = cast(dtype = mask_context_ids_to_fp16_dtype_0, x = context_ids)[name = tensor<string, []>("cast_67")];
12
+ tensor<bool, [1, 224]> context_mask_cast_fp16 = not_equal(x = context_ids_to_fp16, y = var_31_promoted_to_fp16)[name = tensor<string, []>("context_mask_cast_fp16")];
13
+ tensor<int32, [2]> var_42_begin_0 = const()[name = tensor<string, []>("op_42_begin_0"), val = tensor<int32, [2]>([0, 0])];
14
+ tensor<int32, [2]> var_42_end_0 = const()[name = tensor<string, []>("op_42_end_0"), val = tensor<int32, [2]>([1, 1])];
15
+ tensor<bool, [2]> var_42_end_mask_0 = const()[name = tensor<string, []>("op_42_end_mask_0"), val = tensor<bool, [2]>([true, false])];
16
+ tensor<fp16, [1, 1]> var_42_cast_fp16 = slice_by_index(begin = var_42_begin_0, end = var_42_end_0, end_mask = var_42_end_mask_0, x = context_ids_to_fp16)[name = tensor<string, []>("op_42_cast_fp16")];
17
+ tensor<fp16, []> fill_like_0_value_0_to_fp16 = const()[name = tensor<string, []>("fill_like_0_value_0_to_fp16"), val = tensor<fp16, []>(0x1p+0)];
18
+ tensor<fp16, [1, 1]> fill_like_0_cast_fp16 = fill_like(ref_tensor = var_42_cast_fp16, value = fill_like_0_value_0_to_fp16)[name = tensor<string, []>("fill_like_0_cast_fp16")];
19
+ tensor<int32, [2]> var_58_begin_0 = const()[name = tensor<string, []>("op_58_begin_0"), val = tensor<int32, [2]>([0, 1])];
20
+ tensor<int32, [2]> var_58_end_0 = const()[name = tensor<string, []>("op_58_end_0"), val = tensor<int32, [2]>([1, 224])];
21
+ tensor<bool, [2]> var_58_end_mask_0 = const()[name = tensor<string, []>("op_58_end_mask_0"), val = tensor<bool, [2]>([true, true])];
22
+ tensor<fp16, [1, 223]> var_58_cast_fp16 = slice_by_index(begin = var_58_begin_0, end = var_58_end_0, end_mask = var_58_end_mask_0, x = context_ids_to_fp16)[name = tensor<string, []>("op_58_cast_fp16")];
23
+ tensor<int32, []> var_60 = const()[name = tensor<string, []>("op_60"), val = tensor<int32, []>(1)];
24
+ tensor<bool, []> safe_context_ids_interleave_0 = const()[name = tensor<string, []>("safe_context_ids_interleave_0"), val = tensor<bool, []>(false)];
25
+ tensor<fp16, [1, 224]> safe_context_ids_cast_fp16 = concat(axis = var_60, interleave = safe_context_ids_interleave_0, values = (fill_like_0_cast_fp16, var_58_cast_fp16))[name = tensor<string, []>("safe_context_ids_cast_fp16")];
26
+ tensor<fp16, [257, 128]> model_embedding_weight_to_fp16 = const()[name = tensor<string, []>("model_embedding_weight_to_fp16"), val = tensor<fp16, [257, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(64)))];
27
+ tensor<string, []> cast_0_dtype_0 = const()[name = tensor<string, []>("cast_0_dtype_0"), val = tensor<string, []>("uint16")];
28
+ tensor<uint16, [1, 224]> cast_0 = cast(dtype = cast_0_dtype_0, x = context_ids_to_fp16)[name = tensor<string, []>("cast_0")];
29
+ tensor<int32, []> gather_0_axis_0 = const()[name = tensor<string, []>("gather_0_axis_0"), val = tensor<int32, []>(0)];
30
+ tensor<int32, []> gather_0_batch_dims_0 = const()[name = tensor<string, []>("gather_0_batch_dims_0"), val = tensor<int32, []>(0)];
31
+ tensor<bool, []> gather_0_validate_indices_0 = const()[name = tensor<string, []>("gather_0_validate_indices_0"), val = tensor<bool, []>(false)];
32
+ tensor<fp16, [1, 224, 128]> gather_0 = gather(axis = gather_0_axis_0, batch_dims = gather_0_batch_dims_0, indices = cast_0, validate_indices = gather_0_validate_indices_0, x = model_embedding_weight_to_fp16)[name = tensor<string, []>("gather_0")];
33
+ tensor<fp16, [224, 128]> model_position_weight_to_fp16 = const()[name = tensor<string, []>("model_position_weight_to_fp16"), val = tensor<fp16, [224, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(65920)))];
34
+ tensor<fp16, [1, 224, 128]> src_1_cast_fp16 = add(x = gather_0, y = model_position_weight_to_fp16)[name = tensor<string, []>("src_1_cast_fp16")];
35
+ tensor<fp16, []> var_81_promoted_to_fp16 = const()[name = tensor<string, []>("op_81_promoted_to_fp16"), val = tensor<fp16, []>(0x0p+0)];
36
+ tensor<bool, [1, 224]> mask_1_cast_fp16 = equal(x = safe_context_ids_cast_fp16, y = var_81_promoted_to_fp16)[name = tensor<string, []>("mask_1_cast_fp16")];
37
+ tensor<fp16, []> var_97_to_fp16 = const()[name = tensor<string, []>("op_97_to_fp16"), val = tensor<fp16, []>(-inf)];
38
+ tensor<fp16, [1, 224]> var_105_to_fp16 = const()[name = tensor<string, []>("op_105_to_fp16"), val = tensor<fp16, [1, 224]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(123328)))];
39
+ tensor<fp16, [1, 224]> key_padding_mask_1_cast_fp16 = select(a = var_97_to_fp16, b = var_105_to_fp16, cond = mask_1_cast_fp16)[name = tensor<string, []>("key_padding_mask_1_cast_fp16")];
40
+ tensor<int32, [1]> query_1_axes_0 = const()[name = tensor<string, []>("query_1_axes_0"), val = tensor<int32, [1]>([-1])];
41
+ tensor<fp16, [128]> model_encoder_layers_0_norm1_weight_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_0_norm1_weight_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(123840)))];
42
+ tensor<fp16, [128]> model_encoder_layers_0_norm1_bias_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_0_norm1_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(124160)))];
43
+ tensor<fp16, []> var_84_to_fp16 = const()[name = tensor<string, []>("op_84_to_fp16"), val = tensor<fp16, []>(0x1.5p-17)];
44
+ tensor<fp16, [1, 224, 128]> query_1_cast_fp16 = layer_norm(axes = query_1_axes_0, beta = model_encoder_layers_0_norm1_bias_to_fp16, epsilon = var_84_to_fp16, gamma = model_encoder_layers_0_norm1_weight_to_fp16, x = src_1_cast_fp16)[name = tensor<string, []>("query_1_cast_fp16")];
45
+ tensor<int32, [3]> query_3_perm_0 = const()[name = tensor<string, []>("query_3_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
46
+ tensor<fp16, [384, 128]> model_encoder_layers_0_self_attn_in_proj_weight_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_0_self_attn_in_proj_weight_to_fp16"), val = tensor<fp16, [384, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(124480)))];
47
+ tensor<fp16, [384]> model_encoder_layers_0_self_attn_in_proj_bias_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_0_self_attn_in_proj_bias_to_fp16"), val = tensor<fp16, [384]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(222848)))];
48
+ tensor<fp16, [224, 1, 128]> query_3_cast_fp16 = transpose(perm = query_3_perm_0, x = query_1_cast_fp16)[name = tensor<string, []>("transpose_24")];
49
+ tensor<fp16, [224, 1, 384]> linear_0_cast_fp16 = linear(bias = model_encoder_layers_0_self_attn_in_proj_bias_to_fp16, weight = model_encoder_layers_0_self_attn_in_proj_weight_to_fp16, x = query_3_cast_fp16)[name = tensor<string, []>("linear_0_cast_fp16")];
50
+ tensor<int32, [4]> concat_0 = const()[name = tensor<string, []>("concat_0"), val = tensor<int32, [4]>([224, 1, 3, 128])];
51
+ tensor<fp16, [224, 1, 3, 128]> var_139_cast_fp16 = reshape(shape = concat_0, x = linear_0_cast_fp16)[name = tensor<string, []>("op_139_cast_fp16")];
52
+ tensor<int32, [1]> var_140_axes_0 = const()[name = tensor<string, []>("op_140_axes_0"), val = tensor<int32, [1]>([0])];
53
+ tensor<fp16, [1, 224, 1, 3, 128]> var_140_cast_fp16 = expand_dims(axes = var_140_axes_0, x = var_139_cast_fp16)[name = tensor<string, []>("op_140_cast_fp16")];
54
+ tensor<int32, [5]> var_141_perm_0 = const()[name = tensor<string, []>("op_141_perm_0"), val = tensor<int32, [5]>([-2, 1, 2, 0, 4])];
55
+ tensor<int32, [1]> var_142_axes_0 = const()[name = tensor<string, []>("op_142_axes_0"), val = tensor<int32, [1]>([-2])];
56
+ tensor<fp16, [3, 224, 1, 1, 128]> var_141_cast_fp16 = transpose(perm = var_141_perm_0, x = var_140_cast_fp16)[name = tensor<string, []>("transpose_23")];
57
+ tensor<fp16, [3, 224, 1, 128]> var_142_cast_fp16 = squeeze(axes = var_142_axes_0, x = var_141_cast_fp16)[name = tensor<string, []>("op_142_cast_fp16")];
58
+ tensor<int32, [4]> q_1_begin_0 = const()[name = tensor<string, []>("q_1_begin_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
59
+ tensor<int32, [4]> q_1_end_0 = const()[name = tensor<string, []>("q_1_end_0"), val = tensor<int32, [4]>([1, 224, 1, 128])];
60
+ tensor<bool, [4]> q_1_end_mask_0 = const()[name = tensor<string, []>("q_1_end_mask_0"), val = tensor<bool, [4]>([false, true, true, true])];
61
+ tensor<bool, [4]> q_1_squeeze_mask_0 = const()[name = tensor<string, []>("q_1_squeeze_mask_0"), val = tensor<bool, [4]>([true, false, false, false])];
62
+ tensor<fp16, [224, 1, 128]> q_1_cast_fp16 = slice_by_index(begin = q_1_begin_0, end = q_1_end_0, end_mask = q_1_end_mask_0, squeeze_mask = q_1_squeeze_mask_0, x = var_142_cast_fp16)[name = tensor<string, []>("q_1_cast_fp16")];
63
+ tensor<int32, [4]> k_1_begin_0 = const()[name = tensor<string, []>("k_1_begin_0"), val = tensor<int32, [4]>([1, 0, 0, 0])];
64
+ tensor<int32, [4]> k_1_end_0 = const()[name = tensor<string, []>("k_1_end_0"), val = tensor<int32, [4]>([2, 224, 1, 128])];
65
+ tensor<bool, [4]> k_1_end_mask_0 = const()[name = tensor<string, []>("k_1_end_mask_0"), val = tensor<bool, [4]>([false, true, true, true])];
66
+ tensor<bool, [4]> k_1_squeeze_mask_0 = const()[name = tensor<string, []>("k_1_squeeze_mask_0"), val = tensor<bool, [4]>([true, false, false, false])];
67
+ tensor<fp16, [224, 1, 128]> k_1_cast_fp16 = slice_by_index(begin = k_1_begin_0, end = k_1_end_0, end_mask = k_1_end_mask_0, squeeze_mask = k_1_squeeze_mask_0, x = var_142_cast_fp16)[name = tensor<string, []>("k_1_cast_fp16")];
68
+ tensor<int32, [4]> v_1_begin_0 = const()[name = tensor<string, []>("v_1_begin_0"), val = tensor<int32, [4]>([2, 0, 0, 0])];
69
+ tensor<int32, [4]> v_1_end_0 = const()[name = tensor<string, []>("v_1_end_0"), val = tensor<int32, [4]>([3, 224, 1, 128])];
70
+ tensor<bool, [4]> v_1_end_mask_0 = const()[name = tensor<string, []>("v_1_end_mask_0"), val = tensor<bool, [4]>([false, true, true, true])];
71
+ tensor<bool, [4]> v_1_squeeze_mask_0 = const()[name = tensor<string, []>("v_1_squeeze_mask_0"), val = tensor<bool, [4]>([true, false, false, false])];
72
+ tensor<fp16, [224, 1, 128]> v_1_cast_fp16 = slice_by_index(begin = v_1_begin_0, end = v_1_end_0, end_mask = v_1_end_mask_0, squeeze_mask = v_1_squeeze_mask_0, x = var_142_cast_fp16)[name = tensor<string, []>("v_1_cast_fp16")];
73
+ tensor<int32, [3]> var_150 = const()[name = tensor<string, []>("op_150"), val = tensor<int32, [3]>([224, 4, 32])];
74
+ tensor<fp16, [224, 4, 32]> var_151_cast_fp16 = reshape(shape = var_150, x = q_1_cast_fp16)[name = tensor<string, []>("op_151_cast_fp16")];
75
+ tensor<int32, [3]> q_3_perm_0 = const()[name = tensor<string, []>("q_3_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
76
+ tensor<int32, [3]> var_157 = const()[name = tensor<string, []>("op_157"), val = tensor<int32, [3]>([224, 4, 32])];
77
+ tensor<fp16, [224, 4, 32]> var_158_cast_fp16 = reshape(shape = var_157, x = k_1_cast_fp16)[name = tensor<string, []>("op_158_cast_fp16")];
78
+ tensor<int32, [3]> k_3_perm_0 = const()[name = tensor<string, []>("k_3_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
79
+ tensor<int32, [3]> var_164 = const()[name = tensor<string, []>("op_164"), val = tensor<int32, [3]>([224, 4, 32])];
80
+ tensor<fp16, [224, 4, 32]> var_165_cast_fp16 = reshape(shape = var_164, x = v_1_cast_fp16)[name = tensor<string, []>("op_165_cast_fp16")];
81
+ tensor<int32, [3]> v_3_perm_0 = const()[name = tensor<string, []>("v_3_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
82
+ tensor<int32, [4]> var_168 = const()[name = tensor<string, []>("op_168"), val = tensor<int32, [4]>([1, 1, 1, 224])];
83
+ tensor<fp16, [1, 1, 1, 224]> var_169_cast_fp16 = reshape(shape = var_168, x = key_padding_mask_1_cast_fp16)[name = tensor<string, []>("op_169_cast_fp16")];
84
+ tensor<int32, [4]> var_171_reps_0 = const()[name = tensor<string, []>("op_171_reps_0"), val = tensor<int32, [4]>([1, 4, 1, 1])];
85
+ tensor<fp16, [1, 4, 1, 224]> var_171_cast_fp16 = tile(reps = var_171_reps_0, x = var_169_cast_fp16)[name = tensor<string, []>("op_171_cast_fp16")];
86
+ tensor<int32, [4]> var_179 = const()[name = tensor<string, []>("op_179"), val = tensor<int32, [4]>([1, 4, 224, 32])];
87
+ tensor<fp16, [4, 224, 32]> q_3_cast_fp16 = transpose(perm = q_3_perm_0, x = var_151_cast_fp16)[name = tensor<string, []>("transpose_22")];
88
+ tensor<fp16, [1, 4, 224, 32]> q_5_cast_fp16 = reshape(shape = var_179, x = q_3_cast_fp16)[name = tensor<string, []>("q_5_cast_fp16")];
89
+ tensor<int32, [4]> var_181 = const()[name = tensor<string, []>("op_181"), val = tensor<int32, [4]>([1, 4, 224, 32])];
90
+ tensor<fp16, [4, 224, 32]> k_3_cast_fp16 = transpose(perm = k_3_perm_0, x = var_158_cast_fp16)[name = tensor<string, []>("transpose_21")];
91
+ tensor<fp16, [1, 4, 224, 32]> k_5_cast_fp16 = reshape(shape = var_181, x = k_3_cast_fp16)[name = tensor<string, []>("k_5_cast_fp16")];
92
+ tensor<int32, [4]> var_183 = const()[name = tensor<string, []>("op_183"), val = tensor<int32, [4]>([1, 4, 224, 32])];
93
+ tensor<fp16, [4, 224, 32]> v_3_cast_fp16 = transpose(perm = v_3_perm_0, x = var_165_cast_fp16)[name = tensor<string, []>("transpose_20")];
94
+ tensor<fp16, [1, 4, 224, 32]> v_5_cast_fp16 = reshape(shape = var_183, x = v_3_cast_fp16)[name = tensor<string, []>("v_5_cast_fp16")];
95
+ tensor<fp16, []> mul_1_y_0_to_fp16 = const()[name = tensor<string, []>("mul_1_y_0_to_fp16"), val = tensor<fp16, []>(0x1.6ap-3)];
96
+ tensor<fp16, [1, 4, 224, 32]> mul_1_cast_fp16 = mul(x = q_5_cast_fp16, y = mul_1_y_0_to_fp16)[name = tensor<string, []>("mul_1_cast_fp16")];
97
+ tensor<bool, []> matmul_0_transpose_y_0 = const()[name = tensor<string, []>("matmul_0_transpose_y_0"), val = tensor<bool, []>(true)];
98
+ tensor<bool, []> matmul_0_transpose_x_0 = const()[name = tensor<string, []>("matmul_0_transpose_x_0"), val = tensor<bool, []>(false)];
99
+ tensor<fp16, [1, 4, 224, 224]> matmul_0_cast_fp16 = matmul(transpose_x = matmul_0_transpose_x_0, transpose_y = matmul_0_transpose_y_0, x = mul_1_cast_fp16, y = k_5_cast_fp16)[name = tensor<string, []>("matmul_0_cast_fp16")];
100
+ tensor<fp16, [1, 4, 224, 224]> add_0_cast_fp16 = add(x = matmul_0_cast_fp16, y = var_171_cast_fp16)[name = tensor<string, []>("add_0_cast_fp16")];
101
+ tensor<int32, []> softmax_0_axis_0 = const()[name = tensor<string, []>("softmax_0_axis_0"), val = tensor<int32, []>(-1)];
102
+ tensor<fp16, [1, 4, 224, 224]> softmax_0_cast_fp16 = softmax(axis = softmax_0_axis_0, x = add_0_cast_fp16)[name = tensor<string, []>("softmax_0_cast_fp16")];
103
+ tensor<bool, []> attn_output_1_transpose_x_0 = const()[name = tensor<string, []>("attn_output_1_transpose_x_0"), val = tensor<bool, []>(false)];
104
+ tensor<bool, []> attn_output_1_transpose_y_0 = const()[name = tensor<string, []>("attn_output_1_transpose_y_0"), val = tensor<bool, []>(false)];
105
+ tensor<fp16, [1, 4, 224, 32]> attn_output_1_cast_fp16 = matmul(transpose_x = attn_output_1_transpose_x_0, transpose_y = attn_output_1_transpose_y_0, x = softmax_0_cast_fp16, y = v_5_cast_fp16)[name = tensor<string, []>("attn_output_1_cast_fp16")];
106
+ tensor<int32, [4]> var_186 = const()[name = tensor<string, []>("op_186"), val = tensor<int32, [4]>([2, 0, 1, 3])];
107
+ tensor<int32, [2]> var_191 = const()[name = tensor<string, []>("op_191"), val = tensor<int32, [2]>([224, 128])];
108
+ tensor<fp16, [224, 1, 4, 32]> var_187_cast_fp16 = transpose(perm = var_186, x = attn_output_1_cast_fp16)[name = tensor<string, []>("transpose_19")];
109
+ tensor<fp16, [224, 128]> attn_output_3_cast_fp16 = reshape(shape = var_191, x = var_187_cast_fp16)[name = tensor<string, []>("attn_output_3_cast_fp16")];
110
+ tensor<fp16, [128, 128]> model_encoder_layers_0_self_attn_out_proj_weight_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_0_self_attn_out_proj_weight_to_fp16"), val = tensor<fp16, [128, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(223680)))];
111
+ tensor<fp16, [128]> model_encoder_layers_0_self_attn_out_proj_bias_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_0_self_attn_out_proj_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(256512)))];
112
+ tensor<fp16, [224, 128]> linear_1_cast_fp16 = linear(bias = model_encoder_layers_0_self_attn_out_proj_bias_to_fp16, weight = model_encoder_layers_0_self_attn_out_proj_weight_to_fp16, x = attn_output_3_cast_fp16)[name = tensor<string, []>("linear_1_cast_fp16")];
113
+ tensor<int32, [3]> var_195 = const()[name = tensor<string, []>("op_195"), val = tensor<int32, [3]>([224, 1, 128])];
114
+ tensor<fp16, [224, 1, 128]> attn_output_7_cast_fp16 = reshape(shape = var_195, x = linear_1_cast_fp16)[name = tensor<string, []>("attn_output_7_cast_fp16")];
115
+ tensor<int32, [3]> input_3_perm_0 = const()[name = tensor<string, []>("input_3_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
116
+ tensor<fp16, [1, 224, 128]> input_3_cast_fp16 = transpose(perm = input_3_perm_0, x = attn_output_7_cast_fp16)[name = tensor<string, []>("transpose_18")];
117
+ tensor<fp16, [1, 224, 128]> input_5_cast_fp16 = add(x = src_1_cast_fp16, y = input_3_cast_fp16)[name = tensor<string, []>("input_5_cast_fp16")];
118
+ tensor<int32, [1]> input_7_axes_0 = const()[name = tensor<string, []>("input_7_axes_0"), val = tensor<int32, [1]>([-1])];
119
+ tensor<fp16, [128]> model_encoder_layers_0_norm2_weight_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_0_norm2_weight_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(256832)))];
120
+ tensor<fp16, [128]> model_encoder_layers_0_norm2_bias_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_0_norm2_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(257152)))];
121
+ tensor<fp16, [1, 224, 128]> input_7_cast_fp16 = layer_norm(axes = input_7_axes_0, beta = model_encoder_layers_0_norm2_bias_to_fp16, epsilon = var_84_to_fp16, gamma = model_encoder_layers_0_norm2_weight_to_fp16, x = input_5_cast_fp16)[name = tensor<string, []>("input_7_cast_fp16")];
122
+ tensor<fp16, [512, 128]> model_encoder_layers_0_linear1_weight_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_0_linear1_weight_to_fp16"), val = tensor<fp16, [512, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(257472)))];
123
+ tensor<fp16, [512]> model_encoder_layers_0_linear1_bias_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_0_linear1_bias_to_fp16"), val = tensor<fp16, [512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(388608)))];
124
+ tensor<fp16, [1, 224, 512]> linear_2_cast_fp16 = linear(bias = model_encoder_layers_0_linear1_bias_to_fp16, weight = model_encoder_layers_0_linear1_weight_to_fp16, x = input_7_cast_fp16)[name = tensor<string, []>("linear_2_cast_fp16")];
125
+ tensor<fp16, [1, 224, 512]> input_11_cast_fp16 = relu(x = linear_2_cast_fp16)[name = tensor<string, []>("input_11_cast_fp16")];
126
+ tensor<fp16, [128, 512]> model_encoder_layers_0_linear2_weight_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_0_linear2_weight_to_fp16"), val = tensor<fp16, [128, 512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(389696)))];
127
+ tensor<fp16, [128]> model_encoder_layers_0_linear2_bias_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_0_linear2_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(520832)))];
128
+ tensor<fp16, [1, 224, 128]> linear_3_cast_fp16 = linear(bias = model_encoder_layers_0_linear2_bias_to_fp16, weight = model_encoder_layers_0_linear2_weight_to_fp16, x = input_11_cast_fp16)[name = tensor<string, []>("linear_3_cast_fp16")];
129
+ tensor<fp16, [1, 224, 128]> input_17_cast_fp16 = add(x = input_5_cast_fp16, y = linear_3_cast_fp16)[name = tensor<string, []>("input_17_cast_fp16")];
130
+ tensor<int32, [1]> query_5_axes_0 = const()[name = tensor<string, []>("query_5_axes_0"), val = tensor<int32, [1]>([-1])];
131
+ tensor<fp16, [128]> model_encoder_layers_1_norm1_weight_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_1_norm1_weight_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(521152)))];
132
+ tensor<fp16, [128]> model_encoder_layers_1_norm1_bias_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_1_norm1_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(521472)))];
133
+ tensor<fp16, [1, 224, 128]> query_5_cast_fp16 = layer_norm(axes = query_5_axes_0, beta = model_encoder_layers_1_norm1_bias_to_fp16, epsilon = var_84_to_fp16, gamma = model_encoder_layers_1_norm1_weight_to_fp16, x = input_17_cast_fp16)[name = tensor<string, []>("query_5_cast_fp16")];
134
+ tensor<int32, [3]> query_7_perm_0 = const()[name = tensor<string, []>("query_7_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
135
+ tensor<fp16, [384, 128]> model_encoder_layers_1_self_attn_in_proj_weight_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_1_self_attn_in_proj_weight_to_fp16"), val = tensor<fp16, [384, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(521792)))];
136
+ tensor<fp16, [384]> model_encoder_layers_1_self_attn_in_proj_bias_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_1_self_attn_in_proj_bias_to_fp16"), val = tensor<fp16, [384]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(620160)))];
137
+ tensor<fp16, [224, 1, 128]> query_7_cast_fp16 = transpose(perm = query_7_perm_0, x = query_5_cast_fp16)[name = tensor<string, []>("transpose_17")];
138
+ tensor<fp16, [224, 1, 384]> linear_4_cast_fp16 = linear(bias = model_encoder_layers_1_self_attn_in_proj_bias_to_fp16, weight = model_encoder_layers_1_self_attn_in_proj_weight_to_fp16, x = query_7_cast_fp16)[name = tensor<string, []>("linear_4_cast_fp16")];
139
+ tensor<int32, [4]> concat_2 = const()[name = tensor<string, []>("concat_2"), val = tensor<int32, [4]>([224, 1, 3, 128])];
140
+ tensor<fp16, [224, 1, 3, 128]> var_246_cast_fp16 = reshape(shape = concat_2, x = linear_4_cast_fp16)[name = tensor<string, []>("op_246_cast_fp16")];
141
+ tensor<int32, [1]> var_247_axes_0 = const()[name = tensor<string, []>("op_247_axes_0"), val = tensor<int32, [1]>([0])];
142
+ tensor<fp16, [1, 224, 1, 3, 128]> var_247_cast_fp16 = expand_dims(axes = var_247_axes_0, x = var_246_cast_fp16)[name = tensor<string, []>("op_247_cast_fp16")];
143
+ tensor<int32, [5]> var_248_perm_0 = const()[name = tensor<string, []>("op_248_perm_0"), val = tensor<int32, [5]>([-2, 1, 2, 0, 4])];
144
+ tensor<int32, [1]> var_249_axes_0 = const()[name = tensor<string, []>("op_249_axes_0"), val = tensor<int32, [1]>([-2])];
145
+ tensor<fp16, [3, 224, 1, 1, 128]> var_248_cast_fp16 = transpose(perm = var_248_perm_0, x = var_247_cast_fp16)[name = tensor<string, []>("transpose_16")];
146
+ tensor<fp16, [3, 224, 1, 128]> var_249_cast_fp16 = squeeze(axes = var_249_axes_0, x = var_248_cast_fp16)[name = tensor<string, []>("op_249_cast_fp16")];
147
+ tensor<int32, [4]> q_7_begin_0 = const()[name = tensor<string, []>("q_7_begin_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
148
+ tensor<int32, [4]> q_7_end_0 = const()[name = tensor<string, []>("q_7_end_0"), val = tensor<int32, [4]>([1, 224, 1, 128])];
149
+ tensor<bool, [4]> q_7_end_mask_0 = const()[name = tensor<string, []>("q_7_end_mask_0"), val = tensor<bool, [4]>([false, true, true, true])];
150
+ tensor<bool, [4]> q_7_squeeze_mask_0 = const()[name = tensor<string, []>("q_7_squeeze_mask_0"), val = tensor<bool, [4]>([true, false, false, false])];
151
+ tensor<fp16, [224, 1, 128]> q_7_cast_fp16 = slice_by_index(begin = q_7_begin_0, end = q_7_end_0, end_mask = q_7_end_mask_0, squeeze_mask = q_7_squeeze_mask_0, x = var_249_cast_fp16)[name = tensor<string, []>("q_7_cast_fp16")];
152
+ tensor<int32, [4]> k_7_begin_0 = const()[name = tensor<string, []>("k_7_begin_0"), val = tensor<int32, [4]>([1, 0, 0, 0])];
153
+ tensor<int32, [4]> k_7_end_0 = const()[name = tensor<string, []>("k_7_end_0"), val = tensor<int32, [4]>([2, 224, 1, 128])];
154
+ tensor<bool, [4]> k_7_end_mask_0 = const()[name = tensor<string, []>("k_7_end_mask_0"), val = tensor<bool, [4]>([false, true, true, true])];
155
+ tensor<bool, [4]> k_7_squeeze_mask_0 = const()[name = tensor<string, []>("k_7_squeeze_mask_0"), val = tensor<bool, [4]>([true, false, false, false])];
156
+ tensor<fp16, [224, 1, 128]> k_7_cast_fp16 = slice_by_index(begin = k_7_begin_0, end = k_7_end_0, end_mask = k_7_end_mask_0, squeeze_mask = k_7_squeeze_mask_0, x = var_249_cast_fp16)[name = tensor<string, []>("k_7_cast_fp16")];
157
+ tensor<int32, [4]> v_7_begin_0 = const()[name = tensor<string, []>("v_7_begin_0"), val = tensor<int32, [4]>([2, 0, 0, 0])];
158
+ tensor<int32, [4]> v_7_end_0 = const()[name = tensor<string, []>("v_7_end_0"), val = tensor<int32, [4]>([3, 224, 1, 128])];
159
+ tensor<bool, [4]> v_7_end_mask_0 = const()[name = tensor<string, []>("v_7_end_mask_0"), val = tensor<bool, [4]>([false, true, true, true])];
160
+ tensor<bool, [4]> v_7_squeeze_mask_0 = const()[name = tensor<string, []>("v_7_squeeze_mask_0"), val = tensor<bool, [4]>([true, false, false, false])];
161
+ tensor<fp16, [224, 1, 128]> v_7_cast_fp16 = slice_by_index(begin = v_7_begin_0, end = v_7_end_0, end_mask = v_7_end_mask_0, squeeze_mask = v_7_squeeze_mask_0, x = var_249_cast_fp16)[name = tensor<string, []>("v_7_cast_fp16")];
162
+ tensor<int32, [3]> var_257 = const()[name = tensor<string, []>("op_257"), val = tensor<int32, [3]>([224, 4, 32])];
163
+ tensor<fp16, [224, 4, 32]> var_258_cast_fp16 = reshape(shape = var_257, x = q_7_cast_fp16)[name = tensor<string, []>("op_258_cast_fp16")];
164
+ tensor<int32, [3]> q_9_perm_0 = const()[name = tensor<string, []>("q_9_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
165
+ tensor<int32, [3]> var_264 = const()[name = tensor<string, []>("op_264"), val = tensor<int32, [3]>([224, 4, 32])];
166
+ tensor<fp16, [224, 4, 32]> var_265_cast_fp16 = reshape(shape = var_264, x = k_7_cast_fp16)[name = tensor<string, []>("op_265_cast_fp16")];
167
+ tensor<int32, [3]> k_9_perm_0 = const()[name = tensor<string, []>("k_9_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
168
+ tensor<int32, [3]> var_271 = const()[name = tensor<string, []>("op_271"), val = tensor<int32, [3]>([224, 4, 32])];
169
+ tensor<fp16, [224, 4, 32]> var_272_cast_fp16 = reshape(shape = var_271, x = v_7_cast_fp16)[name = tensor<string, []>("op_272_cast_fp16")];
170
+ tensor<int32, [3]> v_9_perm_0 = const()[name = tensor<string, []>("v_9_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
171
+ tensor<int32, [4]> var_286 = const()[name = tensor<string, []>("op_286"), val = tensor<int32, [4]>([1, 4, 224, 32])];
172
+ tensor<fp16, [4, 224, 32]> q_9_cast_fp16 = transpose(perm = q_9_perm_0, x = var_258_cast_fp16)[name = tensor<string, []>("transpose_15")];
173
+ tensor<fp16, [1, 4, 224, 32]> q_11_cast_fp16 = reshape(shape = var_286, x = q_9_cast_fp16)[name = tensor<string, []>("q_11_cast_fp16")];
174
+ tensor<int32, [4]> var_288 = const()[name = tensor<string, []>("op_288"), val = tensor<int32, [4]>([1, 4, 224, 32])];
175
+ tensor<fp16, [4, 224, 32]> k_9_cast_fp16 = transpose(perm = k_9_perm_0, x = var_265_cast_fp16)[name = tensor<string, []>("transpose_14")];
176
+ tensor<fp16, [1, 4, 224, 32]> k_11_cast_fp16 = reshape(shape = var_288, x = k_9_cast_fp16)[name = tensor<string, []>("k_11_cast_fp16")];
177
+ tensor<int32, [4]> var_290 = const()[name = tensor<string, []>("op_290"), val = tensor<int32, [4]>([1, 4, 224, 32])];
178
+ tensor<fp16, [4, 224, 32]> v_9_cast_fp16 = transpose(perm = v_9_perm_0, x = var_272_cast_fp16)[name = tensor<string, []>("transpose_13")];
179
+ tensor<fp16, [1, 4, 224, 32]> v_11_cast_fp16 = reshape(shape = var_290, x = v_9_cast_fp16)[name = tensor<string, []>("v_11_cast_fp16")];
180
+ tensor<fp16, []> mul_3_y_0_to_fp16 = const()[name = tensor<string, []>("mul_3_y_0_to_fp16"), val = tensor<fp16, []>(0x1.6ap-3)];
181
+ tensor<fp16, [1, 4, 224, 32]> mul_3_cast_fp16 = mul(x = q_11_cast_fp16, y = mul_3_y_0_to_fp16)[name = tensor<string, []>("mul_3_cast_fp16")];
182
+ tensor<bool, []> matmul_1_transpose_y_0 = const()[name = tensor<string, []>("matmul_1_transpose_y_0"), val = tensor<bool, []>(true)];
183
+ tensor<bool, []> matmul_1_transpose_x_0 = const()[name = tensor<string, []>("matmul_1_transpose_x_0"), val = tensor<bool, []>(false)];
184
+ tensor<fp16, [1, 4, 224, 224]> matmul_1_cast_fp16 = matmul(transpose_x = matmul_1_transpose_x_0, transpose_y = matmul_1_transpose_y_0, x = mul_3_cast_fp16, y = k_11_cast_fp16)[name = tensor<string, []>("matmul_1_cast_fp16")];
185
+ tensor<fp16, [1, 4, 224, 224]> add_1_cast_fp16 = add(x = matmul_1_cast_fp16, y = var_171_cast_fp16)[name = tensor<string, []>("add_1_cast_fp16")];
186
+ tensor<int32, []> softmax_1_axis_0 = const()[name = tensor<string, []>("softmax_1_axis_0"), val = tensor<int32, []>(-1)];
187
+ tensor<fp16, [1, 4, 224, 224]> softmax_1_cast_fp16 = softmax(axis = softmax_1_axis_0, x = add_1_cast_fp16)[name = tensor<string, []>("softmax_1_cast_fp16")];
188
+ tensor<bool, []> attn_output_9_transpose_x_0 = const()[name = tensor<string, []>("attn_output_9_transpose_x_0"), val = tensor<bool, []>(false)];
189
+ tensor<bool, []> attn_output_9_transpose_y_0 = const()[name = tensor<string, []>("attn_output_9_transpose_y_0"), val = tensor<bool, []>(false)];
190
+ tensor<fp16, [1, 4, 224, 32]> attn_output_9_cast_fp16 = matmul(transpose_x = attn_output_9_transpose_x_0, transpose_y = attn_output_9_transpose_y_0, x = softmax_1_cast_fp16, y = v_11_cast_fp16)[name = tensor<string, []>("attn_output_9_cast_fp16")];
191
+ tensor<int32, [4]> var_293 = const()[name = tensor<string, []>("op_293"), val = tensor<int32, [4]>([2, 0, 1, 3])];
192
+ tensor<int32, [2]> var_298 = const()[name = tensor<string, []>("op_298"), val = tensor<int32, [2]>([224, 128])];
193
+ tensor<fp16, [224, 1, 4, 32]> var_294_cast_fp16 = transpose(perm = var_293, x = attn_output_9_cast_fp16)[name = tensor<string, []>("transpose_12")];
194
+ tensor<fp16, [224, 128]> attn_output_11_cast_fp16 = reshape(shape = var_298, x = var_294_cast_fp16)[name = tensor<string, []>("attn_output_11_cast_fp16")];
195
+ tensor<fp16, [128, 128]> model_encoder_layers_1_self_attn_out_proj_weight_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_1_self_attn_out_proj_weight_to_fp16"), val = tensor<fp16, [128, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(620992)))];
196
+ tensor<fp16, [128]> model_encoder_layers_1_self_attn_out_proj_bias_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_1_self_attn_out_proj_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(653824)))];
197
+ tensor<fp16, [224, 128]> linear_5_cast_fp16 = linear(bias = model_encoder_layers_1_self_attn_out_proj_bias_to_fp16, weight = model_encoder_layers_1_self_attn_out_proj_weight_to_fp16, x = attn_output_11_cast_fp16)[name = tensor<string, []>("linear_5_cast_fp16")];
198
+ tensor<int32, [3]> var_302 = const()[name = tensor<string, []>("op_302"), val = tensor<int32, [3]>([224, 1, 128])];
199
+ tensor<fp16, [224, 1, 128]> attn_output_15_cast_fp16 = reshape(shape = var_302, x = linear_5_cast_fp16)[name = tensor<string, []>("attn_output_15_cast_fp16")];
200
+ tensor<int32, [3]> input_19_perm_0 = const()[name = tensor<string, []>("input_19_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
201
+ tensor<fp16, [1, 224, 128]> input_19_cast_fp16 = transpose(perm = input_19_perm_0, x = attn_output_15_cast_fp16)[name = tensor<string, []>("transpose_11")];
202
+ tensor<fp16, [1, 224, 128]> input_21_cast_fp16 = add(x = input_17_cast_fp16, y = input_19_cast_fp16)[name = tensor<string, []>("input_21_cast_fp16")];
203
+ tensor<int32, [1]> input_23_axes_0 = const()[name = tensor<string, []>("input_23_axes_0"), val = tensor<int32, [1]>([-1])];
204
+ tensor<fp16, [128]> model_encoder_layers_1_norm2_weight_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_1_norm2_weight_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(654144)))];
205
+ tensor<fp16, [128]> model_encoder_layers_1_norm2_bias_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_1_norm2_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(654464)))];
206
+ tensor<fp16, [1, 224, 128]> input_23_cast_fp16 = layer_norm(axes = input_23_axes_0, beta = model_encoder_layers_1_norm2_bias_to_fp16, epsilon = var_84_to_fp16, gamma = model_encoder_layers_1_norm2_weight_to_fp16, x = input_21_cast_fp16)[name = tensor<string, []>("input_23_cast_fp16")];
207
+ tensor<fp16, [512, 128]> model_encoder_layers_1_linear1_weight_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_1_linear1_weight_to_fp16"), val = tensor<fp16, [512, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(654784)))];
208
+ tensor<fp16, [512]> model_encoder_layers_1_linear1_bias_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_1_linear1_bias_to_fp16"), val = tensor<fp16, [512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(785920)))];
209
+ tensor<fp16, [1, 224, 512]> linear_6_cast_fp16 = linear(bias = model_encoder_layers_1_linear1_bias_to_fp16, weight = model_encoder_layers_1_linear1_weight_to_fp16, x = input_23_cast_fp16)[name = tensor<string, []>("linear_6_cast_fp16")];
210
+ tensor<fp16, [1, 224, 512]> input_27_cast_fp16 = relu(x = linear_6_cast_fp16)[name = tensor<string, []>("input_27_cast_fp16")];
211
+ tensor<fp16, [128, 512]> model_encoder_layers_1_linear2_weight_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_1_linear2_weight_to_fp16"), val = tensor<fp16, [128, 512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(787008)))];
212
+ tensor<fp16, [128]> model_encoder_layers_1_linear2_bias_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_1_linear2_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(918144)))];
213
+ tensor<fp16, [1, 224, 128]> linear_7_cast_fp16 = linear(bias = model_encoder_layers_1_linear2_bias_to_fp16, weight = model_encoder_layers_1_linear2_weight_to_fp16, x = input_27_cast_fp16)[name = tensor<string, []>("linear_7_cast_fp16")];
214
+ tensor<fp16, [1, 224, 128]> context_cast_fp16 = add(x = input_21_cast_fp16, y = linear_7_cast_fp16)[name = tensor<string, []>("context_cast_fp16")];
215
+ tensor<int32, [2]> var_340 = const()[name = tensor<string, []>("op_340"), val = tensor<int32, [2]>([32, 96])];
216
+ tensor<string, []> mask_option_ids_to_fp16_dtype_0 = const()[name = tensor<string, []>("mask_option_ids_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
217
+ tensor<fp16, [1, 32, 96]> option_ids_to_fp16 = cast(dtype = mask_option_ids_to_fp16_dtype_0, x = option_ids)[name = tensor<string, []>("cast_63")];
218
+ tensor<fp16, [32, 96]> mask_flat_ids_cast_fp16 = reshape(shape = var_340, x = option_ids_to_fp16)[name = tensor<string, []>("mask_flat_ids_cast_fp16")];
219
+ tensor<fp16, []> var_342_promoted_to_fp16 = const()[name = tensor<string, []>("op_342_promoted_to_fp16"), val = tensor<fp16, []>(0x0p+0)];
220
+ tensor<bool, [32, 96]> flat_mask_cast_fp16 = not_equal(x = mask_flat_ids_cast_fp16, y = var_342_promoted_to_fp16)[name = tensor<string, []>("flat_mask_cast_fp16")];
221
+ tensor<int32, [2]> var_353_begin_0 = const()[name = tensor<string, []>("op_353_begin_0"), val = tensor<int32, [2]>([0, 0])];
222
+ tensor<int32, [2]> var_353_end_0 = const()[name = tensor<string, []>("op_353_end_0"), val = tensor<int32, [2]>([32, 1])];
223
+ tensor<bool, [2]> var_353_end_mask_0 = const()[name = tensor<string, []>("op_353_end_mask_0"), val = tensor<bool, [2]>([true, false])];
224
+ tensor<fp16, [32, 1]> var_353_cast_fp16 = slice_by_index(begin = var_353_begin_0, end = var_353_end_0, end_mask = var_353_end_mask_0, x = mask_flat_ids_cast_fp16)[name = tensor<string, []>("op_353_cast_fp16")];
225
+ tensor<fp16, []> fill_like_1_value_0_to_fp16 = const()[name = tensor<string, []>("fill_like_1_value_0_to_fp16"), val = tensor<fp16, []>(0x1p+0)];
226
+ tensor<fp16, [32, 1]> fill_like_1_cast_fp16 = fill_like(ref_tensor = var_353_cast_fp16, value = fill_like_1_value_0_to_fp16)[name = tensor<string, []>("fill_like_1_cast_fp16")];
227
+ tensor<int32, [2]> var_369_begin_0 = const()[name = tensor<string, []>("op_369_begin_0"), val = tensor<int32, [2]>([0, 1])];
228
+ tensor<int32, [2]> var_369_end_0 = const()[name = tensor<string, []>("op_369_end_0"), val = tensor<int32, [2]>([32, 96])];
229
+ tensor<bool, [2]> var_369_end_mask_0 = const()[name = tensor<string, []>("op_369_end_mask_0"), val = tensor<bool, [2]>([true, true])];
230
+ tensor<fp16, [32, 95]> var_369_cast_fp16 = slice_by_index(begin = var_369_begin_0, end = var_369_end_0, end_mask = var_369_end_mask_0, x = mask_flat_ids_cast_fp16)[name = tensor<string, []>("op_369_cast_fp16")];
231
+ tensor<int32, []> var_371 = const()[name = tensor<string, []>("op_371"), val = tensor<int32, []>(1)];
232
+ tensor<bool, []> safe_ids_interleave_0 = const()[name = tensor<string, []>("safe_ids_interleave_0"), val = tensor<bool, []>(false)];
233
+ tensor<fp16, [32, 96]> safe_ids_cast_fp16 = concat(axis = var_371, interleave = safe_ids_interleave_0, values = (fill_like_1_cast_fp16, var_369_cast_fp16))[name = tensor<string, []>("safe_ids_cast_fp16")];
234
+ tensor<int32, [2]> reshape_0_shape_0 = const()[name = tensor<string, []>("reshape_0_shape_0"), val = tensor<int32, [2]>([32, 96])];
235
+ tensor<fp16, [32, 96]> reshape_0 = reshape(shape = reshape_0_shape_0, x = option_ids_to_fp16)[name = tensor<string, []>("reshape_0")];
236
+ tensor<string, []> cast_1_dtype_0 = const()[name = tensor<string, []>("cast_1_dtype_0"), val = tensor<string, []>("uint16")];
237
+ tensor<uint16, [32, 96]> cast_1 = cast(dtype = cast_1_dtype_0, x = reshape_0)[name = tensor<string, []>("cast_1")];
238
+ tensor<int32, []> gather_1_axis_0 = const()[name = tensor<string, []>("gather_1_axis_0"), val = tensor<int32, []>(0)];
239
+ tensor<int32, []> gather_1_batch_dims_0 = const()[name = tensor<string, []>("gather_1_batch_dims_0"), val = tensor<int32, []>(0)];
240
+ tensor<bool, []> gather_1_validate_indices_0 = const()[name = tensor<string, []>("gather_1_validate_indices_0"), val = tensor<bool, []>(false)];
241
+ tensor<fp16, [32, 96, 128]> gather_1 = gather(axis = gather_1_axis_0, batch_dims = gather_1_batch_dims_0, indices = cast_1, validate_indices = gather_1_validate_indices_0, x = model_embedding_weight_to_fp16)[name = tensor<string, []>("gather_1")];
242
+ tensor<fp16, [96, 128]> var_389_to_fp16 = const()[name = tensor<string, []>("op_389_to_fp16"), val = tensor<fp16, [96, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(918464)))];
243
+ tensor<fp16, [32, 96, 128]> src_cast_fp16 = add(x = gather_1, y = var_389_to_fp16)[name = tensor<string, []>("src_cast_fp16")];
244
+ tensor<fp16, []> var_392_promoted_to_fp16 = const()[name = tensor<string, []>("op_392_promoted_to_fp16"), val = tensor<fp16, []>(0x0p+0)];
245
+ tensor<bool, [32, 96]> mask_cast_fp16 = equal(x = safe_ids_cast_fp16, y = var_392_promoted_to_fp16)[name = tensor<string, []>("mask_cast_fp16")];
246
+ tensor<fp16, []> var_408_to_fp16 = const()[name = tensor<string, []>("op_408_to_fp16"), val = tensor<fp16, []>(-inf)];
247
+ tensor<fp16, [32, 96]> var_414_to_fp16 = const()[name = tensor<string, []>("op_414_to_fp16"), val = tensor<fp16, [32, 96]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(943104)))];
248
+ tensor<fp16, [32, 96]> key_padding_mask_7_cast_fp16 = select(a = var_408_to_fp16, b = var_414_to_fp16, cond = mask_cast_fp16)[name = tensor<string, []>("key_padding_mask_7_cast_fp16")];
249
+ tensor<int32, [1]> query_9_axes_0 = const()[name = tensor<string, []>("query_9_axes_0"), val = tensor<int32, [1]>([-1])];
250
+ tensor<fp16, [128]> model_option_encoder_layers_0_norm1_weight_to_fp16 = const()[name = tensor<string, []>("model_option_encoder_layers_0_norm1_weight_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(949312)))];
251
+ tensor<fp16, [128]> model_option_encoder_layers_0_norm1_bias_to_fp16 = const()[name = tensor<string, []>("model_option_encoder_layers_0_norm1_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(949632)))];
252
+ tensor<fp16, []> var_395_to_fp16 = const()[name = tensor<string, []>("op_395_to_fp16"), val = tensor<fp16, []>(0x1.5p-17)];
253
+ tensor<fp16, [32, 96, 128]> query_9_cast_fp16 = layer_norm(axes = query_9_axes_0, beta = model_option_encoder_layers_0_norm1_bias_to_fp16, epsilon = var_395_to_fp16, gamma = model_option_encoder_layers_0_norm1_weight_to_fp16, x = src_cast_fp16)[name = tensor<string, []>("query_9_cast_fp16")];
254
+ tensor<int32, [3]> query_11_perm_0 = const()[name = tensor<string, []>("query_11_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
255
+ tensor<fp16, [384, 128]> model_option_encoder_layers_0_self_attn_in_proj_weight_to_fp16 = const()[name = tensor<string, []>("model_option_encoder_layers_0_self_attn_in_proj_weight_to_fp16"), val = tensor<fp16, [384, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(949952)))];
256
+ tensor<fp16, [384]> model_option_encoder_layers_0_self_attn_in_proj_bias_to_fp16 = const()[name = tensor<string, []>("model_option_encoder_layers_0_self_attn_in_proj_bias_to_fp16"), val = tensor<fp16, [384]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1048320)))];
257
+ tensor<fp16, [96, 32, 128]> query_11_cast_fp16 = transpose(perm = query_11_perm_0, x = query_9_cast_fp16)[name = tensor<string, []>("transpose_10")];
258
+ tensor<fp16, [96, 32, 384]> linear_8_cast_fp16 = linear(bias = model_option_encoder_layers_0_self_attn_in_proj_bias_to_fp16, weight = model_option_encoder_layers_0_self_attn_in_proj_weight_to_fp16, x = query_11_cast_fp16)[name = tensor<string, []>("linear_8_cast_fp16")];
259
+ tensor<int32, [4]> concat_4 = const()[name = tensor<string, []>("concat_4"), val = tensor<int32, [4]>([96, 32, 3, 128])];
260
+ tensor<fp16, [96, 32, 3, 128]> var_448_cast_fp16 = reshape(shape = concat_4, x = linear_8_cast_fp16)[name = tensor<string, []>("op_448_cast_fp16")];
261
+ tensor<int32, [1]> var_449_axes_0 = const()[name = tensor<string, []>("op_449_axes_0"), val = tensor<int32, [1]>([0])];
262
+ tensor<fp16, [1, 96, 32, 3, 128]> var_449_cast_fp16 = expand_dims(axes = var_449_axes_0, x = var_448_cast_fp16)[name = tensor<string, []>("op_449_cast_fp16")];
263
+ tensor<int32, [5]> var_450_perm_0 = const()[name = tensor<string, []>("op_450_perm_0"), val = tensor<int32, [5]>([-2, 1, 2, 0, 4])];
264
+ tensor<int32, [1]> var_451_axes_0 = const()[name = tensor<string, []>("op_451_axes_0"), val = tensor<int32, [1]>([-2])];
265
+ tensor<fp16, [3, 96, 32, 1, 128]> var_450_cast_fp16 = transpose(perm = var_450_perm_0, x = var_449_cast_fp16)[name = tensor<string, []>("transpose_9")];
266
+ tensor<fp16, [3, 96, 32, 128]> var_451_cast_fp16 = squeeze(axes = var_451_axes_0, x = var_450_cast_fp16)[name = tensor<string, []>("op_451_cast_fp16")];
267
+ tensor<int32, [4]> q_13_begin_0 = const()[name = tensor<string, []>("q_13_begin_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
268
+ tensor<int32, [4]> q_13_end_0 = const()[name = tensor<string, []>("q_13_end_0"), val = tensor<int32, [4]>([1, 96, 32, 128])];
269
+ tensor<bool, [4]> q_13_end_mask_0 = const()[name = tensor<string, []>("q_13_end_mask_0"), val = tensor<bool, [4]>([false, true, true, true])];
270
+ tensor<bool, [4]> q_13_squeeze_mask_0 = const()[name = tensor<string, []>("q_13_squeeze_mask_0"), val = tensor<bool, [4]>([true, false, false, false])];
271
+ tensor<fp16, [96, 32, 128]> q_13_cast_fp16 = slice_by_index(begin = q_13_begin_0, end = q_13_end_0, end_mask = q_13_end_mask_0, squeeze_mask = q_13_squeeze_mask_0, x = var_451_cast_fp16)[name = tensor<string, []>("q_13_cast_fp16")];
272
+ tensor<int32, [4]> k_13_begin_0 = const()[name = tensor<string, []>("k_13_begin_0"), val = tensor<int32, [4]>([1, 0, 0, 0])];
273
+ tensor<int32, [4]> k_13_end_0 = const()[name = tensor<string, []>("k_13_end_0"), val = tensor<int32, [4]>([2, 96, 32, 128])];
274
+ tensor<bool, [4]> k_13_end_mask_0 = const()[name = tensor<string, []>("k_13_end_mask_0"), val = tensor<bool, [4]>([false, true, true, true])];
275
+ tensor<bool, [4]> k_13_squeeze_mask_0 = const()[name = tensor<string, []>("k_13_squeeze_mask_0"), val = tensor<bool, [4]>([true, false, false, false])];
276
+ tensor<fp16, [96, 32, 128]> k_13_cast_fp16 = slice_by_index(begin = k_13_begin_0, end = k_13_end_0, end_mask = k_13_end_mask_0, squeeze_mask = k_13_squeeze_mask_0, x = var_451_cast_fp16)[name = tensor<string, []>("k_13_cast_fp16")];
277
+ tensor<int32, [4]> v_13_begin_0 = const()[name = tensor<string, []>("v_13_begin_0"), val = tensor<int32, [4]>([2, 0, 0, 0])];
278
+ tensor<int32, [4]> v_13_end_0 = const()[name = tensor<string, []>("v_13_end_0"), val = tensor<int32, [4]>([3, 96, 32, 128])];
279
+ tensor<bool, [4]> v_13_end_mask_0 = const()[name = tensor<string, []>("v_13_end_mask_0"), val = tensor<bool, [4]>([false, true, true, true])];
280
+ tensor<bool, [4]> v_13_squeeze_mask_0 = const()[name = tensor<string, []>("v_13_squeeze_mask_0"), val = tensor<bool, [4]>([true, false, false, false])];
281
+ tensor<fp16, [96, 32, 128]> v_13_cast_fp16 = slice_by_index(begin = v_13_begin_0, end = v_13_end_0, end_mask = v_13_end_mask_0, squeeze_mask = v_13_squeeze_mask_0, x = var_451_cast_fp16)[name = tensor<string, []>("v_13_cast_fp16")];
282
+ tensor<int32, [3]> var_459 = const()[name = tensor<string, []>("op_459"), val = tensor<int32, [3]>([96, 128, 32])];
283
+ tensor<fp16, [96, 128, 32]> var_460_cast_fp16 = reshape(shape = var_459, x = q_13_cast_fp16)[name = tensor<string, []>("op_460_cast_fp16")];
284
+ tensor<int32, [3]> q_15_perm_0 = const()[name = tensor<string, []>("q_15_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
285
+ tensor<int32, [3]> var_466 = const()[name = tensor<string, []>("op_466"), val = tensor<int32, [3]>([96, 128, 32])];
286
+ tensor<fp16, [96, 128, 32]> var_467_cast_fp16 = reshape(shape = var_466, x = k_13_cast_fp16)[name = tensor<string, []>("op_467_cast_fp16")];
287
+ tensor<int32, [3]> k_15_perm_0 = const()[name = tensor<string, []>("k_15_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
288
+ tensor<int32, [3]> var_473 = const()[name = tensor<string, []>("op_473"), val = tensor<int32, [3]>([96, 128, 32])];
289
+ tensor<fp16, [96, 128, 32]> var_474_cast_fp16 = reshape(shape = var_473, x = v_13_cast_fp16)[name = tensor<string, []>("op_474_cast_fp16")];
290
+ tensor<int32, [3]> v_15_perm_0 = const()[name = tensor<string, []>("v_15_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
291
+ tensor<int32, [4]> var_477 = const()[name = tensor<string, []>("op_477"), val = tensor<int32, [4]>([32, 1, 1, 96])];
292
+ tensor<fp16, [32, 1, 1, 96]> var_478_cast_fp16 = reshape(shape = var_477, x = key_padding_mask_7_cast_fp16)[name = tensor<string, []>("op_478_cast_fp16")];
293
+ tensor<int32, [4]> var_480_reps_0 = const()[name = tensor<string, []>("op_480_reps_0"), val = tensor<int32, [4]>([1, 4, 1, 1])];
294
+ tensor<fp16, [32, 4, 1, 96]> var_480_cast_fp16 = tile(reps = var_480_reps_0, x = var_478_cast_fp16)[name = tensor<string, []>("op_480_cast_fp16")];
295
+ tensor<int32, [4]> var_488 = const()[name = tensor<string, []>("op_488"), val = tensor<int32, [4]>([32, 4, 96, 32])];
296
+ tensor<fp16, [128, 96, 32]> q_15_cast_fp16 = transpose(perm = q_15_perm_0, x = var_460_cast_fp16)[name = tensor<string, []>("transpose_8")];
297
+ tensor<fp16, [32, 4, 96, 32]> q_cast_fp16 = reshape(shape = var_488, x = q_15_cast_fp16)[name = tensor<string, []>("q_cast_fp16")];
298
+ tensor<int32, [4]> var_490 = const()[name = tensor<string, []>("op_490"), val = tensor<int32, [4]>([32, 4, 96, 32])];
299
+ tensor<fp16, [128, 96, 32]> k_15_cast_fp16 = transpose(perm = k_15_perm_0, x = var_467_cast_fp16)[name = tensor<string, []>("transpose_7")];
300
+ tensor<fp16, [32, 4, 96, 32]> k_cast_fp16 = reshape(shape = var_490, x = k_15_cast_fp16)[name = tensor<string, []>("k_cast_fp16")];
301
+ tensor<int32, [4]> var_492 = const()[name = tensor<string, []>("op_492"), val = tensor<int32, [4]>([32, 4, 96, 32])];
302
+ tensor<fp16, [128, 96, 32]> v_15_cast_fp16 = transpose(perm = v_15_perm_0, x = var_474_cast_fp16)[name = tensor<string, []>("transpose_6")];
303
+ tensor<fp16, [32, 4, 96, 32]> v_cast_fp16 = reshape(shape = var_492, x = v_15_cast_fp16)[name = tensor<string, []>("v_cast_fp16")];
304
+ tensor<fp16, []> mul_5_y_0_to_fp16 = const()[name = tensor<string, []>("mul_5_y_0_to_fp16"), val = tensor<fp16, []>(0x1.6ap-3)];
305
+ tensor<fp16, [32, 4, 96, 32]> mul_5_cast_fp16 = mul(x = q_cast_fp16, y = mul_5_y_0_to_fp16)[name = tensor<string, []>("mul_5_cast_fp16")];
306
+ tensor<bool, []> matmul_2_transpose_y_0 = const()[name = tensor<string, []>("matmul_2_transpose_y_0"), val = tensor<bool, []>(true)];
307
+ tensor<bool, []> matmul_2_transpose_x_0 = const()[name = tensor<string, []>("matmul_2_transpose_x_0"), val = tensor<bool, []>(false)];
308
+ tensor<fp16, [32, 4, 96, 96]> matmul_2_cast_fp16 = matmul(transpose_x = matmul_2_transpose_x_0, transpose_y = matmul_2_transpose_y_0, x = mul_5_cast_fp16, y = k_cast_fp16)[name = tensor<string, []>("matmul_2_cast_fp16")];
309
+ tensor<fp16, [32, 4, 96, 96]> add_2_cast_fp16 = add(x = matmul_2_cast_fp16, y = var_480_cast_fp16)[name = tensor<string, []>("add_2_cast_fp16")];
310
+ tensor<int32, []> softmax_2_axis_0 = const()[name = tensor<string, []>("softmax_2_axis_0"), val = tensor<int32, []>(-1)];
311
+ tensor<fp16, [32, 4, 96, 96]> softmax_2_cast_fp16 = softmax(axis = softmax_2_axis_0, x = add_2_cast_fp16)[name = tensor<string, []>("softmax_2_cast_fp16")];
312
+ tensor<bool, []> attn_output_17_transpose_x_0 = const()[name = tensor<string, []>("attn_output_17_transpose_x_0"), val = tensor<bool, []>(false)];
313
+ tensor<bool, []> attn_output_17_transpose_y_0 = const()[name = tensor<string, []>("attn_output_17_transpose_y_0"), val = tensor<bool, []>(false)];
314
+ tensor<fp16, [32, 4, 96, 32]> attn_output_17_cast_fp16 = matmul(transpose_x = attn_output_17_transpose_x_0, transpose_y = attn_output_17_transpose_y_0, x = softmax_2_cast_fp16, y = v_cast_fp16)[name = tensor<string, []>("attn_output_17_cast_fp16")];
315
+ tensor<int32, [4]> var_495 = const()[name = tensor<string, []>("op_495"), val = tensor<int32, [4]>([2, 0, 1, 3])];
316
+ tensor<int32, [2]> var_500 = const()[name = tensor<string, []>("op_500"), val = tensor<int32, [2]>([3072, 128])];
317
+ tensor<fp16, [96, 32, 4, 32]> var_496_cast_fp16 = transpose(perm = var_495, x = attn_output_17_cast_fp16)[name = tensor<string, []>("transpose_5")];
318
+ tensor<fp16, [3072, 128]> attn_output_19_cast_fp16 = reshape(shape = var_500, x = var_496_cast_fp16)[name = tensor<string, []>("attn_output_19_cast_fp16")];
319
+ tensor<fp16, [128, 128]> model_option_encoder_layers_0_self_attn_out_proj_weight_to_fp16 = const()[name = tensor<string, []>("model_option_encoder_layers_0_self_attn_out_proj_weight_to_fp16"), val = tensor<fp16, [128, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1049152)))];
320
+ tensor<fp16, [128]> model_option_encoder_layers_0_self_attn_out_proj_bias_to_fp16 = const()[name = tensor<string, []>("model_option_encoder_layers_0_self_attn_out_proj_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1081984)))];
321
+ tensor<fp16, [3072, 128]> linear_9_cast_fp16 = linear(bias = model_option_encoder_layers_0_self_attn_out_proj_bias_to_fp16, weight = model_option_encoder_layers_0_self_attn_out_proj_weight_to_fp16, x = attn_output_19_cast_fp16)[name = tensor<string, []>("linear_9_cast_fp16")];
322
+ tensor<int32, [3]> var_504 = const()[name = tensor<string, []>("op_504"), val = tensor<int32, [3]>([96, 32, 128])];
323
+ tensor<fp16, [96, 32, 128]> attn_output_cast_fp16 = reshape(shape = var_504, x = linear_9_cast_fp16)[name = tensor<string, []>("attn_output_cast_fp16")];
324
+ tensor<int32, [3]> input_35_perm_0 = const()[name = tensor<string, []>("input_35_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
325
+ tensor<fp16, [32, 96, 128]> input_35_cast_fp16 = transpose(perm = input_35_perm_0, x = attn_output_cast_fp16)[name = tensor<string, []>("transpose_4")];
326
+ tensor<fp16, [32, 96, 128]> input_37_cast_fp16 = add(x = src_cast_fp16, y = input_35_cast_fp16)[name = tensor<string, []>("input_37_cast_fp16")];
327
+ tensor<int32, [1]> input_39_axes_0 = const()[name = tensor<string, []>("input_39_axes_0"), val = tensor<int32, [1]>([-1])];
328
+ tensor<fp16, [128]> model_option_encoder_layers_0_norm2_weight_to_fp16 = const()[name = tensor<string, []>("model_option_encoder_layers_0_norm2_weight_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1082304)))];
329
+ tensor<fp16, [128]> model_option_encoder_layers_0_norm2_bias_to_fp16 = const()[name = tensor<string, []>("model_option_encoder_layers_0_norm2_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1082624)))];
330
+ tensor<fp16, [32, 96, 128]> input_39_cast_fp16 = layer_norm(axes = input_39_axes_0, beta = model_option_encoder_layers_0_norm2_bias_to_fp16, epsilon = var_395_to_fp16, gamma = model_option_encoder_layers_0_norm2_weight_to_fp16, x = input_37_cast_fp16)[name = tensor<string, []>("input_39_cast_fp16")];
331
+ tensor<fp16, [512, 128]> model_option_encoder_layers_0_linear1_weight_to_fp16 = const()[name = tensor<string, []>("model_option_encoder_layers_0_linear1_weight_to_fp16"), val = tensor<fp16, [512, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1082944)))];
332
+ tensor<fp16, [512]> model_option_encoder_layers_0_linear1_bias_to_fp16 = const()[name = tensor<string, []>("model_option_encoder_layers_0_linear1_bias_to_fp16"), val = tensor<fp16, [512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1214080)))];
333
+ tensor<fp16, [32, 96, 512]> linear_10_cast_fp16 = linear(bias = model_option_encoder_layers_0_linear1_bias_to_fp16, weight = model_option_encoder_layers_0_linear1_weight_to_fp16, x = input_39_cast_fp16)[name = tensor<string, []>("linear_10_cast_fp16")];
334
+ tensor<fp16, [32, 96, 512]> input_43_cast_fp16 = relu(x = linear_10_cast_fp16)[name = tensor<string, []>("input_43_cast_fp16")];
335
+ tensor<fp16, [128, 512]> model_option_encoder_layers_0_linear2_weight_to_fp16 = const()[name = tensor<string, []>("model_option_encoder_layers_0_linear2_weight_to_fp16"), val = tensor<fp16, [128, 512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1215168)))];
336
+ tensor<fp16, [128]> model_option_encoder_layers_0_linear2_bias_to_fp16 = const()[name = tensor<string, []>("model_option_encoder_layers_0_linear2_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1346304)))];
337
+ tensor<fp16, [32, 96, 128]> linear_11_cast_fp16 = linear(bias = model_option_encoder_layers_0_linear2_bias_to_fp16, weight = model_option_encoder_layers_0_linear2_weight_to_fp16, x = input_43_cast_fp16)[name = tensor<string, []>("linear_11_cast_fp16")];
338
+ tensor<fp16, [32, 96, 128]> hidden_cast_fp16 = add(x = input_37_cast_fp16, y = linear_11_cast_fp16)[name = tensor<string, []>("hidden_cast_fp16")];
339
+ tensor<int32, [1]> var_524_axes_0 = const()[name = tensor<string, []>("op_524_axes_0"), val = tensor<int32, [1]>([-1])];
340
+ tensor<bool, [32, 96, 1]> var_524 = expand_dims(axes = var_524_axes_0, x = flat_mask_cast_fp16)[name = tensor<string, []>("op_524")];
341
+ tensor<string, []> weights_to_fp16_dtype_0 = const()[name = tensor<string, []>("weights_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
342
+ tensor<fp16, [32, 96, 1]> var_524_to_fp16 = cast(dtype = weights_to_fp16_dtype_0, x = var_524)[name = tensor<string, []>("cast_59")];
343
+ tensor<fp16, [32, 96, 128]> var_530_cast_fp16 = mul(x = hidden_cast_fp16, y = var_524_to_fp16)[name = tensor<string, []>("op_530_cast_fp16")];
344
+ tensor<int32, [1]> var_535_axes_0 = const()[name = tensor<string, []>("op_535_axes_0"), val = tensor<int32, [1]>([1])];
345
+ tensor<bool, []> var_535_keep_dims_0 = const()[name = tensor<string, []>("op_535_keep_dims_0"), val = tensor<bool, []>(false)];
346
+ tensor<fp16, [32, 128]> var_535_cast_fp16 = reduce_sum(axes = var_535_axes_0, keep_dims = var_535_keep_dims_0, x = var_530_cast_fp16)[name = tensor<string, []>("op_535_cast_fp16")];
347
+ tensor<int32, [1]> var_540_axes_0 = const()[name = tensor<string, []>("op_540_axes_0"), val = tensor<int32, [1]>([1])];
348
+ tensor<bool, []> var_540_keep_dims_0 = const()[name = tensor<string, []>("op_540_keep_dims_0"), val = tensor<bool, []>(false)];
349
+ tensor<fp16, [32, 1]> var_540_cast_fp16 = reduce_sum(axes = var_540_axes_0, keep_dims = var_540_keep_dims_0, x = var_524_to_fp16)[name = tensor<string, []>("op_540_cast_fp16")];
350
+ tensor<fp16, []> var_541_to_fp16 = const()[name = tensor<string, []>("op_541_to_fp16"), val = tensor<fp16, []>(0x1p+0)];
351
+ tensor<fp16, [32, 1]> var_542_cast_fp16 = maximum(x = var_540_cast_fp16, y = var_541_to_fp16)[name = tensor<string, []>("op_542_cast_fp16")];
352
+ tensor<fp16, [32, 128]> pooled_cast_fp16 = real_div(x = var_535_cast_fp16, y = var_542_cast_fp16)[name = tensor<string, []>("pooled_cast_fp16")];
353
+ tensor<int32, [3]> var_545 = const()[name = tensor<string, []>("op_545"), val = tensor<int32, [3]>([1, 32, -1])];
354
+ tensor<fp16, [1, 32, 128]> options_cast_fp16 = reshape(shape = var_545, x = pooled_cast_fp16)[name = tensor<string, []>("options_cast_fp16")];
355
+ tensor<int32, []> var_548 = const()[name = tensor<string, []>("op_548"), val = tensor<int32, []>(-1)];
356
+ tensor<int32, [1]> input_axes_0 = const()[name = tensor<string, []>("input_axes_0"), val = tensor<int32, [1]>([-1])];
357
+ tensor<fp16, [128]> model_head_context_norm_weight_to_fp16 = const()[name = tensor<string, []>("model_head_context_norm_weight_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1346624)))];
358
+ tensor<fp16, [128]> model_head_context_norm_bias_to_fp16 = const()[name = tensor<string, []>("model_head_context_norm_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1346944)))];
359
+ tensor<fp16, []> var_556_to_fp16 = const()[name = tensor<string, []>("op_556_to_fp16"), val = tensor<fp16, []>(0x1.5p-17)];
360
+ tensor<fp16, [1, 224, 128]> input_cast_fp16 = layer_norm(axes = input_axes_0, beta = model_head_context_norm_bias_to_fp16, epsilon = var_556_to_fp16, gamma = model_head_context_norm_weight_to_fp16, x = context_cast_fp16)[name = tensor<string, []>("input_cast_fp16")];
361
+ tensor<int32, [1]> input_53_axes_0 = const()[name = tensor<string, []>("input_53_axes_0"), val = tensor<int32, [1]>([-1])];
362
+ tensor<fp16, [128]> model_head_option_norm_weight_to_fp16 = const()[name = tensor<string, []>("model_head_option_norm_weight_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1347264)))];
363
+ tensor<fp16, [128]> model_head_option_norm_bias_to_fp16 = const()[name = tensor<string, []>("model_head_option_norm_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1347584)))];
364
+ tensor<fp16, [1, 32, 128]> input_53_cast_fp16 = layer_norm(axes = input_53_axes_0, beta = model_head_option_norm_bias_to_fp16, epsilon = var_556_to_fp16, gamma = model_head_option_norm_weight_to_fp16, x = options_cast_fp16)[name = tensor<string, []>("input_53_cast_fp16")];
365
+ tensor<fp16, [128, 128]> model_head_query_weight_to_fp16 = const()[name = tensor<string, []>("model_head_query_weight_to_fp16"), val = tensor<fp16, [128, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1347904)))];
366
+ tensor<fp16, [128]> linear_12_bias_0_to_fp16 = const()[name = tensor<string, []>("linear_12_bias_0_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1380736)))];
367
+ tensor<fp16, [1, 32, 128]> linear_12_cast_fp16 = linear(bias = linear_12_bias_0_to_fp16, weight = model_head_query_weight_to_fp16, x = input_53_cast_fp16)[name = tensor<string, []>("linear_12_cast_fp16")];
368
+ tensor<fp16, [128, 128]> model_head_key_weight_to_fp16 = const()[name = tensor<string, []>("model_head_key_weight_to_fp16"), val = tensor<fp16, [128, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1381056)))];
369
+ tensor<fp16, [1, 224, 128]> linear_13_cast_fp16 = linear(bias = linear_12_bias_0_to_fp16, weight = model_head_key_weight_to_fp16, x = input_cast_fp16)[name = tensor<string, []>("linear_13_cast_fp16")];
370
+ tensor<fp16, [128, 128]> model_head_value_weight_to_fp16 = const()[name = tensor<string, []>("model_head_value_weight_to_fp16"), val = tensor<fp16, [128, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1413888)))];
371
+ tensor<fp16, [1, 224, 128]> linear_14_cast_fp16 = linear(bias = linear_12_bias_0_to_fp16, weight = model_head_value_weight_to_fp16, x = input_cast_fp16)[name = tensor<string, []>("linear_14_cast_fp16")];
372
+ tensor<bool, []> matmul_3_transpose_x_1 = const()[name = tensor<string, []>("matmul_3_transpose_x_1"), val = tensor<bool, []>(false)];
373
+ tensor<bool, []> matmul_3_transpose_y_1 = const()[name = tensor<string, []>("matmul_3_transpose_y_1"), val = tensor<bool, []>(true)];
374
+ tensor<fp16, [1, 32, 224]> matmul_3_cast_fp16 = matmul(transpose_x = matmul_3_transpose_x_1, transpose_y = matmul_3_transpose_y_1, x = linear_12_cast_fp16, y = linear_13_cast_fp16)[name = tensor<string, []>("matmul_3_cast_fp16")];
375
+ tensor<fp16, []> _inversed_scores_1_y_0_to_fp16 = const()[name = tensor<string, []>("_inversed_scores_1_y_0_to_fp16"), val = tensor<fp16, []>(0x1.6ap-4)];
376
+ tensor<fp16, [1, 32, 224]> _inversed_scores_1_cast_fp16 = mul(x = matmul_3_cast_fp16, y = _inversed_scores_1_y_0_to_fp16)[name = tensor<string, []>("_inversed_scores_1_cast_fp16")];
377
+ tensor<int32, [1]> var_587_axes_0 = const()[name = tensor<string, []>("op_587_axes_0"), val = tensor<int32, [1]>([1])];
378
+ tensor<bool, [1, 1, 224]> var_587 = expand_dims(axes = var_587_axes_0, x = context_mask_cast_fp16)[name = tensor<string, []>("op_587")];
379
+ tensor<bool, [1, 1, 224]> var_589 = logical_not(x = var_587)[name = tensor<string, []>("op_589")];
380
+ tensor<fp16, []> var_549_to_fp16 = const()[name = tensor<string, []>("op_549_to_fp16"), val = tensor<fp16, []>(-inf)];
381
+ tensor<fp16, [1, 32, 224]> scores_cast_fp16 = select(a = var_549_to_fp16, b = _inversed_scores_1_cast_fp16, cond = var_589)[name = tensor<string, []>("scores_cast_fp16")];
382
+ tensor<fp16, [1, 32, 224]> var_591_cast_fp16 = softmax(axis = var_548, x = scores_cast_fp16)[name = tensor<string, []>("op_591_cast_fp16")];
383
+ tensor<bool, []> matmul_4_transpose_x_0 = const()[name = tensor<string, []>("matmul_4_transpose_x_0"), val = tensor<bool, []>(false)];
384
+ tensor<bool, []> matmul_4_transpose_y_0 = const()[name = tensor<string, []>("matmul_4_transpose_y_0"), val = tensor<bool, []>(false)];
385
+ tensor<fp16, [1, 32, 128]> matmul_4_cast_fp16 = matmul(transpose_x = matmul_4_transpose_x_0, transpose_y = matmul_4_transpose_y_0, x = var_591_cast_fp16, y = linear_14_cast_fp16)[name = tensor<string, []>("matmul_4_cast_fp16")];
386
+ tensor<fp16, [1, 32, 128]> var_594_cast_fp16 = mul(x = linear_12_cast_fp16, y = matmul_4_cast_fp16)[name = tensor<string, []>("op_594_cast_fp16")];
387
+ tensor<int32, [1]> var_596_axes_0 = const()[name = tensor<string, []>("op_596_axes_0"), val = tensor<int32, [1]>([-1])];
388
+ tensor<bool, []> var_596_keep_dims_0 = const()[name = tensor<string, []>("op_596_keep_dims_0"), val = tensor<bool, []>(false)];
389
+ tensor<fp16, [1, 32]> var_596_cast_fp16 = reduce_sum(axes = var_596_axes_0, keep_dims = var_596_keep_dims_0, x = var_594_cast_fp16)[name = tensor<string, []>("op_596_cast_fp16")];
390
+ tensor<fp16, []> _inversed_logits_1_y_0_to_fp16 = const()[name = tensor<string, []>("_inversed_logits_1_y_0_to_fp16"), val = tensor<fp16, []>(0x1.6ap-4)];
391
+ tensor<fp16, [1, 32]> _inversed_logits_1_cast_fp16 = mul(x = var_596_cast_fp16, y = _inversed_logits_1_y_0_to_fp16)[name = tensor<string, []>("_inversed_logits_1_cast_fp16")];
392
+ tensor<bool, [1, 32]> var_599 = logical_not(x = option_mask_cast_fp16)[name = tensor<string, []>("op_599")];
393
+ tensor<fp16, [1, 32]> logits_3_cast_fp16 = select(a = var_549_to_fp16, b = _inversed_logits_1_cast_fp16, cond = var_599)[name = tensor<string, []>("logits_3_cast_fp16")];
394
+ tensor<fp16, []> var_607_value_0_to_fp16 = const()[name = tensor<string, []>("op_607_value_0_to_fp16"), val = tensor<fp16, []>(-0x1.388p+13)];
395
+ tensor<fp16, [1, 32]> var_607_cast_fp16 = fill_like(ref_tensor = logits_3_cast_fp16, value = var_607_value_0_to_fp16)[name = tensor<string, []>("op_607_cast_fp16")];
396
+ tensor<fp16, [1, 32]> logits_cast_fp16 = select(a = logits_3_cast_fp16, b = var_607_cast_fp16, cond = option_mask_cast_fp16)[name = tensor<string, []>("logits_cast_fp16")];
397
+ tensor<string, []> logits_cast_fp16_to_fp32_dtype_0 = const()[name = tensor<string, []>("logits_cast_fp16_to_fp32_dtype_0"), val = tensor<string, []>("fp32")];
398
+ tensor<int32, []> var_609 = const()[name = tensor<string, []>("op_609"), val = tensor<int32, []>(-1)];
399
+ tensor<fp16, [1, 32]> var_611_cast_fp16 = softmax(axis = var_609, x = logits_cast_fp16)[name = tensor<string, []>("op_611_cast_fp16")];
400
+ tensor<string, []> var_611_cast_fp16_to_fp32_dtype_0 = const()[name = tensor<string, []>("op_611_cast_fp16_to_fp32_dtype_0"), val = tensor<string, []>("fp32")];
401
+ tensor<fp32, [1, 32]> probabilities = cast(dtype = var_611_cast_fp16_to_fp32_dtype_0, x = var_611_cast_fp16)[name = tensor<string, []>("cast_57")];
402
+ tensor<fp32, [1, 32]> logits = cast(dtype = logits_cast_fp16_to_fp32_dtype_0, x = logits_cast_fp16)[name = tensor<string, []>("cast_58")];
403
+ } -> (logits, probabilities);
404
+ }
ane-gather/cua_s1_forms_fp16_options32.mlmodelc/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895
3
+ size 1446720
ane-gather/cua_s1_forms_fp16_options32.mlpackage/Data/com.apple.CoreML/model.mlmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:de18e313c3b625e35d008ed8b6b24108edc6df7bf2fae9533af03519eca11b63
3
+ size 62154
ane-gather/cua_s1_forms_fp16_options32.mlpackage/Data/com.apple.CoreML/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895
3
+ size 1446720
ane-gather/cua_s1_forms_fp16_options32.mlpackage/Manifest.json ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "fileFormatVersion": "1.0.0",
3
+ "itemInfoEntries": {
4
+ "1CB24175-461C-4E33-BE2C-F580A319AEC8": {
5
+ "author": "com.apple.CoreML",
6
+ "description": "CoreML Model Weights",
7
+ "name": "weights",
8
+ "path": "com.apple.CoreML/weights"
9
+ },
10
+ "869A4EBA-1FCF-41FC-8DD9-70ECEF96023D": {
11
+ "author": "com.apple.CoreML",
12
+ "description": "CoreML Model Specification",
13
+ "name": "model.mlmodel",
14
+ "path": "com.apple.CoreML/model.mlmodel"
15
+ }
16
+ },
17
+ "rootModelIdentifier": "869A4EBA-1FCF-41FC-8DD9-70ECEF96023D"
18
+ }
assets.lock.json ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "source_revision": "83f142c4290a0f7d9ed545ae8532858c6e4f8145",
3
+ "model_revision": "f54adbf447f4ca6ec259f529ee3f2e3e09f8cc71",
4
+ "dataset_revision": "8273f34778b99ac2e12d9f6e7d57dad99ae20845",
5
+ "evaluation_file": "artifacts/demo.jsonl",
6
+ "evaluation_rows": 196,
7
+ "files": [
8
+ {
9
+ "path": "vendor/cua_s1/__init__.py",
10
+ "url": "https://raw.githubusercontent.com/trycua/cua/83f142c4290a0f7d9ed545ae8532858c6e4f8145/libs/cua-s1/python/src/cua_s1/__init__.py",
11
+ "sha256": "68ca526b67bdb95401ddaa2ccc09b0717879d16a9102e2014f4f9018df292ddf"
12
+ },
13
+ {
14
+ "path": "vendor/cua_s1/model.py",
15
+ "url": "https://raw.githubusercontent.com/trycua/cua/83f142c4290a0f7d9ed545ae8532858c6e4f8145/libs/cua-s1/python/src/cua_s1/model.py",
16
+ "sha256": "7538cb4c9730d70a0b325050f370f981a9e109a1b182b8c66be3ba0fa2474344"
17
+ },
18
+ {
19
+ "path": "vendor/cua_s1/checkpoint.py",
20
+ "url": "https://raw.githubusercontent.com/trycua/cua/83f142c4290a0f7d9ed545ae8532858c6e4f8145/libs/cua-s1/python/src/cua_s1/checkpoint.py",
21
+ "sha256": "6d96ab6e946c88af341947d656ff244a8de5846edfd1f6a410466a97d89b375f"
22
+ },
23
+ {
24
+ "path": "vendor/CUA-LICENSE",
25
+ "url": "https://raw.githubusercontent.com/trycua/cua/83f142c4290a0f7d9ed545ae8532858c6e4f8145/libs/cua-s1/python/LICENSE",
26
+ "sha256": "c0779290c1d4783169aa3dbfb55feb505e563ef8a004bbf55298ceffcfbda8d9"
27
+ },
28
+ {
29
+ "path": "artifacts/cua-s1-forms.safetensors",
30
+ "url": "https://huggingface.co/cua-ai/cua-s1-forms/resolve/f54adbf447f4ca6ec259f529ee3f2e3e09f8cc71/cua-s1-forms.safetensors",
31
+ "sha256": "05954c1caf51c2fb6c13ea4acbfc88a2e7653dea192252bb51dc89e76a356ddc"
32
+ },
33
+ {
34
+ "path": "artifacts/cua-s1-forms.json",
35
+ "url": "https://huggingface.co/cua-ai/cua-s1-forms/resolve/f54adbf447f4ca6ec259f529ee3f2e3e09f8cc71/cua-s1-forms.json",
36
+ "sha256": "62d31e2f9a001a8e9b6f8534c5194d07ebdd3f9d62ef1ac281906622992650ca"
37
+ },
38
+ {
39
+ "path": "artifacts/demo.jsonl",
40
+ "url": "https://huggingface.co/datasets/cua-ai/cua-s1-forms/resolve/8273f34778b99ac2e12d9f6e7d57dad99ae20845/demo.jsonl",
41
+ "sha256": "4f43b442e79ba2e2ce731e27e9b8e340c2b5dfcaffc92d8ff564c34f115ff1ca"
42
+ },
43
+ {
44
+ "path": "artifacts/model-card.md",
45
+ "url": "https://huggingface.co/cua-ai/cua-s1-forms/resolve/f54adbf447f4ca6ec259f529ee3f2e3e09f8cc71/README.md",
46
+ "sha256": "a52b7930d12d59a9f70fba537f02c1683eb4be2b451ec0fd5f407620c5670a93"
47
+ },
48
+ {
49
+ "path": "artifacts/dataset-card.md",
50
+ "url": "https://huggingface.co/datasets/cua-ai/cua-s1-forms/resolve/8273f34778b99ac2e12d9f6e7d57dad99ae20845/README.md",
51
+ "sha256": "e5768e2a4b8fee2622ca73fb522bdbb0caca567a49c93266ef0f0fdef5b0af11"
52
+ }
53
+ ]
54
+ }
checksums.json ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "LICENSE": "c0779290c1d4783169aa3dbfb55feb505e563ef8a004bbf55298ceffcfbda8d9",
3
+ "NOTICES.md": "027c72741eaa695e60d7b6cebd3666372c81d443a96b673b72a897cf432ddfd0",
4
+ "README.md": "377a7149ce6de7064b3a7d26de00940dd92f1ce7f7935296a735435942cae618",
5
+ "UPSTREAM-THIRD-PARTY-NOTICES.md": "4091e69b45c8cc97e30a066fbbd56148dbef66ab716432c048d2333c9c464213",
6
+ "ane-gather/conversion.json": "4d569a4020f1e9711da3f7fff0d11acef1812c4652414cf64728c77bc2bae4c4",
7
+ "ane-gather/cua_s1_forms_fp16_options32.mlmodelc/analytics/coremldata.bin": "526dccb87bdc036df1e8add0b50dd6540db534808fc2f8caa97cd897b4fc1fa3",
8
+ "ane-gather/cua_s1_forms_fp16_options32.mlmodelc/coremldata.bin": "0f2a8ed9fe8abcc39c7ee0575e2562d589d459683b92708fa9788b533be3038b",
9
+ "ane-gather/cua_s1_forms_fp16_options32.mlmodelc/model.mil": "578b5ef1e50c98d0577459a3a4c020f4fd83d7e465213d1263ddf1a021fef077",
10
+ "ane-gather/cua_s1_forms_fp16_options32.mlmodelc/weights/weight.bin": "4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895",
11
+ "ane-gather/cua_s1_forms_fp16_options32.mlpackage/Data/com.apple.CoreML/model.mlmodel": "de18e313c3b625e35d008ed8b6b24108edc6df7bf2fae9533af03519eca11b63",
12
+ "ane-gather/cua_s1_forms_fp16_options32.mlpackage/Data/com.apple.CoreML/weights/weight.bin": "4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895",
13
+ "ane-gather/cua_s1_forms_fp16_options32.mlpackage/Manifest.json": "38f812a04eb2322080634ba788c61df362336168466ca67e5549058d346ac793",
14
+ "assets.lock.json": "8e65ad70af6bb814b571cdcfe828ba4bc339147da2d2211cbeac416163ef18ba",
15
+ "conversion.json": "ac94239751ceb7e19602eb7276940ff53446b1776d4900405af9be0382fe4a94",
16
+ "cua_s1_forms_fp16_options32.mlmodelc/analytics/coremldata.bin": "a7a11d7772fb6879778e6223d0f3b16a6b2a44df20a7991bf9bcc24042d05542",
17
+ "cua_s1_forms_fp16_options32.mlmodelc/coremldata.bin": "2ddf9edc046a1e66b3d3a0cd57a1d9e25c75df5f8d937249dc02d9806617d884",
18
+ "cua_s1_forms_fp16_options32.mlmodelc/model.mil": "e93676bd4f553ffcf9403ae5049185cb55acdcb63908e39952578db0845e0a12",
19
+ "cua_s1_forms_fp16_options32.mlmodelc/weights/weight.bin": "4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895",
20
+ "cua_s1_forms_fp16_options32.mlpackage/Data/com.apple.CoreML/model.mlmodel": "70485fc18cbb21785df833cbddddc0b5b59acb00d22394b76e55307e2c135dd0",
21
+ "cua_s1_forms_fp16_options32.mlpackage/Data/com.apple.CoreML/weights/weight.bin": "4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895",
22
+ "cua_s1_forms_fp16_options32.mlpackage/Manifest.json": "2bc0f5f62337b27fb6b0ecde248f1e3dc269e1ba4b65516aaeede2a60e293dcc",
23
+ "demo/browser-demo.gif": "6cf597927e7bcb5617719453eecb86c7c06ab9a91fcaf46de272b42abe12d4fc",
24
+ "demo/browser-demo.mp4": "5fbb3925c4824d15e6c24c504db91a96d318f4e751a20a070fdedf64e587d1a0",
25
+ "demo/browser-preview.png": "e624ec2a797d0b3b050e66055d6a9fb09a1f6a9ace67b8eb071ce5f2f9e282b1",
26
+ "int4-source-fp16/conversion.json": "01105dc8bef7a30fc3430e150caa2a143dc0ba23a295b6280de3b8ff3b40af55",
27
+ "int4-source-fp16/cua_s1_forms_fp16_options32.mlpackage/Data/com.apple.CoreML/model.mlmodel": "6ab2df320df7081480b76876df0f4bfd2c841592d93f354c568ba504f7269627",
28
+ "int4-source-fp16/cua_s1_forms_fp16_options32.mlpackage/Data/com.apple.CoreML/weights/weight.bin": "4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895",
29
+ "int4-source-fp16/cua_s1_forms_fp16_options32.mlpackage/Manifest.json": "e5b1c7dc66b2014b3985c180a75548a709788c6e314d9d2ae14e4e6d441c3c68",
30
+ "int4-weights/conversion.json": "4675febbdef9cc15d46bf8aed17d7c7aaa0e91b3168a525c31b81ad2cfdb6875",
31
+ "int4-weights/cua_s1_forms_int4_options32.mlpackage/Data/com.apple.CoreML/model.mlmodel": "cadad6bfa6875383a7ee3de68d0d22871148aa21cf117e7fe44c2c971287c4e5",
32
+ "int4-weights/cua_s1_forms_int4_options32.mlpackage/Data/com.apple.CoreML/weights/weight.bin": "0f766fcb9dbd612ed4f6c7a40117a5993a4789b3ae94afba0df37193c831f63c",
33
+ "int4-weights/cua_s1_forms_int4_options32.mlpackage/Manifest.json": "fb91c8b5ec3168111567de663bb3140d2790c6e7c48f32e0df3f5135af0673af",
34
+ "int8-weights/conversion.json": "b8a51ceeb65fe8020b2a186fae2ebf586443956111acfbac1a3f208a062c1c80",
35
+ "int8-weights/cua_s1_forms_int8_options32.mlpackage/Data/com.apple.CoreML/model.mlmodel": "a7d9747308b8b754a46f3e70c8465b821f90e12376b3a71dc909f7364ae73c3a",
36
+ "int8-weights/cua_s1_forms_int8_options32.mlpackage/Data/com.apple.CoreML/weights/weight.bin": "f600c4434b7f7e3e789de8f1a4aa54a55f84df51fa9b788e18f5c97b68e4840f",
37
+ "int8-weights/cua_s1_forms_int8_options32.mlpackage/Manifest.json": "2206ec01787a85c12f1376fa5a832c5ac912f06172c6ff06b26ae8415470d246",
38
+ "preprocessing.py": "18c74ede43f95f91cd638c7e9631923a353e3a24d3b522ddb8b18b480f9c2846",
39
+ "reports/ane-comparison.json": "14b29f87704c6e8bd5f9bd866ea825be3972fcea6cf3c4760e38dc8774f937b6",
40
+ "reports/ane-fallback.json": "2f52b0e11f7cfbea6a6be6942de8816d8fed0630ac384a28551d405648fcb4e0",
41
+ "reports/ane-gather-fallback.json": "1e9bf8a336ae6d63ff2f07e32fed21b5e5ee4491a8a217b15deb3e1e3ac32988",
42
+ "reports/ane-gather-profile.json": "023c16760ca124176e399f1c692741f5220bc4cc391cd59bffffa291e2c332a6",
43
+ "reports/ane-gather-verification.json": "fa51fe0537dcd9cc8d1d75fc0be4747d887aa2e3af199ec08edd8f9400ce3318",
44
+ "reports/ane-profile.json": "8f654717397a294acc793861676a1480c160bb3f7ab5be6ff67ebb6a4473b832",
45
+ "reports/browser-validation.json": "299641c7b9f6cc2464cfcd984b4ef4445385e4710bc15abae7cee8ba262331b6",
46
+ "reports/int4-demo-verification.json": "7465aecddc5c6806a0c1882db3a587eb7ea0f8de7978f60bcbc7e39ffe2cfa32",
47
+ "reports/int4-fallback.json": "7e14ab1bb6b8c2ede589773af3d39aea1a7349d199a27d597f1cd47a40217b07",
48
+ "reports/int4-profile.json": "71f6b3ae5c9340a77936e368529201acef0d1e3b987b7436b1d35a829b6e350e",
49
+ "reports/int4-source-demo-verification.json": "f0c026f462dde1a8f86851d55ec35ab33ab8e68e5af3e4f1eb4b9c52f3dd08b1",
50
+ "reports/int4-synthetic-test-decisions.jsonl.gz": "6922913041f95ac8872958b92312cb5b869b9ce88116c4684b36ea7753284674",
51
+ "reports/int4-synthetic-test.json": "9d6a691aeb2ddc352ab7c12327472c92814991c201b67c7da8db39a76c972b32",
52
+ "reports/int8-demo-verification.json": "5602c8c254c0ae4c696e771291b25d1196ccc0d63f48eaaccdde0245803a5368",
53
+ "reports/int8-fallback.json": "9bb86a529a8e7e353efa12449a5ea930817dc7b1afdacec6ae24f3c318bc5835",
54
+ "reports/int8-profile.json": "0b962528dc7e5bb1d53abeb4b549f93b93f549a1e1935c3d77ef2606e83bf6a9",
55
+ "reports/int8-synthetic-test-decisions.jsonl.gz": "69720b9e11430ecff7ea0718f14bf16792de6f39f114faba250cfe855e4e4156",
56
+ "reports/int8-synthetic-test.json": "952ebe281d0aef0c05667d3c0dc5f9f175be709639a542028940059393078b5d",
57
+ "reports/swift-ane-validation.json": "ed323e6d6619fb7698d3546599d6450b745bc8cc6100c02e13f7ad4d59859a3a",
58
+ "reports/swift-runtime/decisions.jsonl.gz": "5d7ae5df86489b38e8f97167ab58c1d6bf5fb74c171a57b00d818b05d6c772b5",
59
+ "reports/swift-runtime/report.json": "81c30c4943550356da71ea03b1ff87d6d9a66ec3bbc17c20de5ff802a6a5f817",
60
+ "reports/swift-variant-comparison.json": "593053d7011a1c6d6881b130c3408099d0fcc09c714c4064d4f853f0dc63b651",
61
+ "reports/synthetic-test-decisions.jsonl.gz": "b6f6edc9de34fb37b10847a1f9568b530ce2b8e1bd241f51bf2e637f489d6554",
62
+ "reports/synthetic-test.json": "2ae85cfeb270b4f31be4f1d9082f4c73b3b9b084d6f1ddb661712a87d46b0f59",
63
+ "reports/upstream-metrics.json": "7d6207e430504dc0baec96d8180cb03f8aadc5a6e016b53c4cf03a80baf169ab",
64
+ "reports/verification.json": "9a5d22ec4b447f0710c12e03c69d7ed802158bb94e9a3c6b059731730ced9f30",
65
+ "synthetic-test.lock.json": "e582b951ecc07809a0b06a2bc0790827b90a86ce57c70d5b6177ef04f0b4f1ca"
66
+ }
conversion.json ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "cua_s1_forms_fp16_options32.mlpackage",
3
+ "precision": "float16",
4
+ "minimum_target": "iOS17/macOS14",
5
+ "limits": {
6
+ "context_bytes": 224,
7
+ "option_bytes": 96,
8
+ "max_options": 32
9
+ },
10
+ "model_config": {
11
+ "context_tokens": 224,
12
+ "encoder": "tinyx",
13
+ "heads": 4,
14
+ "hf_model": "Qwen/Qwen2.5-0.5B",
15
+ "layers": 2,
16
+ "option_tokens": 96,
17
+ "rank": 128,
18
+ "width": 128
19
+ },
20
+ "parameters": 706048,
21
+ "assets_lock_sha256": "8e65ad70af6bb814b571cdcfe828ba4bc339147da2d2211cbeac416163ef18ba",
22
+ "model_revision": "f54adbf447f4ca6ec259f529ee3f2e3e09f8cc71",
23
+ "source_revision": "83f142c4290a0f7d9ed545ae8532858c6e4f8145",
24
+ "trace_row": 0,
25
+ "trace_dataset_revision": "8273f34778b99ac2e12d9f6e7d57dad99ae20845",
26
+ "export_seconds": 0.5374167499830946,
27
+ "python": "3.11.11",
28
+ "torch": "2.7.0",
29
+ "coremltools": "9.0",
30
+ "package_files": {
31
+ "Data/com.apple.CoreML/model.mlmodel": "70485fc18cbb21785df833cbddddc0b5b59acb00d22394b76e55307e2c135dd0",
32
+ "Data/com.apple.CoreML/weights/weight.bin": "4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895",
33
+ "Manifest.json": "2bc0f5f62337b27fb6b0ecde248f1e3dc269e1ba4b65516aaeede2a60e293dcc"
34
+ }
35
+ }
cua_s1_forms_fp16_options32.mlmodelc/analytics/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a7a11d7772fb6879778e6223d0f3b16a6b2a44df20a7991bf9bcc24042d05542
3
+ size 243
cua_s1_forms_fp16_options32.mlmodelc/coremldata.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2ddf9edc046a1e66b3d3a0cd57a1d9e25c75df5f8d937249dc02d9806617d884
3
+ size 909
cua_s1_forms_fp16_options32.mlmodelc/model.mil ADDED
@@ -0,0 +1,418 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ program(1.0)
2
+ [buildInfo = dict<tensor<string, []>, tensor<string, []>>({{"coremlc-component-MIL", "3600.16.1"}, {"coremlc-version", "3600.25.2"}, {"coremltools-component-torch", "2.7.0"}, {"coremltools-source-dialect", "TorchScript"}, {"coremltools-version", "9.0"}})]
3
+ {
4
+ func main<ios17>(tensor<int32, [1, 224]> context_ids, tensor<int32, [1, 32, 96]> option_ids, tensor<int32, [1, 32]> option_mask) {
5
+ tensor<int32, []> var_14 = const()[name = tensor<string, []>("op_14"), val = tensor<int32, []>(0)];
6
+ tensor<bool, [1, 32]> option_mask_1 = not_equal(x = option_mask, y = var_14)[name = tensor<string, []>("option_mask")];
7
+ tensor<int32, []> var_16 = const()[name = tensor<string, []>("op_16"), val = tensor<int32, []>(0)];
8
+ tensor<bool, [1, 224]> context_mask = not_equal(x = context_ids, y = var_16)[name = tensor<string, []>("context_mask")];
9
+ tensor<int32, [2]> var_27_begin_0 = const()[name = tensor<string, []>("op_27_begin_0"), val = tensor<int32, [2]>([0, 0])];
10
+ tensor<int32, [2]> var_27_end_0 = const()[name = tensor<string, []>("op_27_end_0"), val = tensor<int32, [2]>([1, 1])];
11
+ tensor<bool, [2]> var_27_end_mask_0 = const()[name = tensor<string, []>("op_27_end_mask_0"), val = tensor<bool, [2]>([true, false])];
12
+ tensor<int32, [1, 1]> var_27 = slice_by_index(begin = var_27_begin_0, end = var_27_end_0, end_mask = var_27_end_mask_0, x = context_ids)[name = tensor<string, []>("op_27")];
13
+ tensor<fp16, []> fill_like_0_value_0_to_fp16 = const()[name = tensor<string, []>("fill_like_0_value_0_to_fp16"), val = tensor<fp16, []>(0x1p+0)];
14
+ tensor<fp16, [1, 1]> fill_like_0_cast_fp16 = fill_like(ref_tensor = var_27, value = fill_like_0_value_0_to_fp16)[name = tensor<string, []>("fill_like_0_cast_fp16")];
15
+ tensor<int32, [2]> var_43_begin_0 = const()[name = tensor<string, []>("op_43_begin_0"), val = tensor<int32, [2]>([0, 1])];
16
+ tensor<int32, [2]> var_43_end_0 = const()[name = tensor<string, []>("op_43_end_0"), val = tensor<int32, [2]>([1, 224])];
17
+ tensor<bool, [2]> var_43_end_mask_0 = const()[name = tensor<string, []>("op_43_end_mask_0"), val = tensor<bool, [2]>([true, true])];
18
+ tensor<int32, [1, 223]> var_43 = slice_by_index(begin = var_43_begin_0, end = var_43_end_0, end_mask = var_43_end_mask_0, x = context_ids)[name = tensor<string, []>("op_43")];
19
+ tensor<int32, []> var_45 = const()[name = tensor<string, []>("op_45"), val = tensor<int32, []>(1)];
20
+ tensor<bool, []> safe_context_ids_interleave_0 = const()[name = tensor<string, []>("safe_context_ids_interleave_0"), val = tensor<bool, []>(false)];
21
+ tensor<string, []> var_43_promoted_to_fp16_dtype_0 = const()[name = tensor<string, []>("op_43_promoted_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
22
+ tensor<fp16, [1, 223]> var_43_to_fp16 = cast(dtype = var_43_promoted_to_fp16_dtype_0, x = var_43)[name = tensor<string, []>("cast_66")];
23
+ tensor<fp16, [1, 224]> safe_context_ids_cast_fp16 = concat(axis = var_45, interleave = safe_context_ids_interleave_0, values = (fill_like_0_cast_fp16, var_43_to_fp16))[name = tensor<string, []>("safe_context_ids_cast_fp16")];
24
+ tensor<int32, []> var_59_batch_dims_0 = const()[name = tensor<string, []>("op_59_batch_dims_0"), val = tensor<int32, []>(0)];
25
+ tensor<bool, []> var_59_validate_indices_0 = const()[name = tensor<string, []>("op_59_validate_indices_0"), val = tensor<bool, []>(false)];
26
+ tensor<fp16, [257, 128]> model_embedding_weight_to_fp16 = const()[name = tensor<string, []>("model_embedding_weight_to_fp16"), val = tensor<fp16, [257, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(64)))];
27
+ tensor<string, []> context_ids_to_int16_dtype_0 = const()[name = tensor<string, []>("context_ids_to_int16_dtype_0"), val = tensor<string, []>("int16")];
28
+ tensor<string, []> cast_54_dtype_0 = const()[name = tensor<string, []>("cast_54_dtype_0"), val = tensor<string, []>("int32")];
29
+ tensor<int32, []> greater_equal_0_y_0 = const()[name = tensor<string, []>("greater_equal_0_y_0"), val = tensor<int32, []>(0)];
30
+ tensor<int16, [1, 224]> context_ids_to_int16 = cast(dtype = context_ids_to_int16_dtype_0, x = context_ids)[name = tensor<string, []>("cast_65")];
31
+ tensor<int32, [1, 224]> cast_54 = cast(dtype = cast_54_dtype_0, x = context_ids_to_int16)[name = tensor<string, []>("cast_64")];
32
+ tensor<bool, [1, 224]> greater_equal_0 = greater_equal(x = cast_54, y = greater_equal_0_y_0)[name = tensor<string, []>("greater_equal_0")];
33
+ tensor<int32, []> slice_by_index_18 = const()[name = tensor<string, []>("slice_by_index_18"), val = tensor<int32, []>(257)];
34
+ tensor<int32, [1, 224]> add_3 = add(x = cast_54, y = slice_by_index_18)[name = tensor<string, []>("add_3")];
35
+ tensor<int32, [1, 224]> select_0 = select(a = cast_54, b = add_3, cond = greater_equal_0)[name = tensor<string, []>("select_0")];
36
+ tensor<int32, []> var_59_cast_fp16_cast_uint16_axis_0 = const()[name = tensor<string, []>("op_59_cast_fp16_cast_uint16_axis_0"), val = tensor<int32, []>(0)];
37
+ tensor<string, []> select_0_to_int16_dtype_0 = const()[name = tensor<string, []>("select_0_to_int16_dtype_0"), val = tensor<string, []>("int16")];
38
+ tensor<int16, [1, 224]> select_0_to_int16 = cast(dtype = select_0_to_int16_dtype_0, x = select_0)[name = tensor<string, []>("cast_63")];
39
+ tensor<fp16, [1, 224, 128]> var_59_cast_fp16_cast_uint16_cast_uint16 = gather(axis = var_59_cast_fp16_cast_uint16_axis_0, batch_dims = var_59_batch_dims_0, indices = select_0_to_int16, validate_indices = var_59_validate_indices_0, x = model_embedding_weight_to_fp16)[name = tensor<string, []>("op_59_cast_fp16_cast_uint16_cast_uint16")];
40
+ tensor<fp16, [224, 128]> model_position_weight_to_fp16 = const()[name = tensor<string, []>("model_position_weight_to_fp16"), val = tensor<fp16, [224, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(65920)))];
41
+ tensor<fp16, [1, 224, 128]> src_1_cast_fp16 = add(x = var_59_cast_fp16_cast_uint16_cast_uint16, y = model_position_weight_to_fp16)[name = tensor<string, []>("src_1_cast_fp16")];
42
+ tensor<fp16, []> var_66_promoted_to_fp16 = const()[name = tensor<string, []>("op_66_promoted_to_fp16"), val = tensor<fp16, []>(0x0p+0)];
43
+ tensor<bool, [1, 224]> mask_1_cast_fp16 = equal(x = safe_context_ids_cast_fp16, y = var_66_promoted_to_fp16)[name = tensor<string, []>("mask_1_cast_fp16")];
44
+ tensor<fp16, []> var_82_to_fp16 = const()[name = tensor<string, []>("op_82_to_fp16"), val = tensor<fp16, []>(-inf)];
45
+ tensor<fp16, [1, 224]> var_90_to_fp16 = const()[name = tensor<string, []>("op_90_to_fp16"), val = tensor<fp16, [1, 224]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(123328)))];
46
+ tensor<fp16, [1, 224]> key_padding_mask_1_cast_fp16 = select(a = var_82_to_fp16, b = var_90_to_fp16, cond = mask_1_cast_fp16)[name = tensor<string, []>("key_padding_mask_1_cast_fp16")];
47
+ tensor<int32, [1]> query_1_axes_0 = const()[name = tensor<string, []>("query_1_axes_0"), val = tensor<int32, [1]>([-1])];
48
+ tensor<fp16, [128]> model_encoder_layers_0_norm1_weight_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_0_norm1_weight_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(123840)))];
49
+ tensor<fp16, [128]> model_encoder_layers_0_norm1_bias_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_0_norm1_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(124160)))];
50
+ tensor<fp16, []> var_69_to_fp16 = const()[name = tensor<string, []>("op_69_to_fp16"), val = tensor<fp16, []>(0x1.5p-17)];
51
+ tensor<fp16, [1, 224, 128]> query_1_cast_fp16 = layer_norm(axes = query_1_axes_0, beta = model_encoder_layers_0_norm1_bias_to_fp16, epsilon = var_69_to_fp16, gamma = model_encoder_layers_0_norm1_weight_to_fp16, x = src_1_cast_fp16)[name = tensor<string, []>("query_1_cast_fp16")];
52
+ tensor<int32, [3]> query_3_perm_0 = const()[name = tensor<string, []>("query_3_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
53
+ tensor<fp16, [384, 128]> model_encoder_layers_0_self_attn_in_proj_weight_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_0_self_attn_in_proj_weight_to_fp16"), val = tensor<fp16, [384, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(124480)))];
54
+ tensor<fp16, [384]> model_encoder_layers_0_self_attn_in_proj_bias_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_0_self_attn_in_proj_bias_to_fp16"), val = tensor<fp16, [384]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(222848)))];
55
+ tensor<fp16, [224, 1, 128]> query_3_cast_fp16 = transpose(perm = query_3_perm_0, x = query_1_cast_fp16)[name = tensor<string, []>("transpose_24")];
56
+ tensor<fp16, [224, 1, 384]> linear_0_cast_fp16 = linear(bias = model_encoder_layers_0_self_attn_in_proj_bias_to_fp16, weight = model_encoder_layers_0_self_attn_in_proj_weight_to_fp16, x = query_3_cast_fp16)[name = tensor<string, []>("linear_0_cast_fp16")];
57
+ tensor<int32, [4]> concat_0 = const()[name = tensor<string, []>("concat_0"), val = tensor<int32, [4]>([224, 1, 3, 128])];
58
+ tensor<fp16, [224, 1, 3, 128]> var_124_cast_fp16 = reshape(shape = concat_0, x = linear_0_cast_fp16)[name = tensor<string, []>("op_124_cast_fp16")];
59
+ tensor<int32, [1]> var_125_axes_0 = const()[name = tensor<string, []>("op_125_axes_0"), val = tensor<int32, [1]>([0])];
60
+ tensor<fp16, [1, 224, 1, 3, 128]> var_125_cast_fp16 = expand_dims(axes = var_125_axes_0, x = var_124_cast_fp16)[name = tensor<string, []>("op_125_cast_fp16")];
61
+ tensor<int32, [5]> var_126_perm_0 = const()[name = tensor<string, []>("op_126_perm_0"), val = tensor<int32, [5]>([-2, 1, 2, 0, 4])];
62
+ tensor<int32, [1]> var_127_axes_0 = const()[name = tensor<string, []>("op_127_axes_0"), val = tensor<int32, [1]>([-2])];
63
+ tensor<fp16, [3, 224, 1, 1, 128]> var_126_cast_fp16 = transpose(perm = var_126_perm_0, x = var_125_cast_fp16)[name = tensor<string, []>("transpose_23")];
64
+ tensor<fp16, [3, 224, 1, 128]> var_127_cast_fp16 = squeeze(axes = var_127_axes_0, x = var_126_cast_fp16)[name = tensor<string, []>("op_127_cast_fp16")];
65
+ tensor<int32, [4]> q_1_begin_0 = const()[name = tensor<string, []>("q_1_begin_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
66
+ tensor<int32, [4]> q_1_end_0 = const()[name = tensor<string, []>("q_1_end_0"), val = tensor<int32, [4]>([1, 224, 1, 128])];
67
+ tensor<bool, [4]> q_1_end_mask_0 = const()[name = tensor<string, []>("q_1_end_mask_0"), val = tensor<bool, [4]>([false, true, true, true])];
68
+ tensor<bool, [4]> q_1_squeeze_mask_0 = const()[name = tensor<string, []>("q_1_squeeze_mask_0"), val = tensor<bool, [4]>([true, false, false, false])];
69
+ tensor<fp16, [224, 1, 128]> q_1_cast_fp16 = slice_by_index(begin = q_1_begin_0, end = q_1_end_0, end_mask = q_1_end_mask_0, squeeze_mask = q_1_squeeze_mask_0, x = var_127_cast_fp16)[name = tensor<string, []>("q_1_cast_fp16")];
70
+ tensor<int32, [4]> k_1_begin_0 = const()[name = tensor<string, []>("k_1_begin_0"), val = tensor<int32, [4]>([1, 0, 0, 0])];
71
+ tensor<int32, [4]> k_1_end_0 = const()[name = tensor<string, []>("k_1_end_0"), val = tensor<int32, [4]>([2, 224, 1, 128])];
72
+ tensor<bool, [4]> k_1_end_mask_0 = const()[name = tensor<string, []>("k_1_end_mask_0"), val = tensor<bool, [4]>([false, true, true, true])];
73
+ tensor<bool, [4]> k_1_squeeze_mask_0 = const()[name = tensor<string, []>("k_1_squeeze_mask_0"), val = tensor<bool, [4]>([true, false, false, false])];
74
+ tensor<fp16, [224, 1, 128]> k_1_cast_fp16 = slice_by_index(begin = k_1_begin_0, end = k_1_end_0, end_mask = k_1_end_mask_0, squeeze_mask = k_1_squeeze_mask_0, x = var_127_cast_fp16)[name = tensor<string, []>("k_1_cast_fp16")];
75
+ tensor<int32, [4]> v_1_begin_0 = const()[name = tensor<string, []>("v_1_begin_0"), val = tensor<int32, [4]>([2, 0, 0, 0])];
76
+ tensor<int32, [4]> v_1_end_0 = const()[name = tensor<string, []>("v_1_end_0"), val = tensor<int32, [4]>([3, 224, 1, 128])];
77
+ tensor<bool, [4]> v_1_end_mask_0 = const()[name = tensor<string, []>("v_1_end_mask_0"), val = tensor<bool, [4]>([false, true, true, true])];
78
+ tensor<bool, [4]> v_1_squeeze_mask_0 = const()[name = tensor<string, []>("v_1_squeeze_mask_0"), val = tensor<bool, [4]>([true, false, false, false])];
79
+ tensor<fp16, [224, 1, 128]> v_1_cast_fp16 = slice_by_index(begin = v_1_begin_0, end = v_1_end_0, end_mask = v_1_end_mask_0, squeeze_mask = v_1_squeeze_mask_0, x = var_127_cast_fp16)[name = tensor<string, []>("v_1_cast_fp16")];
80
+ tensor<int32, [3]> var_135 = const()[name = tensor<string, []>("op_135"), val = tensor<int32, [3]>([224, 4, 32])];
81
+ tensor<fp16, [224, 4, 32]> var_136_cast_fp16 = reshape(shape = var_135, x = q_1_cast_fp16)[name = tensor<string, []>("op_136_cast_fp16")];
82
+ tensor<int32, [3]> q_3_perm_0 = const()[name = tensor<string, []>("q_3_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
83
+ tensor<int32, [3]> var_142 = const()[name = tensor<string, []>("op_142"), val = tensor<int32, [3]>([224, 4, 32])];
84
+ tensor<fp16, [224, 4, 32]> var_143_cast_fp16 = reshape(shape = var_142, x = k_1_cast_fp16)[name = tensor<string, []>("op_143_cast_fp16")];
85
+ tensor<int32, [3]> k_3_perm_0 = const()[name = tensor<string, []>("k_3_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
86
+ tensor<int32, [3]> var_149 = const()[name = tensor<string, []>("op_149"), val = tensor<int32, [3]>([224, 4, 32])];
87
+ tensor<fp16, [224, 4, 32]> var_150_cast_fp16 = reshape(shape = var_149, x = v_1_cast_fp16)[name = tensor<string, []>("op_150_cast_fp16")];
88
+ tensor<int32, [3]> v_3_perm_0 = const()[name = tensor<string, []>("v_3_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
89
+ tensor<int32, [4]> var_153 = const()[name = tensor<string, []>("op_153"), val = tensor<int32, [4]>([1, 1, 1, 224])];
90
+ tensor<fp16, [1, 1, 1, 224]> var_154_cast_fp16 = reshape(shape = var_153, x = key_padding_mask_1_cast_fp16)[name = tensor<string, []>("op_154_cast_fp16")];
91
+ tensor<int32, [4]> var_156_reps_0 = const()[name = tensor<string, []>("op_156_reps_0"), val = tensor<int32, [4]>([1, 4, 1, 1])];
92
+ tensor<fp16, [1, 4, 1, 224]> var_156_cast_fp16 = tile(reps = var_156_reps_0, x = var_154_cast_fp16)[name = tensor<string, []>("op_156_cast_fp16")];
93
+ tensor<int32, [4]> var_164 = const()[name = tensor<string, []>("op_164"), val = tensor<int32, [4]>([1, 4, 224, 32])];
94
+ tensor<fp16, [4, 224, 32]> q_3_cast_fp16 = transpose(perm = q_3_perm_0, x = var_136_cast_fp16)[name = tensor<string, []>("transpose_22")];
95
+ tensor<fp16, [1, 4, 224, 32]> q_5_cast_fp16 = reshape(shape = var_164, x = q_3_cast_fp16)[name = tensor<string, []>("q_5_cast_fp16")];
96
+ tensor<int32, [4]> var_166 = const()[name = tensor<string, []>("op_166"), val = tensor<int32, [4]>([1, 4, 224, 32])];
97
+ tensor<fp16, [4, 224, 32]> k_3_cast_fp16 = transpose(perm = k_3_perm_0, x = var_143_cast_fp16)[name = tensor<string, []>("transpose_21")];
98
+ tensor<fp16, [1, 4, 224, 32]> k_5_cast_fp16 = reshape(shape = var_166, x = k_3_cast_fp16)[name = tensor<string, []>("k_5_cast_fp16")];
99
+ tensor<int32, [4]> var_168 = const()[name = tensor<string, []>("op_168"), val = tensor<int32, [4]>([1, 4, 224, 32])];
100
+ tensor<fp16, [4, 224, 32]> v_3_cast_fp16 = transpose(perm = v_3_perm_0, x = var_150_cast_fp16)[name = tensor<string, []>("transpose_20")];
101
+ tensor<fp16, [1, 4, 224, 32]> v_5_cast_fp16 = reshape(shape = var_168, x = v_3_cast_fp16)[name = tensor<string, []>("v_5_cast_fp16")];
102
+ tensor<fp16, []> mul_1_y_0_to_fp16 = const()[name = tensor<string, []>("mul_1_y_0_to_fp16"), val = tensor<fp16, []>(0x1.6ap-3)];
103
+ tensor<fp16, [1, 4, 224, 32]> mul_1_cast_fp16 = mul(x = q_5_cast_fp16, y = mul_1_y_0_to_fp16)[name = tensor<string, []>("mul_1_cast_fp16")];
104
+ tensor<bool, []> matmul_0_transpose_y_0 = const()[name = tensor<string, []>("matmul_0_transpose_y_0"), val = tensor<bool, []>(true)];
105
+ tensor<bool, []> matmul_0_transpose_x_0 = const()[name = tensor<string, []>("matmul_0_transpose_x_0"), val = tensor<bool, []>(false)];
106
+ tensor<fp16, [1, 4, 224, 224]> matmul_0_cast_fp16 = matmul(transpose_x = matmul_0_transpose_x_0, transpose_y = matmul_0_transpose_y_0, x = mul_1_cast_fp16, y = k_5_cast_fp16)[name = tensor<string, []>("matmul_0_cast_fp16")];
107
+ tensor<fp16, [1, 4, 224, 224]> add_0_cast_fp16 = add(x = matmul_0_cast_fp16, y = var_156_cast_fp16)[name = tensor<string, []>("add_0_cast_fp16")];
108
+ tensor<int32, []> softmax_0_axis_0 = const()[name = tensor<string, []>("softmax_0_axis_0"), val = tensor<int32, []>(-1)];
109
+ tensor<fp16, [1, 4, 224, 224]> softmax_0_cast_fp16 = softmax(axis = softmax_0_axis_0, x = add_0_cast_fp16)[name = tensor<string, []>("softmax_0_cast_fp16")];
110
+ tensor<bool, []> attn_output_1_transpose_x_0 = const()[name = tensor<string, []>("attn_output_1_transpose_x_0"), val = tensor<bool, []>(false)];
111
+ tensor<bool, []> attn_output_1_transpose_y_0 = const()[name = tensor<string, []>("attn_output_1_transpose_y_0"), val = tensor<bool, []>(false)];
112
+ tensor<fp16, [1, 4, 224, 32]> attn_output_1_cast_fp16 = matmul(transpose_x = attn_output_1_transpose_x_0, transpose_y = attn_output_1_transpose_y_0, x = softmax_0_cast_fp16, y = v_5_cast_fp16)[name = tensor<string, []>("attn_output_1_cast_fp16")];
113
+ tensor<int32, [4]> var_171 = const()[name = tensor<string, []>("op_171"), val = tensor<int32, [4]>([2, 0, 1, 3])];
114
+ tensor<int32, [2]> var_176 = const()[name = tensor<string, []>("op_176"), val = tensor<int32, [2]>([224, 128])];
115
+ tensor<fp16, [224, 1, 4, 32]> var_172_cast_fp16 = transpose(perm = var_171, x = attn_output_1_cast_fp16)[name = tensor<string, []>("transpose_19")];
116
+ tensor<fp16, [224, 128]> attn_output_3_cast_fp16 = reshape(shape = var_176, x = var_172_cast_fp16)[name = tensor<string, []>("attn_output_3_cast_fp16")];
117
+ tensor<fp16, [128, 128]> model_encoder_layers_0_self_attn_out_proj_weight_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_0_self_attn_out_proj_weight_to_fp16"), val = tensor<fp16, [128, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(223680)))];
118
+ tensor<fp16, [128]> model_encoder_layers_0_self_attn_out_proj_bias_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_0_self_attn_out_proj_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(256512)))];
119
+ tensor<fp16, [224, 128]> linear_1_cast_fp16 = linear(bias = model_encoder_layers_0_self_attn_out_proj_bias_to_fp16, weight = model_encoder_layers_0_self_attn_out_proj_weight_to_fp16, x = attn_output_3_cast_fp16)[name = tensor<string, []>("linear_1_cast_fp16")];
120
+ tensor<int32, [3]> var_180 = const()[name = tensor<string, []>("op_180"), val = tensor<int32, [3]>([224, 1, 128])];
121
+ tensor<fp16, [224, 1, 128]> attn_output_7_cast_fp16 = reshape(shape = var_180, x = linear_1_cast_fp16)[name = tensor<string, []>("attn_output_7_cast_fp16")];
122
+ tensor<int32, [3]> input_3_perm_0 = const()[name = tensor<string, []>("input_3_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
123
+ tensor<fp16, [1, 224, 128]> input_3_cast_fp16 = transpose(perm = input_3_perm_0, x = attn_output_7_cast_fp16)[name = tensor<string, []>("transpose_18")];
124
+ tensor<fp16, [1, 224, 128]> input_5_cast_fp16 = add(x = src_1_cast_fp16, y = input_3_cast_fp16)[name = tensor<string, []>("input_5_cast_fp16")];
125
+ tensor<int32, [1]> input_7_axes_0 = const()[name = tensor<string, []>("input_7_axes_0"), val = tensor<int32, [1]>([-1])];
126
+ tensor<fp16, [128]> model_encoder_layers_0_norm2_weight_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_0_norm2_weight_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(256832)))];
127
+ tensor<fp16, [128]> model_encoder_layers_0_norm2_bias_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_0_norm2_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(257152)))];
128
+ tensor<fp16, [1, 224, 128]> input_7_cast_fp16 = layer_norm(axes = input_7_axes_0, beta = model_encoder_layers_0_norm2_bias_to_fp16, epsilon = var_69_to_fp16, gamma = model_encoder_layers_0_norm2_weight_to_fp16, x = input_5_cast_fp16)[name = tensor<string, []>("input_7_cast_fp16")];
129
+ tensor<fp16, [512, 128]> model_encoder_layers_0_linear1_weight_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_0_linear1_weight_to_fp16"), val = tensor<fp16, [512, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(257472)))];
130
+ tensor<fp16, [512]> model_encoder_layers_0_linear1_bias_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_0_linear1_bias_to_fp16"), val = tensor<fp16, [512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(388608)))];
131
+ tensor<fp16, [1, 224, 512]> linear_2_cast_fp16 = linear(bias = model_encoder_layers_0_linear1_bias_to_fp16, weight = model_encoder_layers_0_linear1_weight_to_fp16, x = input_7_cast_fp16)[name = tensor<string, []>("linear_2_cast_fp16")];
132
+ tensor<fp16, [1, 224, 512]> input_11_cast_fp16 = relu(x = linear_2_cast_fp16)[name = tensor<string, []>("input_11_cast_fp16")];
133
+ tensor<fp16, [128, 512]> model_encoder_layers_0_linear2_weight_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_0_linear2_weight_to_fp16"), val = tensor<fp16, [128, 512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(389696)))];
134
+ tensor<fp16, [128]> model_encoder_layers_0_linear2_bias_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_0_linear2_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(520832)))];
135
+ tensor<fp16, [1, 224, 128]> linear_3_cast_fp16 = linear(bias = model_encoder_layers_0_linear2_bias_to_fp16, weight = model_encoder_layers_0_linear2_weight_to_fp16, x = input_11_cast_fp16)[name = tensor<string, []>("linear_3_cast_fp16")];
136
+ tensor<fp16, [1, 224, 128]> input_17_cast_fp16 = add(x = input_5_cast_fp16, y = linear_3_cast_fp16)[name = tensor<string, []>("input_17_cast_fp16")];
137
+ tensor<int32, [1]> query_5_axes_0 = const()[name = tensor<string, []>("query_5_axes_0"), val = tensor<int32, [1]>([-1])];
138
+ tensor<fp16, [128]> model_encoder_layers_1_norm1_weight_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_1_norm1_weight_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(521152)))];
139
+ tensor<fp16, [128]> model_encoder_layers_1_norm1_bias_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_1_norm1_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(521472)))];
140
+ tensor<fp16, [1, 224, 128]> query_5_cast_fp16 = layer_norm(axes = query_5_axes_0, beta = model_encoder_layers_1_norm1_bias_to_fp16, epsilon = var_69_to_fp16, gamma = model_encoder_layers_1_norm1_weight_to_fp16, x = input_17_cast_fp16)[name = tensor<string, []>("query_5_cast_fp16")];
141
+ tensor<int32, [3]> query_7_perm_0 = const()[name = tensor<string, []>("query_7_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
142
+ tensor<fp16, [384, 128]> model_encoder_layers_1_self_attn_in_proj_weight_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_1_self_attn_in_proj_weight_to_fp16"), val = tensor<fp16, [384, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(521792)))];
143
+ tensor<fp16, [384]> model_encoder_layers_1_self_attn_in_proj_bias_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_1_self_attn_in_proj_bias_to_fp16"), val = tensor<fp16, [384]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(620160)))];
144
+ tensor<fp16, [224, 1, 128]> query_7_cast_fp16 = transpose(perm = query_7_perm_0, x = query_5_cast_fp16)[name = tensor<string, []>("transpose_17")];
145
+ tensor<fp16, [224, 1, 384]> linear_4_cast_fp16 = linear(bias = model_encoder_layers_1_self_attn_in_proj_bias_to_fp16, weight = model_encoder_layers_1_self_attn_in_proj_weight_to_fp16, x = query_7_cast_fp16)[name = tensor<string, []>("linear_4_cast_fp16")];
146
+ tensor<int32, [4]> concat_2 = const()[name = tensor<string, []>("concat_2"), val = tensor<int32, [4]>([224, 1, 3, 128])];
147
+ tensor<fp16, [224, 1, 3, 128]> var_231_cast_fp16 = reshape(shape = concat_2, x = linear_4_cast_fp16)[name = tensor<string, []>("op_231_cast_fp16")];
148
+ tensor<int32, [1]> var_232_axes_0 = const()[name = tensor<string, []>("op_232_axes_0"), val = tensor<int32, [1]>([0])];
149
+ tensor<fp16, [1, 224, 1, 3, 128]> var_232_cast_fp16 = expand_dims(axes = var_232_axes_0, x = var_231_cast_fp16)[name = tensor<string, []>("op_232_cast_fp16")];
150
+ tensor<int32, [5]> var_233_perm_0 = const()[name = tensor<string, []>("op_233_perm_0"), val = tensor<int32, [5]>([-2, 1, 2, 0, 4])];
151
+ tensor<int32, [1]> var_234_axes_0 = const()[name = tensor<string, []>("op_234_axes_0"), val = tensor<int32, [1]>([-2])];
152
+ tensor<fp16, [3, 224, 1, 1, 128]> var_233_cast_fp16 = transpose(perm = var_233_perm_0, x = var_232_cast_fp16)[name = tensor<string, []>("transpose_16")];
153
+ tensor<fp16, [3, 224, 1, 128]> var_234_cast_fp16 = squeeze(axes = var_234_axes_0, x = var_233_cast_fp16)[name = tensor<string, []>("op_234_cast_fp16")];
154
+ tensor<int32, [4]> q_7_begin_0 = const()[name = tensor<string, []>("q_7_begin_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
155
+ tensor<int32, [4]> q_7_end_0 = const()[name = tensor<string, []>("q_7_end_0"), val = tensor<int32, [4]>([1, 224, 1, 128])];
156
+ tensor<bool, [4]> q_7_end_mask_0 = const()[name = tensor<string, []>("q_7_end_mask_0"), val = tensor<bool, [4]>([false, true, true, true])];
157
+ tensor<bool, [4]> q_7_squeeze_mask_0 = const()[name = tensor<string, []>("q_7_squeeze_mask_0"), val = tensor<bool, [4]>([true, false, false, false])];
158
+ tensor<fp16, [224, 1, 128]> q_7_cast_fp16 = slice_by_index(begin = q_7_begin_0, end = q_7_end_0, end_mask = q_7_end_mask_0, squeeze_mask = q_7_squeeze_mask_0, x = var_234_cast_fp16)[name = tensor<string, []>("q_7_cast_fp16")];
159
+ tensor<int32, [4]> k_7_begin_0 = const()[name = tensor<string, []>("k_7_begin_0"), val = tensor<int32, [4]>([1, 0, 0, 0])];
160
+ tensor<int32, [4]> k_7_end_0 = const()[name = tensor<string, []>("k_7_end_0"), val = tensor<int32, [4]>([2, 224, 1, 128])];
161
+ tensor<bool, [4]> k_7_end_mask_0 = const()[name = tensor<string, []>("k_7_end_mask_0"), val = tensor<bool, [4]>([false, true, true, true])];
162
+ tensor<bool, [4]> k_7_squeeze_mask_0 = const()[name = tensor<string, []>("k_7_squeeze_mask_0"), val = tensor<bool, [4]>([true, false, false, false])];
163
+ tensor<fp16, [224, 1, 128]> k_7_cast_fp16 = slice_by_index(begin = k_7_begin_0, end = k_7_end_0, end_mask = k_7_end_mask_0, squeeze_mask = k_7_squeeze_mask_0, x = var_234_cast_fp16)[name = tensor<string, []>("k_7_cast_fp16")];
164
+ tensor<int32, [4]> v_7_begin_0 = const()[name = tensor<string, []>("v_7_begin_0"), val = tensor<int32, [4]>([2, 0, 0, 0])];
165
+ tensor<int32, [4]> v_7_end_0 = const()[name = tensor<string, []>("v_7_end_0"), val = tensor<int32, [4]>([3, 224, 1, 128])];
166
+ tensor<bool, [4]> v_7_end_mask_0 = const()[name = tensor<string, []>("v_7_end_mask_0"), val = tensor<bool, [4]>([false, true, true, true])];
167
+ tensor<bool, [4]> v_7_squeeze_mask_0 = const()[name = tensor<string, []>("v_7_squeeze_mask_0"), val = tensor<bool, [4]>([true, false, false, false])];
168
+ tensor<fp16, [224, 1, 128]> v_7_cast_fp16 = slice_by_index(begin = v_7_begin_0, end = v_7_end_0, end_mask = v_7_end_mask_0, squeeze_mask = v_7_squeeze_mask_0, x = var_234_cast_fp16)[name = tensor<string, []>("v_7_cast_fp16")];
169
+ tensor<int32, [3]> var_242 = const()[name = tensor<string, []>("op_242"), val = tensor<int32, [3]>([224, 4, 32])];
170
+ tensor<fp16, [224, 4, 32]> var_243_cast_fp16 = reshape(shape = var_242, x = q_7_cast_fp16)[name = tensor<string, []>("op_243_cast_fp16")];
171
+ tensor<int32, [3]> q_9_perm_0 = const()[name = tensor<string, []>("q_9_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
172
+ tensor<int32, [3]> var_249 = const()[name = tensor<string, []>("op_249"), val = tensor<int32, [3]>([224, 4, 32])];
173
+ tensor<fp16, [224, 4, 32]> var_250_cast_fp16 = reshape(shape = var_249, x = k_7_cast_fp16)[name = tensor<string, []>("op_250_cast_fp16")];
174
+ tensor<int32, [3]> k_9_perm_0 = const()[name = tensor<string, []>("k_9_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
175
+ tensor<int32, [3]> var_256 = const()[name = tensor<string, []>("op_256"), val = tensor<int32, [3]>([224, 4, 32])];
176
+ tensor<fp16, [224, 4, 32]> var_257_cast_fp16 = reshape(shape = var_256, x = v_7_cast_fp16)[name = tensor<string, []>("op_257_cast_fp16")];
177
+ tensor<int32, [3]> v_9_perm_0 = const()[name = tensor<string, []>("v_9_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
178
+ tensor<int32, [4]> var_271 = const()[name = tensor<string, []>("op_271"), val = tensor<int32, [4]>([1, 4, 224, 32])];
179
+ tensor<fp16, [4, 224, 32]> q_9_cast_fp16 = transpose(perm = q_9_perm_0, x = var_243_cast_fp16)[name = tensor<string, []>("transpose_15")];
180
+ tensor<fp16, [1, 4, 224, 32]> q_11_cast_fp16 = reshape(shape = var_271, x = q_9_cast_fp16)[name = tensor<string, []>("q_11_cast_fp16")];
181
+ tensor<int32, [4]> var_273 = const()[name = tensor<string, []>("op_273"), val = tensor<int32, [4]>([1, 4, 224, 32])];
182
+ tensor<fp16, [4, 224, 32]> k_9_cast_fp16 = transpose(perm = k_9_perm_0, x = var_250_cast_fp16)[name = tensor<string, []>("transpose_14")];
183
+ tensor<fp16, [1, 4, 224, 32]> k_11_cast_fp16 = reshape(shape = var_273, x = k_9_cast_fp16)[name = tensor<string, []>("k_11_cast_fp16")];
184
+ tensor<int32, [4]> var_275 = const()[name = tensor<string, []>("op_275"), val = tensor<int32, [4]>([1, 4, 224, 32])];
185
+ tensor<fp16, [4, 224, 32]> v_9_cast_fp16 = transpose(perm = v_9_perm_0, x = var_257_cast_fp16)[name = tensor<string, []>("transpose_13")];
186
+ tensor<fp16, [1, 4, 224, 32]> v_11_cast_fp16 = reshape(shape = var_275, x = v_9_cast_fp16)[name = tensor<string, []>("v_11_cast_fp16")];
187
+ tensor<fp16, []> mul_3_y_0_to_fp16 = const()[name = tensor<string, []>("mul_3_y_0_to_fp16"), val = tensor<fp16, []>(0x1.6ap-3)];
188
+ tensor<fp16, [1, 4, 224, 32]> mul_3_cast_fp16 = mul(x = q_11_cast_fp16, y = mul_3_y_0_to_fp16)[name = tensor<string, []>("mul_3_cast_fp16")];
189
+ tensor<bool, []> matmul_1_transpose_y_0 = const()[name = tensor<string, []>("matmul_1_transpose_y_0"), val = tensor<bool, []>(true)];
190
+ tensor<bool, []> matmul_1_transpose_x_0 = const()[name = tensor<string, []>("matmul_1_transpose_x_0"), val = tensor<bool, []>(false)];
191
+ tensor<fp16, [1, 4, 224, 224]> matmul_1_cast_fp16 = matmul(transpose_x = matmul_1_transpose_x_0, transpose_y = matmul_1_transpose_y_0, x = mul_3_cast_fp16, y = k_11_cast_fp16)[name = tensor<string, []>("matmul_1_cast_fp16")];
192
+ tensor<fp16, [1, 4, 224, 224]> add_1_cast_fp16 = add(x = matmul_1_cast_fp16, y = var_156_cast_fp16)[name = tensor<string, []>("add_1_cast_fp16")];
193
+ tensor<int32, []> softmax_1_axis_0 = const()[name = tensor<string, []>("softmax_1_axis_0"), val = tensor<int32, []>(-1)];
194
+ tensor<fp16, [1, 4, 224, 224]> softmax_1_cast_fp16 = softmax(axis = softmax_1_axis_0, x = add_1_cast_fp16)[name = tensor<string, []>("softmax_1_cast_fp16")];
195
+ tensor<bool, []> attn_output_9_transpose_x_0 = const()[name = tensor<string, []>("attn_output_9_transpose_x_0"), val = tensor<bool, []>(false)];
196
+ tensor<bool, []> attn_output_9_transpose_y_0 = const()[name = tensor<string, []>("attn_output_9_transpose_y_0"), val = tensor<bool, []>(false)];
197
+ tensor<fp16, [1, 4, 224, 32]> attn_output_9_cast_fp16 = matmul(transpose_x = attn_output_9_transpose_x_0, transpose_y = attn_output_9_transpose_y_0, x = softmax_1_cast_fp16, y = v_11_cast_fp16)[name = tensor<string, []>("attn_output_9_cast_fp16")];
198
+ tensor<int32, [4]> var_278 = const()[name = tensor<string, []>("op_278"), val = tensor<int32, [4]>([2, 0, 1, 3])];
199
+ tensor<int32, [2]> var_283 = const()[name = tensor<string, []>("op_283"), val = tensor<int32, [2]>([224, 128])];
200
+ tensor<fp16, [224, 1, 4, 32]> var_279_cast_fp16 = transpose(perm = var_278, x = attn_output_9_cast_fp16)[name = tensor<string, []>("transpose_12")];
201
+ tensor<fp16, [224, 128]> attn_output_11_cast_fp16 = reshape(shape = var_283, x = var_279_cast_fp16)[name = tensor<string, []>("attn_output_11_cast_fp16")];
202
+ tensor<fp16, [128, 128]> model_encoder_layers_1_self_attn_out_proj_weight_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_1_self_attn_out_proj_weight_to_fp16"), val = tensor<fp16, [128, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(620992)))];
203
+ tensor<fp16, [128]> model_encoder_layers_1_self_attn_out_proj_bias_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_1_self_attn_out_proj_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(653824)))];
204
+ tensor<fp16, [224, 128]> linear_5_cast_fp16 = linear(bias = model_encoder_layers_1_self_attn_out_proj_bias_to_fp16, weight = model_encoder_layers_1_self_attn_out_proj_weight_to_fp16, x = attn_output_11_cast_fp16)[name = tensor<string, []>("linear_5_cast_fp16")];
205
+ tensor<int32, [3]> var_287 = const()[name = tensor<string, []>("op_287"), val = tensor<int32, [3]>([224, 1, 128])];
206
+ tensor<fp16, [224, 1, 128]> attn_output_15_cast_fp16 = reshape(shape = var_287, x = linear_5_cast_fp16)[name = tensor<string, []>("attn_output_15_cast_fp16")];
207
+ tensor<int32, [3]> input_19_perm_0 = const()[name = tensor<string, []>("input_19_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
208
+ tensor<fp16, [1, 224, 128]> input_19_cast_fp16 = transpose(perm = input_19_perm_0, x = attn_output_15_cast_fp16)[name = tensor<string, []>("transpose_11")];
209
+ tensor<fp16, [1, 224, 128]> input_21_cast_fp16 = add(x = input_17_cast_fp16, y = input_19_cast_fp16)[name = tensor<string, []>("input_21_cast_fp16")];
210
+ tensor<int32, [1]> input_23_axes_0 = const()[name = tensor<string, []>("input_23_axes_0"), val = tensor<int32, [1]>([-1])];
211
+ tensor<fp16, [128]> model_encoder_layers_1_norm2_weight_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_1_norm2_weight_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(654144)))];
212
+ tensor<fp16, [128]> model_encoder_layers_1_norm2_bias_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_1_norm2_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(654464)))];
213
+ tensor<fp16, [1, 224, 128]> input_23_cast_fp16 = layer_norm(axes = input_23_axes_0, beta = model_encoder_layers_1_norm2_bias_to_fp16, epsilon = var_69_to_fp16, gamma = model_encoder_layers_1_norm2_weight_to_fp16, x = input_21_cast_fp16)[name = tensor<string, []>("input_23_cast_fp16")];
214
+ tensor<fp16, [512, 128]> model_encoder_layers_1_linear1_weight_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_1_linear1_weight_to_fp16"), val = tensor<fp16, [512, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(654784)))];
215
+ tensor<fp16, [512]> model_encoder_layers_1_linear1_bias_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_1_linear1_bias_to_fp16"), val = tensor<fp16, [512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(785920)))];
216
+ tensor<fp16, [1, 224, 512]> linear_6_cast_fp16 = linear(bias = model_encoder_layers_1_linear1_bias_to_fp16, weight = model_encoder_layers_1_linear1_weight_to_fp16, x = input_23_cast_fp16)[name = tensor<string, []>("linear_6_cast_fp16")];
217
+ tensor<fp16, [1, 224, 512]> input_27_cast_fp16 = relu(x = linear_6_cast_fp16)[name = tensor<string, []>("input_27_cast_fp16")];
218
+ tensor<fp16, [128, 512]> model_encoder_layers_1_linear2_weight_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_1_linear2_weight_to_fp16"), val = tensor<fp16, [128, 512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(787008)))];
219
+ tensor<fp16, [128]> model_encoder_layers_1_linear2_bias_to_fp16 = const()[name = tensor<string, []>("model_encoder_layers_1_linear2_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(918144)))];
220
+ tensor<fp16, [1, 224, 128]> linear_7_cast_fp16 = linear(bias = model_encoder_layers_1_linear2_bias_to_fp16, weight = model_encoder_layers_1_linear2_weight_to_fp16, x = input_27_cast_fp16)[name = tensor<string, []>("linear_7_cast_fp16")];
221
+ tensor<fp16, [1, 224, 128]> context_cast_fp16 = add(x = input_21_cast_fp16, y = linear_7_cast_fp16)[name = tensor<string, []>("context_cast_fp16")];
222
+ tensor<int32, [2]> var_320 = const()[name = tensor<string, []>("op_320"), val = tensor<int32, [2]>([32, 96])];
223
+ tensor<int32, [32, 96]> flat_ids = reshape(shape = var_320, x = option_ids)[name = tensor<string, []>("flat_ids")];
224
+ tensor<int32, []> var_322 = const()[name = tensor<string, []>("op_322"), val = tensor<int32, []>(0)];
225
+ tensor<bool, [32, 96]> flat_mask = not_equal(x = flat_ids, y = var_322)[name = tensor<string, []>("flat_mask")];
226
+ tensor<int32, [2]> var_333_begin_0 = const()[name = tensor<string, []>("op_333_begin_0"), val = tensor<int32, [2]>([0, 0])];
227
+ tensor<int32, [2]> var_333_end_0 = const()[name = tensor<string, []>("op_333_end_0"), val = tensor<int32, [2]>([32, 1])];
228
+ tensor<bool, [2]> var_333_end_mask_0 = const()[name = tensor<string, []>("op_333_end_mask_0"), val = tensor<bool, [2]>([true, false])];
229
+ tensor<int32, [32, 1]> var_333 = slice_by_index(begin = var_333_begin_0, end = var_333_end_0, end_mask = var_333_end_mask_0, x = flat_ids)[name = tensor<string, []>("op_333")];
230
+ tensor<fp16, []> fill_like_1_value_0_to_fp16 = const()[name = tensor<string, []>("fill_like_1_value_0_to_fp16"), val = tensor<fp16, []>(0x1p+0)];
231
+ tensor<fp16, [32, 1]> fill_like_1_cast_fp16 = fill_like(ref_tensor = var_333, value = fill_like_1_value_0_to_fp16)[name = tensor<string, []>("fill_like_1_cast_fp16")];
232
+ tensor<int32, [2]> var_349_begin_0 = const()[name = tensor<string, []>("op_349_begin_0"), val = tensor<int32, [2]>([0, 1])];
233
+ tensor<int32, [2]> var_349_end_0 = const()[name = tensor<string, []>("op_349_end_0"), val = tensor<int32, [2]>([32, 96])];
234
+ tensor<bool, [2]> var_349_end_mask_0 = const()[name = tensor<string, []>("op_349_end_mask_0"), val = tensor<bool, [2]>([true, true])];
235
+ tensor<int32, [32, 95]> var_349 = slice_by_index(begin = var_349_begin_0, end = var_349_end_0, end_mask = var_349_end_mask_0, x = flat_ids)[name = tensor<string, []>("op_349")];
236
+ tensor<int32, []> var_351 = const()[name = tensor<string, []>("op_351"), val = tensor<int32, []>(1)];
237
+ tensor<bool, []> safe_ids_interleave_0 = const()[name = tensor<string, []>("safe_ids_interleave_0"), val = tensor<bool, []>(false)];
238
+ tensor<string, []> var_349_promoted_to_fp16_dtype_0 = const()[name = tensor<string, []>("op_349_promoted_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
239
+ tensor<fp16, [32, 95]> var_349_to_fp16 = cast(dtype = var_349_promoted_to_fp16_dtype_0, x = var_349)[name = tensor<string, []>("cast_62")];
240
+ tensor<fp16, [32, 96]> safe_ids_cast_fp16 = concat(axis = var_351, interleave = safe_ids_interleave_0, values = (fill_like_1_cast_fp16, var_349_to_fp16))[name = tensor<string, []>("safe_ids_cast_fp16")];
241
+ tensor<int32, []> var_365_batch_dims_0 = const()[name = tensor<string, []>("op_365_batch_dims_0"), val = tensor<int32, []>(0)];
242
+ tensor<bool, []> var_365_validate_indices_0 = const()[name = tensor<string, []>("op_365_validate_indices_0"), val = tensor<bool, []>(false)];
243
+ tensor<string, []> flat_ids_to_int16_dtype_0 = const()[name = tensor<string, []>("flat_ids_to_int16_dtype_0"), val = tensor<string, []>("int16")];
244
+ tensor<string, []> cast_55_dtype_0 = const()[name = tensor<string, []>("cast_55_dtype_0"), val = tensor<string, []>("int32")];
245
+ tensor<int32, []> greater_equal_1_y_0 = const()[name = tensor<string, []>("greater_equal_1_y_0"), val = tensor<int32, []>(0)];
246
+ tensor<int16, [32, 96]> flat_ids_to_int16 = cast(dtype = flat_ids_to_int16_dtype_0, x = flat_ids)[name = tensor<string, []>("cast_61")];
247
+ tensor<int32, [32, 96]> cast_55 = cast(dtype = cast_55_dtype_0, x = flat_ids_to_int16)[name = tensor<string, []>("cast_60")];
248
+ tensor<bool, [32, 96]> greater_equal_1 = greater_equal(x = cast_55, y = greater_equal_1_y_0)[name = tensor<string, []>("greater_equal_1")];
249
+ tensor<int32, []> slice_by_index_19 = const()[name = tensor<string, []>("slice_by_index_19"), val = tensor<int32, []>(257)];
250
+ tensor<int32, [32, 96]> add_4 = add(x = cast_55, y = slice_by_index_19)[name = tensor<string, []>("add_4")];
251
+ tensor<int32, [32, 96]> select_1 = select(a = cast_55, b = add_4, cond = greater_equal_1)[name = tensor<string, []>("select_1")];
252
+ tensor<int32, []> var_365_cast_fp16_cast_uint16_axis_0 = const()[name = tensor<string, []>("op_365_cast_fp16_cast_uint16_axis_0"), val = tensor<int32, []>(0)];
253
+ tensor<string, []> select_1_to_int16_dtype_0 = const()[name = tensor<string, []>("select_1_to_int16_dtype_0"), val = tensor<string, []>("int16")];
254
+ tensor<int16, [32, 96]> select_1_to_int16 = cast(dtype = select_1_to_int16_dtype_0, x = select_1)[name = tensor<string, []>("cast_59")];
255
+ tensor<fp16, [32, 96, 128]> var_365_cast_fp16_cast_uint16_cast_uint16 = gather(axis = var_365_cast_fp16_cast_uint16_axis_0, batch_dims = var_365_batch_dims_0, indices = select_1_to_int16, validate_indices = var_365_validate_indices_0, x = model_embedding_weight_to_fp16)[name = tensor<string, []>("op_365_cast_fp16_cast_uint16_cast_uint16")];
256
+ tensor<fp16, [96, 128]> var_369_to_fp16 = const()[name = tensor<string, []>("op_369_to_fp16"), val = tensor<fp16, [96, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(918464)))];
257
+ tensor<fp16, [32, 96, 128]> src_cast_fp16 = add(x = var_365_cast_fp16_cast_uint16_cast_uint16, y = var_369_to_fp16)[name = tensor<string, []>("src_cast_fp16")];
258
+ tensor<fp16, []> var_372_promoted_to_fp16 = const()[name = tensor<string, []>("op_372_promoted_to_fp16"), val = tensor<fp16, []>(0x0p+0)];
259
+ tensor<bool, [32, 96]> mask_cast_fp16 = equal(x = safe_ids_cast_fp16, y = var_372_promoted_to_fp16)[name = tensor<string, []>("mask_cast_fp16")];
260
+ tensor<fp16, []> var_388_to_fp16 = const()[name = tensor<string, []>("op_388_to_fp16"), val = tensor<fp16, []>(-inf)];
261
+ tensor<fp16, [32, 96]> var_394_to_fp16 = const()[name = tensor<string, []>("op_394_to_fp16"), val = tensor<fp16, [32, 96]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(943104)))];
262
+ tensor<fp16, [32, 96]> key_padding_mask_7_cast_fp16 = select(a = var_388_to_fp16, b = var_394_to_fp16, cond = mask_cast_fp16)[name = tensor<string, []>("key_padding_mask_7_cast_fp16")];
263
+ tensor<int32, [1]> query_9_axes_0 = const()[name = tensor<string, []>("query_9_axes_0"), val = tensor<int32, [1]>([-1])];
264
+ tensor<fp16, [128]> model_option_encoder_layers_0_norm1_weight_to_fp16 = const()[name = tensor<string, []>("model_option_encoder_layers_0_norm1_weight_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(949312)))];
265
+ tensor<fp16, [128]> model_option_encoder_layers_0_norm1_bias_to_fp16 = const()[name = tensor<string, []>("model_option_encoder_layers_0_norm1_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(949632)))];
266
+ tensor<fp16, []> var_375_to_fp16 = const()[name = tensor<string, []>("op_375_to_fp16"), val = tensor<fp16, []>(0x1.5p-17)];
267
+ tensor<fp16, [32, 96, 128]> query_9_cast_fp16 = layer_norm(axes = query_9_axes_0, beta = model_option_encoder_layers_0_norm1_bias_to_fp16, epsilon = var_375_to_fp16, gamma = model_option_encoder_layers_0_norm1_weight_to_fp16, x = src_cast_fp16)[name = tensor<string, []>("query_9_cast_fp16")];
268
+ tensor<int32, [3]> query_11_perm_0 = const()[name = tensor<string, []>("query_11_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
269
+ tensor<fp16, [384, 128]> model_option_encoder_layers_0_self_attn_in_proj_weight_to_fp16 = const()[name = tensor<string, []>("model_option_encoder_layers_0_self_attn_in_proj_weight_to_fp16"), val = tensor<fp16, [384, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(949952)))];
270
+ tensor<fp16, [384]> model_option_encoder_layers_0_self_attn_in_proj_bias_to_fp16 = const()[name = tensor<string, []>("model_option_encoder_layers_0_self_attn_in_proj_bias_to_fp16"), val = tensor<fp16, [384]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1048320)))];
271
+ tensor<fp16, [96, 32, 128]> query_11_cast_fp16 = transpose(perm = query_11_perm_0, x = query_9_cast_fp16)[name = tensor<string, []>("transpose_10")];
272
+ tensor<fp16, [96, 32, 384]> linear_8_cast_fp16 = linear(bias = model_option_encoder_layers_0_self_attn_in_proj_bias_to_fp16, weight = model_option_encoder_layers_0_self_attn_in_proj_weight_to_fp16, x = query_11_cast_fp16)[name = tensor<string, []>("linear_8_cast_fp16")];
273
+ tensor<int32, [4]> concat_4 = const()[name = tensor<string, []>("concat_4"), val = tensor<int32, [4]>([96, 32, 3, 128])];
274
+ tensor<fp16, [96, 32, 3, 128]> var_428_cast_fp16 = reshape(shape = concat_4, x = linear_8_cast_fp16)[name = tensor<string, []>("op_428_cast_fp16")];
275
+ tensor<int32, [1]> var_429_axes_0 = const()[name = tensor<string, []>("op_429_axes_0"), val = tensor<int32, [1]>([0])];
276
+ tensor<fp16, [1, 96, 32, 3, 128]> var_429_cast_fp16 = expand_dims(axes = var_429_axes_0, x = var_428_cast_fp16)[name = tensor<string, []>("op_429_cast_fp16")];
277
+ tensor<int32, [5]> var_430_perm_0 = const()[name = tensor<string, []>("op_430_perm_0"), val = tensor<int32, [5]>([-2, 1, 2, 0, 4])];
278
+ tensor<int32, [1]> var_431_axes_0 = const()[name = tensor<string, []>("op_431_axes_0"), val = tensor<int32, [1]>([-2])];
279
+ tensor<fp16, [3, 96, 32, 1, 128]> var_430_cast_fp16 = transpose(perm = var_430_perm_0, x = var_429_cast_fp16)[name = tensor<string, []>("transpose_9")];
280
+ tensor<fp16, [3, 96, 32, 128]> var_431_cast_fp16 = squeeze(axes = var_431_axes_0, x = var_430_cast_fp16)[name = tensor<string, []>("op_431_cast_fp16")];
281
+ tensor<int32, [4]> q_13_begin_0 = const()[name = tensor<string, []>("q_13_begin_0"), val = tensor<int32, [4]>([0, 0, 0, 0])];
282
+ tensor<int32, [4]> q_13_end_0 = const()[name = tensor<string, []>("q_13_end_0"), val = tensor<int32, [4]>([1, 96, 32, 128])];
283
+ tensor<bool, [4]> q_13_end_mask_0 = const()[name = tensor<string, []>("q_13_end_mask_0"), val = tensor<bool, [4]>([false, true, true, true])];
284
+ tensor<bool, [4]> q_13_squeeze_mask_0 = const()[name = tensor<string, []>("q_13_squeeze_mask_0"), val = tensor<bool, [4]>([true, false, false, false])];
285
+ tensor<fp16, [96, 32, 128]> q_13_cast_fp16 = slice_by_index(begin = q_13_begin_0, end = q_13_end_0, end_mask = q_13_end_mask_0, squeeze_mask = q_13_squeeze_mask_0, x = var_431_cast_fp16)[name = tensor<string, []>("q_13_cast_fp16")];
286
+ tensor<int32, [4]> k_13_begin_0 = const()[name = tensor<string, []>("k_13_begin_0"), val = tensor<int32, [4]>([1, 0, 0, 0])];
287
+ tensor<int32, [4]> k_13_end_0 = const()[name = tensor<string, []>("k_13_end_0"), val = tensor<int32, [4]>([2, 96, 32, 128])];
288
+ tensor<bool, [4]> k_13_end_mask_0 = const()[name = tensor<string, []>("k_13_end_mask_0"), val = tensor<bool, [4]>([false, true, true, true])];
289
+ tensor<bool, [4]> k_13_squeeze_mask_0 = const()[name = tensor<string, []>("k_13_squeeze_mask_0"), val = tensor<bool, [4]>([true, false, false, false])];
290
+ tensor<fp16, [96, 32, 128]> k_13_cast_fp16 = slice_by_index(begin = k_13_begin_0, end = k_13_end_0, end_mask = k_13_end_mask_0, squeeze_mask = k_13_squeeze_mask_0, x = var_431_cast_fp16)[name = tensor<string, []>("k_13_cast_fp16")];
291
+ tensor<int32, [4]> v_13_begin_0 = const()[name = tensor<string, []>("v_13_begin_0"), val = tensor<int32, [4]>([2, 0, 0, 0])];
292
+ tensor<int32, [4]> v_13_end_0 = const()[name = tensor<string, []>("v_13_end_0"), val = tensor<int32, [4]>([3, 96, 32, 128])];
293
+ tensor<bool, [4]> v_13_end_mask_0 = const()[name = tensor<string, []>("v_13_end_mask_0"), val = tensor<bool, [4]>([false, true, true, true])];
294
+ tensor<bool, [4]> v_13_squeeze_mask_0 = const()[name = tensor<string, []>("v_13_squeeze_mask_0"), val = tensor<bool, [4]>([true, false, false, false])];
295
+ tensor<fp16, [96, 32, 128]> v_13_cast_fp16 = slice_by_index(begin = v_13_begin_0, end = v_13_end_0, end_mask = v_13_end_mask_0, squeeze_mask = v_13_squeeze_mask_0, x = var_431_cast_fp16)[name = tensor<string, []>("v_13_cast_fp16")];
296
+ tensor<int32, [3]> var_439 = const()[name = tensor<string, []>("op_439"), val = tensor<int32, [3]>([96, 128, 32])];
297
+ tensor<fp16, [96, 128, 32]> var_440_cast_fp16 = reshape(shape = var_439, x = q_13_cast_fp16)[name = tensor<string, []>("op_440_cast_fp16")];
298
+ tensor<int32, [3]> q_15_perm_0 = const()[name = tensor<string, []>("q_15_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
299
+ tensor<int32, [3]> var_446 = const()[name = tensor<string, []>("op_446"), val = tensor<int32, [3]>([96, 128, 32])];
300
+ tensor<fp16, [96, 128, 32]> var_447_cast_fp16 = reshape(shape = var_446, x = k_13_cast_fp16)[name = tensor<string, []>("op_447_cast_fp16")];
301
+ tensor<int32, [3]> k_15_perm_0 = const()[name = tensor<string, []>("k_15_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
302
+ tensor<int32, [3]> var_453 = const()[name = tensor<string, []>("op_453"), val = tensor<int32, [3]>([96, 128, 32])];
303
+ tensor<fp16, [96, 128, 32]> var_454_cast_fp16 = reshape(shape = var_453, x = v_13_cast_fp16)[name = tensor<string, []>("op_454_cast_fp16")];
304
+ tensor<int32, [3]> v_15_perm_0 = const()[name = tensor<string, []>("v_15_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
305
+ tensor<int32, [4]> var_457 = const()[name = tensor<string, []>("op_457"), val = tensor<int32, [4]>([32, 1, 1, 96])];
306
+ tensor<fp16, [32, 1, 1, 96]> var_458_cast_fp16 = reshape(shape = var_457, x = key_padding_mask_7_cast_fp16)[name = tensor<string, []>("op_458_cast_fp16")];
307
+ tensor<int32, [4]> var_460_reps_0 = const()[name = tensor<string, []>("op_460_reps_0"), val = tensor<int32, [4]>([1, 4, 1, 1])];
308
+ tensor<fp16, [32, 4, 1, 96]> var_460_cast_fp16 = tile(reps = var_460_reps_0, x = var_458_cast_fp16)[name = tensor<string, []>("op_460_cast_fp16")];
309
+ tensor<int32, [4]> var_468 = const()[name = tensor<string, []>("op_468"), val = tensor<int32, [4]>([32, 4, 96, 32])];
310
+ tensor<fp16, [128, 96, 32]> q_15_cast_fp16 = transpose(perm = q_15_perm_0, x = var_440_cast_fp16)[name = tensor<string, []>("transpose_8")];
311
+ tensor<fp16, [32, 4, 96, 32]> q_cast_fp16 = reshape(shape = var_468, x = q_15_cast_fp16)[name = tensor<string, []>("q_cast_fp16")];
312
+ tensor<int32, [4]> var_470 = const()[name = tensor<string, []>("op_470"), val = tensor<int32, [4]>([32, 4, 96, 32])];
313
+ tensor<fp16, [128, 96, 32]> k_15_cast_fp16 = transpose(perm = k_15_perm_0, x = var_447_cast_fp16)[name = tensor<string, []>("transpose_7")];
314
+ tensor<fp16, [32, 4, 96, 32]> k_cast_fp16 = reshape(shape = var_470, x = k_15_cast_fp16)[name = tensor<string, []>("k_cast_fp16")];
315
+ tensor<int32, [4]> var_472 = const()[name = tensor<string, []>("op_472"), val = tensor<int32, [4]>([32, 4, 96, 32])];
316
+ tensor<fp16, [128, 96, 32]> v_15_cast_fp16 = transpose(perm = v_15_perm_0, x = var_454_cast_fp16)[name = tensor<string, []>("transpose_6")];
317
+ tensor<fp16, [32, 4, 96, 32]> v_cast_fp16 = reshape(shape = var_472, x = v_15_cast_fp16)[name = tensor<string, []>("v_cast_fp16")];
318
+ tensor<fp16, []> mul_5_y_0_to_fp16 = const()[name = tensor<string, []>("mul_5_y_0_to_fp16"), val = tensor<fp16, []>(0x1.6ap-3)];
319
+ tensor<fp16, [32, 4, 96, 32]> mul_5_cast_fp16 = mul(x = q_cast_fp16, y = mul_5_y_0_to_fp16)[name = tensor<string, []>("mul_5_cast_fp16")];
320
+ tensor<bool, []> matmul_2_transpose_y_0 = const()[name = tensor<string, []>("matmul_2_transpose_y_0"), val = tensor<bool, []>(true)];
321
+ tensor<bool, []> matmul_2_transpose_x_0 = const()[name = tensor<string, []>("matmul_2_transpose_x_0"), val = tensor<bool, []>(false)];
322
+ tensor<fp16, [32, 4, 96, 96]> matmul_2_cast_fp16 = matmul(transpose_x = matmul_2_transpose_x_0, transpose_y = matmul_2_transpose_y_0, x = mul_5_cast_fp16, y = k_cast_fp16)[name = tensor<string, []>("matmul_2_cast_fp16")];
323
+ tensor<fp16, [32, 4, 96, 96]> add_2_cast_fp16 = add(x = matmul_2_cast_fp16, y = var_460_cast_fp16)[name = tensor<string, []>("add_2_cast_fp16")];
324
+ tensor<int32, []> softmax_2_axis_0 = const()[name = tensor<string, []>("softmax_2_axis_0"), val = tensor<int32, []>(-1)];
325
+ tensor<fp16, [32, 4, 96, 96]> softmax_2_cast_fp16 = softmax(axis = softmax_2_axis_0, x = add_2_cast_fp16)[name = tensor<string, []>("softmax_2_cast_fp16")];
326
+ tensor<bool, []> attn_output_17_transpose_x_0 = const()[name = tensor<string, []>("attn_output_17_transpose_x_0"), val = tensor<bool, []>(false)];
327
+ tensor<bool, []> attn_output_17_transpose_y_0 = const()[name = tensor<string, []>("attn_output_17_transpose_y_0"), val = tensor<bool, []>(false)];
328
+ tensor<fp16, [32, 4, 96, 32]> attn_output_17_cast_fp16 = matmul(transpose_x = attn_output_17_transpose_x_0, transpose_y = attn_output_17_transpose_y_0, x = softmax_2_cast_fp16, y = v_cast_fp16)[name = tensor<string, []>("attn_output_17_cast_fp16")];
329
+ tensor<int32, [4]> var_475 = const()[name = tensor<string, []>("op_475"), val = tensor<int32, [4]>([2, 0, 1, 3])];
330
+ tensor<int32, [2]> var_480 = const()[name = tensor<string, []>("op_480"), val = tensor<int32, [2]>([3072, 128])];
331
+ tensor<fp16, [96, 32, 4, 32]> var_476_cast_fp16 = transpose(perm = var_475, x = attn_output_17_cast_fp16)[name = tensor<string, []>("transpose_5")];
332
+ tensor<fp16, [3072, 128]> attn_output_19_cast_fp16 = reshape(shape = var_480, x = var_476_cast_fp16)[name = tensor<string, []>("attn_output_19_cast_fp16")];
333
+ tensor<fp16, [128, 128]> model_option_encoder_layers_0_self_attn_out_proj_weight_to_fp16 = const()[name = tensor<string, []>("model_option_encoder_layers_0_self_attn_out_proj_weight_to_fp16"), val = tensor<fp16, [128, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1049152)))];
334
+ tensor<fp16, [128]> model_option_encoder_layers_0_self_attn_out_proj_bias_to_fp16 = const()[name = tensor<string, []>("model_option_encoder_layers_0_self_attn_out_proj_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1081984)))];
335
+ tensor<fp16, [3072, 128]> linear_9_cast_fp16 = linear(bias = model_option_encoder_layers_0_self_attn_out_proj_bias_to_fp16, weight = model_option_encoder_layers_0_self_attn_out_proj_weight_to_fp16, x = attn_output_19_cast_fp16)[name = tensor<string, []>("linear_9_cast_fp16")];
336
+ tensor<int32, [3]> var_484 = const()[name = tensor<string, []>("op_484"), val = tensor<int32, [3]>([96, 32, 128])];
337
+ tensor<fp16, [96, 32, 128]> attn_output_cast_fp16 = reshape(shape = var_484, x = linear_9_cast_fp16)[name = tensor<string, []>("attn_output_cast_fp16")];
338
+ tensor<int32, [3]> input_35_perm_0 = const()[name = tensor<string, []>("input_35_perm_0"), val = tensor<int32, [3]>([1, 0, 2])];
339
+ tensor<fp16, [32, 96, 128]> input_35_cast_fp16 = transpose(perm = input_35_perm_0, x = attn_output_cast_fp16)[name = tensor<string, []>("transpose_4")];
340
+ tensor<fp16, [32, 96, 128]> input_37_cast_fp16 = add(x = src_cast_fp16, y = input_35_cast_fp16)[name = tensor<string, []>("input_37_cast_fp16")];
341
+ tensor<int32, [1]> input_39_axes_0 = const()[name = tensor<string, []>("input_39_axes_0"), val = tensor<int32, [1]>([-1])];
342
+ tensor<fp16, [128]> model_option_encoder_layers_0_norm2_weight_to_fp16 = const()[name = tensor<string, []>("model_option_encoder_layers_0_norm2_weight_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1082304)))];
343
+ tensor<fp16, [128]> model_option_encoder_layers_0_norm2_bias_to_fp16 = const()[name = tensor<string, []>("model_option_encoder_layers_0_norm2_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1082624)))];
344
+ tensor<fp16, [32, 96, 128]> input_39_cast_fp16 = layer_norm(axes = input_39_axes_0, beta = model_option_encoder_layers_0_norm2_bias_to_fp16, epsilon = var_375_to_fp16, gamma = model_option_encoder_layers_0_norm2_weight_to_fp16, x = input_37_cast_fp16)[name = tensor<string, []>("input_39_cast_fp16")];
345
+ tensor<fp16, [512, 128]> model_option_encoder_layers_0_linear1_weight_to_fp16 = const()[name = tensor<string, []>("model_option_encoder_layers_0_linear1_weight_to_fp16"), val = tensor<fp16, [512, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1082944)))];
346
+ tensor<fp16, [512]> model_option_encoder_layers_0_linear1_bias_to_fp16 = const()[name = tensor<string, []>("model_option_encoder_layers_0_linear1_bias_to_fp16"), val = tensor<fp16, [512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1214080)))];
347
+ tensor<fp16, [32, 96, 512]> linear_10_cast_fp16 = linear(bias = model_option_encoder_layers_0_linear1_bias_to_fp16, weight = model_option_encoder_layers_0_linear1_weight_to_fp16, x = input_39_cast_fp16)[name = tensor<string, []>("linear_10_cast_fp16")];
348
+ tensor<fp16, [32, 96, 512]> input_43_cast_fp16 = relu(x = linear_10_cast_fp16)[name = tensor<string, []>("input_43_cast_fp16")];
349
+ tensor<fp16, [128, 512]> model_option_encoder_layers_0_linear2_weight_to_fp16 = const()[name = tensor<string, []>("model_option_encoder_layers_0_linear2_weight_to_fp16"), val = tensor<fp16, [128, 512]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1215168)))];
350
+ tensor<fp16, [128]> model_option_encoder_layers_0_linear2_bias_to_fp16 = const()[name = tensor<string, []>("model_option_encoder_layers_0_linear2_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1346304)))];
351
+ tensor<fp16, [32, 96, 128]> linear_11_cast_fp16 = linear(bias = model_option_encoder_layers_0_linear2_bias_to_fp16, weight = model_option_encoder_layers_0_linear2_weight_to_fp16, x = input_43_cast_fp16)[name = tensor<string, []>("linear_11_cast_fp16")];
352
+ tensor<fp16, [32, 96, 128]> hidden_cast_fp16 = add(x = input_37_cast_fp16, y = linear_11_cast_fp16)[name = tensor<string, []>("hidden_cast_fp16")];
353
+ tensor<int32, [1]> var_504_axes_0 = const()[name = tensor<string, []>("op_504_axes_0"), val = tensor<int32, [1]>([-1])];
354
+ tensor<bool, [32, 96, 1]> var_504 = expand_dims(axes = var_504_axes_0, x = flat_mask)[name = tensor<string, []>("op_504")];
355
+ tensor<string, []> weights_to_fp16_dtype_0 = const()[name = tensor<string, []>("weights_to_fp16_dtype_0"), val = tensor<string, []>("fp16")];
356
+ tensor<fp16, [32, 96, 1]> var_504_to_fp16 = cast(dtype = weights_to_fp16_dtype_0, x = var_504)[name = tensor<string, []>("cast_58")];
357
+ tensor<fp16, [32, 96, 128]> var_510_cast_fp16 = mul(x = hidden_cast_fp16, y = var_504_to_fp16)[name = tensor<string, []>("op_510_cast_fp16")];
358
+ tensor<int32, [1]> var_515_axes_0 = const()[name = tensor<string, []>("op_515_axes_0"), val = tensor<int32, [1]>([1])];
359
+ tensor<bool, []> var_515_keep_dims_0 = const()[name = tensor<string, []>("op_515_keep_dims_0"), val = tensor<bool, []>(false)];
360
+ tensor<fp16, [32, 128]> var_515_cast_fp16 = reduce_sum(axes = var_515_axes_0, keep_dims = var_515_keep_dims_0, x = var_510_cast_fp16)[name = tensor<string, []>("op_515_cast_fp16")];
361
+ tensor<int32, [1]> var_520_axes_0 = const()[name = tensor<string, []>("op_520_axes_0"), val = tensor<int32, [1]>([1])];
362
+ tensor<bool, []> var_520_keep_dims_0 = const()[name = tensor<string, []>("op_520_keep_dims_0"), val = tensor<bool, []>(false)];
363
+ tensor<fp16, [32, 1]> var_520_cast_fp16 = reduce_sum(axes = var_520_axes_0, keep_dims = var_520_keep_dims_0, x = var_504_to_fp16)[name = tensor<string, []>("op_520_cast_fp16")];
364
+ tensor<fp16, []> var_521_to_fp16 = const()[name = tensor<string, []>("op_521_to_fp16"), val = tensor<fp16, []>(0x1p+0)];
365
+ tensor<fp16, [32, 1]> var_522_cast_fp16 = maximum(x = var_520_cast_fp16, y = var_521_to_fp16)[name = tensor<string, []>("op_522_cast_fp16")];
366
+ tensor<fp16, [32, 128]> pooled_cast_fp16 = real_div(x = var_515_cast_fp16, y = var_522_cast_fp16)[name = tensor<string, []>("pooled_cast_fp16")];
367
+ tensor<int32, [3]> var_525 = const()[name = tensor<string, []>("op_525"), val = tensor<int32, [3]>([1, 32, -1])];
368
+ tensor<fp16, [1, 32, 128]> options_cast_fp16 = reshape(shape = var_525, x = pooled_cast_fp16)[name = tensor<string, []>("options_cast_fp16")];
369
+ tensor<int32, []> var_528 = const()[name = tensor<string, []>("op_528"), val = tensor<int32, []>(-1)];
370
+ tensor<int32, [1]> input_axes_0 = const()[name = tensor<string, []>("input_axes_0"), val = tensor<int32, [1]>([-1])];
371
+ tensor<fp16, [128]> model_head_context_norm_weight_to_fp16 = const()[name = tensor<string, []>("model_head_context_norm_weight_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1346624)))];
372
+ tensor<fp16, [128]> model_head_context_norm_bias_to_fp16 = const()[name = tensor<string, []>("model_head_context_norm_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1346944)))];
373
+ tensor<fp16, []> var_536_to_fp16 = const()[name = tensor<string, []>("op_536_to_fp16"), val = tensor<fp16, []>(0x1.5p-17)];
374
+ tensor<fp16, [1, 224, 128]> input_cast_fp16 = layer_norm(axes = input_axes_0, beta = model_head_context_norm_bias_to_fp16, epsilon = var_536_to_fp16, gamma = model_head_context_norm_weight_to_fp16, x = context_cast_fp16)[name = tensor<string, []>("input_cast_fp16")];
375
+ tensor<int32, [1]> input_53_axes_0 = const()[name = tensor<string, []>("input_53_axes_0"), val = tensor<int32, [1]>([-1])];
376
+ tensor<fp16, [128]> model_head_option_norm_weight_to_fp16 = const()[name = tensor<string, []>("model_head_option_norm_weight_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1347264)))];
377
+ tensor<fp16, [128]> model_head_option_norm_bias_to_fp16 = const()[name = tensor<string, []>("model_head_option_norm_bias_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1347584)))];
378
+ tensor<fp16, [1, 32, 128]> input_53_cast_fp16 = layer_norm(axes = input_53_axes_0, beta = model_head_option_norm_bias_to_fp16, epsilon = var_536_to_fp16, gamma = model_head_option_norm_weight_to_fp16, x = options_cast_fp16)[name = tensor<string, []>("input_53_cast_fp16")];
379
+ tensor<fp16, [128, 128]> model_head_query_weight_to_fp16 = const()[name = tensor<string, []>("model_head_query_weight_to_fp16"), val = tensor<fp16, [128, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1347904)))];
380
+ tensor<fp16, [128]> linear_12_bias_0_to_fp16 = const()[name = tensor<string, []>("linear_12_bias_0_to_fp16"), val = tensor<fp16, [128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1380736)))];
381
+ tensor<fp16, [1, 32, 128]> linear_12_cast_fp16 = linear(bias = linear_12_bias_0_to_fp16, weight = model_head_query_weight_to_fp16, x = input_53_cast_fp16)[name = tensor<string, []>("linear_12_cast_fp16")];
382
+ tensor<fp16, [128, 128]> model_head_key_weight_to_fp16 = const()[name = tensor<string, []>("model_head_key_weight_to_fp16"), val = tensor<fp16, [128, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1381056)))];
383
+ tensor<fp16, [1, 224, 128]> linear_13_cast_fp16 = linear(bias = linear_12_bias_0_to_fp16, weight = model_head_key_weight_to_fp16, x = input_cast_fp16)[name = tensor<string, []>("linear_13_cast_fp16")];
384
+ tensor<fp16, [128, 128]> model_head_value_weight_to_fp16 = const()[name = tensor<string, []>("model_head_value_weight_to_fp16"), val = tensor<fp16, [128, 128]>(BLOBFILE(path = tensor<string, []>("@model_path/weights/weight.bin"), offset = tensor<uint64, []>(1413888)))];
385
+ tensor<fp16, [1, 224, 128]> linear_14_cast_fp16 = linear(bias = linear_12_bias_0_to_fp16, weight = model_head_value_weight_to_fp16, x = input_cast_fp16)[name = tensor<string, []>("linear_14_cast_fp16")];
386
+ tensor<bool, []> matmul_3_transpose_x_1 = const()[name = tensor<string, []>("matmul_3_transpose_x_1"), val = tensor<bool, []>(false)];
387
+ tensor<bool, []> matmul_3_transpose_y_1 = const()[name = tensor<string, []>("matmul_3_transpose_y_1"), val = tensor<bool, []>(true)];
388
+ tensor<fp16, [1, 32, 224]> matmul_3_cast_fp16 = matmul(transpose_x = matmul_3_transpose_x_1, transpose_y = matmul_3_transpose_y_1, x = linear_12_cast_fp16, y = linear_13_cast_fp16)[name = tensor<string, []>("matmul_3_cast_fp16")];
389
+ tensor<fp16, []> _inversed_scores_1_y_0_to_fp16 = const()[name = tensor<string, []>("_inversed_scores_1_y_0_to_fp16"), val = tensor<fp16, []>(0x1.6ap-4)];
390
+ tensor<fp16, [1, 32, 224]> _inversed_scores_1_cast_fp16 = mul(x = matmul_3_cast_fp16, y = _inversed_scores_1_y_0_to_fp16)[name = tensor<string, []>("_inversed_scores_1_cast_fp16")];
391
+ tensor<int32, [1]> var_567_axes_0 = const()[name = tensor<string, []>("op_567_axes_0"), val = tensor<int32, [1]>([1])];
392
+ tensor<bool, [1, 1, 224]> var_567 = expand_dims(axes = var_567_axes_0, x = context_mask)[name = tensor<string, []>("op_567")];
393
+ tensor<bool, [1, 1, 224]> var_569 = logical_not(x = var_567)[name = tensor<string, []>("op_569")];
394
+ tensor<fp16, []> var_529_to_fp16 = const()[name = tensor<string, []>("op_529_to_fp16"), val = tensor<fp16, []>(-inf)];
395
+ tensor<fp16, [1, 32, 224]> scores_cast_fp16 = select(a = var_529_to_fp16, b = _inversed_scores_1_cast_fp16, cond = var_569)[name = tensor<string, []>("scores_cast_fp16")];
396
+ tensor<fp16, [1, 32, 224]> var_571_cast_fp16 = softmax(axis = var_528, x = scores_cast_fp16)[name = tensor<string, []>("op_571_cast_fp16")];
397
+ tensor<bool, []> matmul_4_transpose_x_0 = const()[name = tensor<string, []>("matmul_4_transpose_x_0"), val = tensor<bool, []>(false)];
398
+ tensor<bool, []> matmul_4_transpose_y_0 = const()[name = tensor<string, []>("matmul_4_transpose_y_0"), val = tensor<bool, []>(false)];
399
+ tensor<fp16, [1, 32, 128]> matmul_4_cast_fp16 = matmul(transpose_x = matmul_4_transpose_x_0, transpose_y = matmul_4_transpose_y_0, x = var_571_cast_fp16, y = linear_14_cast_fp16)[name = tensor<string, []>("matmul_4_cast_fp16")];
400
+ tensor<fp16, [1, 32, 128]> var_574_cast_fp16 = mul(x = linear_12_cast_fp16, y = matmul_4_cast_fp16)[name = tensor<string, []>("op_574_cast_fp16")];
401
+ tensor<int32, [1]> var_576_axes_0 = const()[name = tensor<string, []>("op_576_axes_0"), val = tensor<int32, [1]>([-1])];
402
+ tensor<bool, []> var_576_keep_dims_0 = const()[name = tensor<string, []>("op_576_keep_dims_0"), val = tensor<bool, []>(false)];
403
+ tensor<fp16, [1, 32]> var_576_cast_fp16 = reduce_sum(axes = var_576_axes_0, keep_dims = var_576_keep_dims_0, x = var_574_cast_fp16)[name = tensor<string, []>("op_576_cast_fp16")];
404
+ tensor<fp16, []> _inversed_logits_1_y_0_to_fp16 = const()[name = tensor<string, []>("_inversed_logits_1_y_0_to_fp16"), val = tensor<fp16, []>(0x1.6ap-4)];
405
+ tensor<fp16, [1, 32]> _inversed_logits_1_cast_fp16 = mul(x = var_576_cast_fp16, y = _inversed_logits_1_y_0_to_fp16)[name = tensor<string, []>("_inversed_logits_1_cast_fp16")];
406
+ tensor<bool, [1, 32]> var_579 = logical_not(x = option_mask_1)[name = tensor<string, []>("op_579")];
407
+ tensor<fp16, [1, 32]> logits_3_cast_fp16 = select(a = var_529_to_fp16, b = _inversed_logits_1_cast_fp16, cond = var_579)[name = tensor<string, []>("logits_3_cast_fp16")];
408
+ tensor<fp16, []> var_587_value_0_to_fp16 = const()[name = tensor<string, []>("op_587_value_0_to_fp16"), val = tensor<fp16, []>(-0x1.388p+13)];
409
+ tensor<fp16, [1, 32]> var_587_cast_fp16 = fill_like(ref_tensor = logits_3_cast_fp16, value = var_587_value_0_to_fp16)[name = tensor<string, []>("op_587_cast_fp16")];
410
+ tensor<fp16, [1, 32]> logits_cast_fp16 = select(a = logits_3_cast_fp16, b = var_587_cast_fp16, cond = option_mask_1)[name = tensor<string, []>("logits_cast_fp16")];
411
+ tensor<string, []> logits_cast_fp16_to_fp32_dtype_0 = const()[name = tensor<string, []>("logits_cast_fp16_to_fp32_dtype_0"), val = tensor<string, []>("fp32")];
412
+ tensor<int32, []> var_589 = const()[name = tensor<string, []>("op_589"), val = tensor<int32, []>(-1)];
413
+ tensor<fp16, [1, 32]> var_591_cast_fp16 = softmax(axis = var_589, x = logits_cast_fp16)[name = tensor<string, []>("op_591_cast_fp16")];
414
+ tensor<string, []> var_591_cast_fp16_to_fp32_dtype_0 = const()[name = tensor<string, []>("op_591_cast_fp16_to_fp32_dtype_0"), val = tensor<string, []>("fp32")];
415
+ tensor<fp32, [1, 32]> probabilities = cast(dtype = var_591_cast_fp16_to_fp32_dtype_0, x = var_591_cast_fp16)[name = tensor<string, []>("cast_56")];
416
+ tensor<fp32, [1, 32]> logits = cast(dtype = logits_cast_fp16_to_fp32_dtype_0, x = logits_cast_fp16)[name = tensor<string, []>("cast_57")];
417
+ } -> (logits, probabilities);
418
+ }
cua_s1_forms_fp16_options32.mlmodelc/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895
3
+ size 1446720
cua_s1_forms_fp16_options32.mlpackage/Data/com.apple.CoreML/model.mlmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:70485fc18cbb21785df833cbddddc0b5b59acb00d22394b76e55307e2c135dd0
3
+ size 63826
cua_s1_forms_fp16_options32.mlpackage/Data/com.apple.CoreML/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895
3
+ size 1446720
cua_s1_forms_fp16_options32.mlpackage/Manifest.json ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "fileFormatVersion": "1.0.0",
3
+ "itemInfoEntries": {
4
+ "A4ADBA80-1EEA-488D-A01F-25F39ECC9001": {
5
+ "author": "com.apple.CoreML",
6
+ "description": "CoreML Model Weights",
7
+ "name": "weights",
8
+ "path": "com.apple.CoreML/weights"
9
+ },
10
+ "B61C4C42-FF5A-4E18-BC04-DD11C9CE38DE": {
11
+ "author": "com.apple.CoreML",
12
+ "description": "CoreML Model Specification",
13
+ "name": "model.mlmodel",
14
+ "path": "com.apple.CoreML/model.mlmodel"
15
+ }
16
+ },
17
+ "rootModelIdentifier": "B61C4C42-FF5A-4E18-BC04-DD11C9CE38DE"
18
+ }
demo/browser-demo.gif ADDED

Git LFS Details

  • SHA256: 6cf597927e7bcb5617719453eecb86c7c06ab9a91fcaf46de272b42abe12d4fc
  • Pointer size: 132 Bytes
  • Size of remote file: 1.8 MB
demo/browser-demo.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5fbb3925c4824d15e6c24c504db91a96d318f4e751a20a070fdedf64e587d1a0
3
+ size 1108747
demo/browser-preview.png ADDED

Git LFS Details

  • SHA256: e624ec2a797d0b3b050e66055d6a9fb09a1f6a9ace67b8eb071ce5f2f9e282b1
  • Pointer size: 132 Bytes
  • Size of remote file: 1.36 MB
int4-source-fp16/conversion.json ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "cua_s1_forms_fp16_options32.mlpackage",
3
+ "precision": "float16",
4
+ "minimum_target": "iOS18/macOS15",
5
+ "limits": {
6
+ "context_bytes": 224,
7
+ "option_bytes": 96,
8
+ "max_options": 32
9
+ },
10
+ "model_config": {
11
+ "context_tokens": 224,
12
+ "encoder": "tinyx",
13
+ "heads": 4,
14
+ "hf_model": "Qwen/Qwen2.5-0.5B",
15
+ "layers": 2,
16
+ "option_tokens": 96,
17
+ "rank": 128,
18
+ "width": 128
19
+ },
20
+ "parameters": 706048,
21
+ "assets_lock_sha256": "8e65ad70af6bb814b571cdcfe828ba4bc339147da2d2211cbeac416163ef18ba",
22
+ "model_revision": "f54adbf447f4ca6ec259f529ee3f2e3e09f8cc71",
23
+ "source_revision": "83f142c4290a0f7d9ed545ae8532858c6e4f8145",
24
+ "trace_row": 0,
25
+ "trace_dataset_revision": "8273f34778b99ac2e12d9f6e7d57dad99ae20845",
26
+ "export_seconds": 0.5374167499830946,
27
+ "python": "3.11.11",
28
+ "torch": "2.7.0",
29
+ "coremltools": "9.0",
30
+ "package_files": {
31
+ "Data/com.apple.CoreML/model.mlmodel": "6ab2df320df7081480b76876df0f4bfd2c841592d93f354c568ba504f7269627",
32
+ "Data/com.apple.CoreML/weights/weight.bin": "4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895",
33
+ "Manifest.json": "e5b1c7dc66b2014b3985c180a75548a709788c6e314d9d2ae14e4e6d441c3c68"
34
+ },
35
+ "target_upgrade": {
36
+ "source_conversion_sha256": "ac94239751ceb7e19602eb7276940ff53446b1776d4900405af9be0382fe4a94",
37
+ "source_package_files": {
38
+ "Data/com.apple.CoreML/model.mlmodel": "70485fc18cbb21785df833cbddddc0b5b59acb00d22394b76e55307e2c135dd0",
39
+ "Data/com.apple.CoreML/weights/weight.bin": "4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895",
40
+ "Manifest.json": "2bc0f5f62337b27fb6b0ecde248f1e3dc269e1ba4b65516aaeede2a60e293dcc"
41
+ },
42
+ "method": "Load original MIL at specification 9; empty pass pipeline; retain decomposed attention",
43
+ "operation_counts": {
44
+ "add": 13,
45
+ "cast": 11,
46
+ "concat": 2,
47
+ "const": 239,
48
+ "equal": 2,
49
+ "expand_dims": 5,
50
+ "fill_like": 3,
51
+ "gather": 2,
52
+ "greater_equal": 2,
53
+ "layer_norm": 8,
54
+ "linear": 15,
55
+ "logical_not": 2,
56
+ "matmul": 8,
57
+ "maximum": 1,
58
+ "mul": 7,
59
+ "not_equal": 3,
60
+ "real_div": 1,
61
+ "reduce_sum": 3,
62
+ "relu": 3,
63
+ "reshape": 31,
64
+ "select": 7,
65
+ "slice_by_index": 13,
66
+ "softmax": 5,
67
+ "squeeze": 3,
68
+ "tile": 2,
69
+ "transpose": 21
70
+ },
71
+ "script_sha256": "33db3295450428d90c1de5a804ab47bf3507c686fbbdef67cd276ce116758b5f"
72
+ }
73
+ }
int4-source-fp16/cua_s1_forms_fp16_options32.mlpackage/Data/com.apple.CoreML/model.mlmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6ab2df320df7081480b76876df0f4bfd2c841592d93f354c568ba504f7269627
3
+ size 63743
int4-source-fp16/cua_s1_forms_fp16_options32.mlpackage/Data/com.apple.CoreML/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895
3
+ size 1446720
int4-source-fp16/cua_s1_forms_fp16_options32.mlpackage/Manifest.json ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "fileFormatVersion": "1.0.0",
3
+ "itemInfoEntries": {
4
+ "15C1AFE1-37B2-4975-949D-B817E3C00088": {
5
+ "author": "com.apple.CoreML",
6
+ "description": "CoreML Model Specification",
7
+ "name": "model.mlmodel",
8
+ "path": "com.apple.CoreML/model.mlmodel"
9
+ },
10
+ "B997D799-579D-437C-9F80-DE24FF3EFB11": {
11
+ "author": "com.apple.CoreML",
12
+ "description": "CoreML Model Weights",
13
+ "name": "weights",
14
+ "path": "com.apple.CoreML/weights"
15
+ }
16
+ },
17
+ "rootModelIdentifier": "15C1AFE1-37B2-4975-949D-B817E3C00088"
18
+ }
int4-weights/conversion.json ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "cua_s1_forms_int4_options32.mlpackage",
3
+ "precision": "int4_weights_float16_compute",
4
+ "minimum_target": "iOS18/macOS15",
5
+ "limits": {
6
+ "context_bytes": 224,
7
+ "option_bytes": 96,
8
+ "max_options": 32
9
+ },
10
+ "model_config": {
11
+ "context_tokens": 224,
12
+ "encoder": "tinyx",
13
+ "heads": 4,
14
+ "hf_model": "Qwen/Qwen2.5-0.5B",
15
+ "layers": 2,
16
+ "option_tokens": 96,
17
+ "rank": 128,
18
+ "width": 128
19
+ },
20
+ "parameters": 706048,
21
+ "assets_lock_sha256": "8e65ad70af6bb814b571cdcfe828ba4bc339147da2d2211cbeac416163ef18ba",
22
+ "model_revision": "f54adbf447f4ca6ec259f529ee3f2e3e09f8cc71",
23
+ "source_revision": "83f142c4290a0f7d9ed545ae8532858c6e4f8145",
24
+ "trace_row": 0,
25
+ "trace_dataset_revision": "8273f34778b99ac2e12d9f6e7d57dad99ae20845",
26
+ "export_seconds": 0.5374167499830946,
27
+ "python": "3.11.11",
28
+ "torch": "2.7.0",
29
+ "coremltools": "9.0",
30
+ "package_files": {
31
+ "Data/com.apple.CoreML/model.mlmodel": "cadad6bfa6875383a7ee3de68d0d22871148aa21cf117e7fe44c2c971287c4e5",
32
+ "Data/com.apple.CoreML/weights/weight.bin": "0f766fcb9dbd612ed4f6c7a40117a5993a4789b3ae94afba0df37193c831f63c",
33
+ "Manifest.json": "fb91c8b5ec3168111567de663bb3140d2790c6e7c48f32e0df3f5135af0673af"
34
+ },
35
+ "target_upgrade": {
36
+ "source_conversion_sha256": "ac94239751ceb7e19602eb7276940ff53446b1776d4900405af9be0382fe4a94",
37
+ "source_package_files": {
38
+ "Data/com.apple.CoreML/model.mlmodel": "70485fc18cbb21785df833cbddddc0b5b59acb00d22394b76e55307e2c135dd0",
39
+ "Data/com.apple.CoreML/weights/weight.bin": "4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895",
40
+ "Manifest.json": "2bc0f5f62337b27fb6b0ecde248f1e3dc269e1ba4b65516aaeede2a60e293dcc"
41
+ },
42
+ "method": "Load original MIL at specification 9; empty pass pipeline; retain decomposed attention",
43
+ "operation_counts": {
44
+ "add": 13,
45
+ "cast": 11,
46
+ "concat": 2,
47
+ "const": 239,
48
+ "equal": 2,
49
+ "expand_dims": 5,
50
+ "fill_like": 3,
51
+ "gather": 2,
52
+ "greater_equal": 2,
53
+ "layer_norm": 8,
54
+ "linear": 15,
55
+ "logical_not": 2,
56
+ "matmul": 8,
57
+ "maximum": 1,
58
+ "mul": 7,
59
+ "not_equal": 3,
60
+ "real_div": 1,
61
+ "reduce_sum": 3,
62
+ "relu": 3,
63
+ "reshape": 31,
64
+ "select": 7,
65
+ "slice_by_index": 13,
66
+ "softmax": 5,
67
+ "squeeze": 3,
68
+ "tile": 2,
69
+ "transpose": 21
70
+ },
71
+ "script_sha256": "33db3295450428d90c1de5a804ab47bf3507c686fbbdef67cd276ce116758b5f"
72
+ },
73
+ "quantization": {
74
+ "name": "int4-weights",
75
+ "settings": {
76
+ "mode": "linear_symmetric",
77
+ "dtype": "int4",
78
+ "granularity": "per_channel",
79
+ "weight_threshold": 2048
80
+ },
81
+ "activations": "float16",
82
+ "calibration": "None; weight-only, data-free quantization",
83
+ "source_conversion_sha256": "01105dc8bef7a30fc3430e150caa2a143dc0ba23a295b6280de3b8ff3b40af55",
84
+ "source_package_files": {
85
+ "Data/com.apple.CoreML/model.mlmodel": "6ab2df320df7081480b76876df0f4bfd2c841592d93f354c568ba504f7269627",
86
+ "Data/com.apple.CoreML/weights/weight.bin": "4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895",
87
+ "Manifest.json": "e5b1c7dc66b2014b3985c180a75548a709788c6e314d9d2ae14e4e6d441c3c68"
88
+ },
89
+ "source_package_bytes": 1511080,
90
+ "package_bytes": 451595,
91
+ "compression_seconds": 0.2996572910051327,
92
+ "packed_int4_tensors": 19,
93
+ "operation_counts": {
94
+ "add": 15,
95
+ "cast": 13,
96
+ "concat": 2,
97
+ "const": 226,
98
+ "constexpr_blockwise_shift_scale": 19,
99
+ "equal": 2,
100
+ "expand_dims": 5,
101
+ "fill_like": 3,
102
+ "gather": 2,
103
+ "greater_equal": 4,
104
+ "layer_norm": 8,
105
+ "linear": 15,
106
+ "logical_not": 2,
107
+ "matmul": 8,
108
+ "maximum": 1,
109
+ "mul": 7,
110
+ "not_equal": 3,
111
+ "real_div": 1,
112
+ "reduce_sum": 3,
113
+ "relu": 3,
114
+ "reshape": 31,
115
+ "select": 9,
116
+ "slice_by_index": 13,
117
+ "softmax": 5,
118
+ "squeeze": 3,
119
+ "tile": 2,
120
+ "transpose": 21
121
+ },
122
+ "script_sha256": "a91636e539d8934253b5e7628ca706346fbee538fa1aa9e3eaf794f440d49dcc"
123
+ }
124
+ }
int4-weights/cua_s1_forms_int4_options32.mlpackage/Data/com.apple.CoreML/model.mlmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cadad6bfa6875383a7ee3de68d0d22871148aa21cf117e7fe44c2c971287c4e5
3
+ size 67938
int4-weights/cua_s1_forms_int4_options32.mlpackage/Data/com.apple.CoreML/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0f766fcb9dbd612ed4f6c7a40117a5993a4789b3ae94afba0df37193c831f63c
3
+ size 383040
int4-weights/cua_s1_forms_int4_options32.mlpackage/Manifest.json ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "fileFormatVersion": "1.0.0",
3
+ "itemInfoEntries": {
4
+ "D6D01355-3106-40A1-999B-B56148C73691": {
5
+ "author": "com.apple.CoreML",
6
+ "description": "CoreML Model Weights",
7
+ "name": "weights",
8
+ "path": "com.apple.CoreML/weights"
9
+ },
10
+ "F0E58006-D8D0-4891-AD75-BB9E48868A99": {
11
+ "author": "com.apple.CoreML",
12
+ "description": "CoreML Model Specification",
13
+ "name": "model.mlmodel",
14
+ "path": "com.apple.CoreML/model.mlmodel"
15
+ }
16
+ },
17
+ "rootModelIdentifier": "F0E58006-D8D0-4891-AD75-BB9E48868A99"
18
+ }
int8-weights/conversion.json ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "cua_s1_forms_int8_options32.mlpackage",
3
+ "precision": "int8_weights_float16_compute",
4
+ "minimum_target": "iOS17/macOS14",
5
+ "limits": {
6
+ "context_bytes": 224,
7
+ "option_bytes": 96,
8
+ "max_options": 32
9
+ },
10
+ "model_config": {
11
+ "context_tokens": 224,
12
+ "encoder": "tinyx",
13
+ "heads": 4,
14
+ "hf_model": "Qwen/Qwen2.5-0.5B",
15
+ "layers": 2,
16
+ "option_tokens": 96,
17
+ "rank": 128,
18
+ "width": 128
19
+ },
20
+ "parameters": 706048,
21
+ "assets_lock_sha256": "8e65ad70af6bb814b571cdcfe828ba4bc339147da2d2211cbeac416163ef18ba",
22
+ "model_revision": "f54adbf447f4ca6ec259f529ee3f2e3e09f8cc71",
23
+ "source_revision": "83f142c4290a0f7d9ed545ae8532858c6e4f8145",
24
+ "trace_row": 0,
25
+ "trace_dataset_revision": "8273f34778b99ac2e12d9f6e7d57dad99ae20845",
26
+ "export_seconds": 0.5374167499830946,
27
+ "python": "3.11.11",
28
+ "torch": "2.7.0",
29
+ "coremltools": "9.0",
30
+ "package_files": {
31
+ "Data/com.apple.CoreML/model.mlmodel": "a7d9747308b8b754a46f3e70c8465b821f90e12376b3a71dc909f7364ae73c3a",
32
+ "Data/com.apple.CoreML/weights/weight.bin": "f600c4434b7f7e3e789de8f1a4aa54a55f84df51fa9b788e18f5c97b68e4840f",
33
+ "Manifest.json": "2206ec01787a85c12f1376fa5a832c5ac912f06172c6ff06b26ae8415470d246"
34
+ },
35
+ "quantization": {
36
+ "name": "int8-weights",
37
+ "settings": {
38
+ "mode": "linear_symmetric",
39
+ "dtype": "int8",
40
+ "granularity": "per_channel",
41
+ "weight_threshold": 2048
42
+ },
43
+ "activations": "float16",
44
+ "calibration": "None; weight-only, data-free quantization",
45
+ "source_conversion_sha256": "ac94239751ceb7e19602eb7276940ff53446b1776d4900405af9be0382fe4a94",
46
+ "source_package_files": {
47
+ "Data/com.apple.CoreML/model.mlmodel": "70485fc18cbb21785df833cbddddc0b5b59acb00d22394b76e55307e2c135dd0",
48
+ "Data/com.apple.CoreML/weights/weight.bin": "4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895",
49
+ "Manifest.json": "2bc0f5f62337b27fb6b0ecde248f1e3dc269e1ba4b65516aaeede2a60e293dcc"
50
+ },
51
+ "source_package_bytes": 1511163,
52
+ "package_bytes": 813422,
53
+ "compression_seconds": 0.3180606249952689,
54
+ "operation_counts": {
55
+ "add": 15,
56
+ "cast": 13,
57
+ "concat": 2,
58
+ "const": 226,
59
+ "constexpr_affine_dequantize": 19,
60
+ "equal": 2,
61
+ "expand_dims": 5,
62
+ "fill_like": 3,
63
+ "gather": 2,
64
+ "greater_equal": 4,
65
+ "layer_norm": 8,
66
+ "linear": 15,
67
+ "logical_not": 2,
68
+ "matmul": 8,
69
+ "maximum": 1,
70
+ "mul": 7,
71
+ "not_equal": 3,
72
+ "real_div": 1,
73
+ "reduce_sum": 3,
74
+ "relu": 3,
75
+ "reshape": 31,
76
+ "select": 9,
77
+ "slice_by_index": 13,
78
+ "softmax": 5,
79
+ "squeeze": 3,
80
+ "tile": 2,
81
+ "transpose": 21
82
+ },
83
+ "script_sha256": "22071babfcb02ef77225203a479d9bb14b9fa35462ba38bcc4bf07d29c125a97"
84
+ }
85
+ }
int8-weights/cua_s1_forms_int8_options32.mlpackage/Data/com.apple.CoreML/model.mlmodel ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a7d9747308b8b754a46f3e70c8465b821f90e12376b3a71dc909f7364ae73c3a
3
+ size 69573
int8-weights/cua_s1_forms_int8_options32.mlpackage/Data/com.apple.CoreML/weights/weight.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f600c4434b7f7e3e789de8f1a4aa54a55f84df51fa9b788e18f5c97b68e4840f
3
+ size 743232
int8-weights/cua_s1_forms_int8_options32.mlpackage/Manifest.json ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "fileFormatVersion": "1.0.0",
3
+ "itemInfoEntries": {
4
+ "6D5496F1-54BB-4AAA-8375-1DFA1FFE6768": {
5
+ "author": "com.apple.CoreML",
6
+ "description": "CoreML Model Specification",
7
+ "name": "model.mlmodel",
8
+ "path": "com.apple.CoreML/model.mlmodel"
9
+ },
10
+ "B0C97583-069E-42B8-897B-30A05F77B14A": {
11
+ "author": "com.apple.CoreML",
12
+ "description": "CoreML Model Weights",
13
+ "name": "weights",
14
+ "path": "com.apple.CoreML/weights"
15
+ }
16
+ },
17
+ "rootModelIdentifier": "6D5496F1-54BB-4AAA-8375-1DFA1FFE6768"
18
+ }
preprocessing.py ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Host-side UTF-8 byte encoding for the fixed-shape Core ML interface."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from dataclasses import dataclass
6
+
7
+ import numpy as np
8
+
9
+
10
+ @dataclass(frozen=True)
11
+ class InputLimits:
12
+ context_bytes: int = 224
13
+ option_bytes: int = 96
14
+ max_options: int = 32
15
+
16
+ def __post_init__(self):
17
+ if self.context_bytes < 1 or self.option_bytes < 1 or self.max_options < 2:
18
+ raise ValueError("Positive byte limits and at least two option slots are required")
19
+
20
+
21
+ def byte_ids(text: str, length: int) -> np.ndarray:
22
+ """Match upstream: truncate UTF-8 bytes, offset byte values by one, zero-pad."""
23
+ data = text.encode("utf-8", errors="replace")[:length]
24
+ return np.frombuffer(data, dtype=np.uint8).astype(np.int32) + 1
25
+
26
+
27
+ def prepare_inputs(context: str, options: list[str] | tuple[str, ...], limits: InputLimits) -> dict[str, np.ndarray]:
28
+ """Encode one decision; options are never silently removed to fit the model."""
29
+ if not isinstance(context, str) or not context:
30
+ raise ValueError("context must be a nonempty string")
31
+ if not isinstance(options, (list, tuple)) or len(options) < 2:
32
+ raise ValueError("At least two options are required")
33
+ if len(options) > limits.max_options:
34
+ raise ValueError(f"{len(options)} options exceed {limits.max_options}; re-export with a larger --max-options")
35
+ if any(not isinstance(option, str) or not option for option in options):
36
+ raise ValueError("Options must be nonempty strings")
37
+ context_ids = np.zeros((1, limits.context_bytes), dtype=np.int32)
38
+ option_ids = np.zeros((1, limits.max_options, limits.option_bytes), dtype=np.int32)
39
+ option_mask = np.zeros((1, limits.max_options), dtype=np.int32)
40
+ tokens = byte_ids(context, limits.context_bytes)
41
+ context_ids[0, : len(tokens)] = tokens
42
+ for index, option in enumerate(options):
43
+ tokens = byte_ids(option, limits.option_bytes)
44
+ option_ids[0, index, : len(tokens)] = tokens
45
+ option_mask[0, : len(options)] = 1
46
+ return {"context_ids": context_ids, "option_ids": option_ids, "option_mask": option_mask}
reports/ane-comparison.json ADDED
@@ -0,0 +1,784 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "created_utc": "2026-09-19T20:07:16.396741+00:00",
3
+ "purpose": "Matched warm model-call comparison, not a power or utilization measurement",
4
+ "environment": {
5
+ "chip": "Apple M5 Pro",
6
+ "macos": "27.0",
7
+ "os_build": "26A428",
8
+ "python": "3.11.11",
9
+ "coremltools": "9.0"
10
+ },
11
+ "protocol": {
12
+ "compute_units": "CPU_AND_NE",
13
+ "rows": [
14
+ 0,
15
+ 68,
16
+ 130
17
+ ],
18
+ "schedule": [
19
+ "baseline",
20
+ "candidate",
21
+ "candidate",
22
+ "baseline"
23
+ ],
24
+ "warmup_passes_per_block": 2,
25
+ "timed_passes_per_block": 10,
26
+ "timing_scope": "Synchronous Python predict with pre-encoded inputs; validation outside timer",
27
+ "model_loading": "Both models resident in one process; loads excluded and system caches retained"
28
+ },
29
+ "dataset_revision": "8273f34778b99ac2e12d9f6e7d57dad99ae20845",
30
+ "dataset_sha256": "4f43b442e79ba2e2ce731e27e9b8e340c2b5dfcaffc92d8ff564c34f115ff1ca",
31
+ "package_files": {
32
+ "baseline": {
33
+ "Data/com.apple.CoreML/model.mlmodel": "70485fc18cbb21785df833cbddddc0b5b59acb00d22394b76e55307e2c135dd0",
34
+ "Data/com.apple.CoreML/weights/weight.bin": "4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895",
35
+ "Manifest.json": "2bc0f5f62337b27fb6b0ecde248f1e3dc269e1ba4b65516aaeede2a60e293dcc"
36
+ },
37
+ "candidate": {
38
+ "Data/com.apple.CoreML/model.mlmodel": "de18e313c3b625e35d008ed8b6b24108edc6df7bf2fae9533af03519eca11b63",
39
+ "Data/com.apple.CoreML/weights/weight.bin": "4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895",
40
+ "Manifest.json": "38f812a04eb2322080634ba788c61df362336168466ca67e5549058d346ac793"
41
+ }
42
+ },
43
+ "summary": {
44
+ "baseline": {
45
+ "count": 60,
46
+ "median_ms": 0.9150624828180298,
47
+ "p95_ms": 0.9682062489446251,
48
+ "min_ms": 0.88170898379758,
49
+ "max_ms": 1.0281660070177168
50
+ },
51
+ "candidate": {
52
+ "count": 60,
53
+ "median_ms": 0.9703329997137189,
54
+ "p95_ms": 0.9877315780613571,
55
+ "min_ms": 0.9434169915039092,
56
+ "max_ms": 1.0195420181844383
57
+ }
58
+ },
59
+ "candidate_over_baseline_median": 1.0604008118937165,
60
+ "correct_timed_predictions": 120,
61
+ "calls": [
62
+ {
63
+ "model": "baseline",
64
+ "block": 0,
65
+ "row": 0,
66
+ "milliseconds": 0.919707992579788
67
+ },
68
+ {
69
+ "model": "baseline",
70
+ "block": 0,
71
+ "row": 68,
72
+ "milliseconds": 0.9307919826824218
73
+ },
74
+ {
75
+ "model": "baseline",
76
+ "block": 0,
77
+ "row": 130,
78
+ "milliseconds": 0.9576249867677689
79
+ },
80
+ {
81
+ "model": "baseline",
82
+ "block": 0,
83
+ "row": 0,
84
+ "milliseconds": 0.9234579920303077
85
+ },
86
+ {
87
+ "model": "baseline",
88
+ "block": 0,
89
+ "row": 68,
90
+ "milliseconds": 0.9247499983757734
91
+ },
92
+ {
93
+ "model": "baseline",
94
+ "block": 0,
95
+ "row": 130,
96
+ "milliseconds": 0.9314999915659428
97
+ },
98
+ {
99
+ "model": "baseline",
100
+ "block": 0,
101
+ "row": 0,
102
+ "milliseconds": 0.9133330022450536
103
+ },
104
+ {
105
+ "model": "baseline",
106
+ "block": 0,
107
+ "row": 68,
108
+ "milliseconds": 0.9190000128000975
109
+ },
110
+ {
111
+ "model": "baseline",
112
+ "block": 0,
113
+ "row": 130,
114
+ "milliseconds": 0.9215839963871986
115
+ },
116
+ {
117
+ "model": "baseline",
118
+ "block": 0,
119
+ "row": 0,
120
+ "milliseconds": 0.9041670127771795
121
+ },
122
+ {
123
+ "model": "baseline",
124
+ "block": 0,
125
+ "row": 68,
126
+ "milliseconds": 0.9001670114230365
127
+ },
128
+ {
129
+ "model": "baseline",
130
+ "block": 0,
131
+ "row": 130,
132
+ "milliseconds": 0.9362080018036067
133
+ },
134
+ {
135
+ "model": "baseline",
136
+ "block": 0,
137
+ "row": 0,
138
+ "milliseconds": 1.0092500015161932
139
+ },
140
+ {
141
+ "model": "baseline",
142
+ "block": 0,
143
+ "row": 68,
144
+ "milliseconds": 0.9958750160876662
145
+ },
146
+ {
147
+ "model": "baseline",
148
+ "block": 0,
149
+ "row": 130,
150
+ "milliseconds": 1.0281660070177168
151
+ },
152
+ {
153
+ "model": "baseline",
154
+ "block": 0,
155
+ "row": 0,
156
+ "milliseconds": 0.96674999804236
157
+ },
158
+ {
159
+ "model": "baseline",
160
+ "block": 0,
161
+ "row": 68,
162
+ "milliseconds": 0.9511670214124024
163
+ },
164
+ {
165
+ "model": "baseline",
166
+ "block": 0,
167
+ "row": 130,
168
+ "milliseconds": 0.9152919810730964
169
+ },
170
+ {
171
+ "model": "baseline",
172
+ "block": 0,
173
+ "row": 0,
174
+ "milliseconds": 0.9129999962169677
175
+ },
176
+ {
177
+ "model": "baseline",
178
+ "block": 0,
179
+ "row": 68,
180
+ "milliseconds": 0.9089170198421925
181
+ },
182
+ {
183
+ "model": "baseline",
184
+ "block": 0,
185
+ "row": 130,
186
+ "milliseconds": 0.9163749928120524
187
+ },
188
+ {
189
+ "model": "baseline",
190
+ "block": 0,
191
+ "row": 0,
192
+ "milliseconds": 0.9026250045280904
193
+ },
194
+ {
195
+ "model": "baseline",
196
+ "block": 0,
197
+ "row": 68,
198
+ "milliseconds": 0.9094580018427223
199
+ },
200
+ {
201
+ "model": "baseline",
202
+ "block": 0,
203
+ "row": 130,
204
+ "milliseconds": 0.9331250039394945
205
+ },
206
+ {
207
+ "model": "baseline",
208
+ "block": 0,
209
+ "row": 0,
210
+ "milliseconds": 0.9327089937869459
211
+ },
212
+ {
213
+ "model": "baseline",
214
+ "block": 0,
215
+ "row": 68,
216
+ "milliseconds": 0.9123749914579093
217
+ },
218
+ {
219
+ "model": "baseline",
220
+ "block": 0,
221
+ "row": 130,
222
+ "milliseconds": 0.9423340088687837
223
+ },
224
+ {
225
+ "model": "baseline",
226
+ "block": 0,
227
+ "row": 0,
228
+ "milliseconds": 0.9080420131795108
229
+ },
230
+ {
231
+ "model": "baseline",
232
+ "block": 0,
233
+ "row": 68,
234
+ "milliseconds": 0.9152499842457473
235
+ },
236
+ {
237
+ "model": "baseline",
238
+ "block": 0,
239
+ "row": 130,
240
+ "milliseconds": 0.9090829989872873
241
+ },
242
+ {
243
+ "model": "candidate",
244
+ "block": 1,
245
+ "row": 0,
246
+ "milliseconds": 0.9569999820087105
247
+ },
248
+ {
249
+ "model": "candidate",
250
+ "block": 1,
251
+ "row": 68,
252
+ "milliseconds": 0.9605420054867864
253
+ },
254
+ {
255
+ "model": "candidate",
256
+ "block": 1,
257
+ "row": 130,
258
+ "milliseconds": 0.971125002251938
259
+ },
260
+ {
261
+ "model": "candidate",
262
+ "block": 1,
263
+ "row": 0,
264
+ "milliseconds": 0.9833329822868109
265
+ },
266
+ {
267
+ "model": "candidate",
268
+ "block": 1,
269
+ "row": 68,
270
+ "milliseconds": 0.9731249883770943
271
+ },
272
+ {
273
+ "model": "candidate",
274
+ "block": 1,
275
+ "row": 130,
276
+ "milliseconds": 0.9744580020196736
277
+ },
278
+ {
279
+ "model": "candidate",
280
+ "block": 1,
281
+ "row": 0,
282
+ "milliseconds": 0.9531670075375587
283
+ },
284
+ {
285
+ "model": "candidate",
286
+ "block": 1,
287
+ "row": 68,
288
+ "milliseconds": 0.960625009611249
289
+ },
290
+ {
291
+ "model": "candidate",
292
+ "block": 1,
293
+ "row": 130,
294
+ "milliseconds": 0.9434169915039092
295
+ },
296
+ {
297
+ "model": "candidate",
298
+ "block": 1,
299
+ "row": 0,
300
+ "milliseconds": 0.965375016676262
301
+ },
302
+ {
303
+ "model": "candidate",
304
+ "block": 1,
305
+ "row": 68,
306
+ "milliseconds": 0.9999169851653278
307
+ },
308
+ {
309
+ "model": "candidate",
310
+ "block": 1,
311
+ "row": 130,
312
+ "milliseconds": 0.9775409998837858
313
+ },
314
+ {
315
+ "model": "candidate",
316
+ "block": 1,
317
+ "row": 0,
318
+ "milliseconds": 0.983749981969595
319
+ },
320
+ {
321
+ "model": "candidate",
322
+ "block": 1,
323
+ "row": 68,
324
+ "milliseconds": 0.9759170061443001
325
+ },
326
+ {
327
+ "model": "candidate",
328
+ "block": 1,
329
+ "row": 130,
330
+ "milliseconds": 0.979083008132875
331
+ },
332
+ {
333
+ "model": "candidate",
334
+ "block": 1,
335
+ "row": 0,
336
+ "milliseconds": 0.9849590132944286
337
+ },
338
+ {
339
+ "model": "candidate",
340
+ "block": 1,
341
+ "row": 68,
342
+ "milliseconds": 0.9607080137357116
343
+ },
344
+ {
345
+ "model": "candidate",
346
+ "block": 1,
347
+ "row": 130,
348
+ "milliseconds": 0.9490000084042549
349
+ },
350
+ {
351
+ "model": "candidate",
352
+ "block": 1,
353
+ "row": 0,
354
+ "milliseconds": 0.9506659989710897
355
+ },
356
+ {
357
+ "model": "candidate",
358
+ "block": 1,
359
+ "row": 68,
360
+ "milliseconds": 0.9708750003483146
361
+ },
362
+ {
363
+ "model": "candidate",
364
+ "block": 1,
365
+ "row": 130,
366
+ "milliseconds": 0.9733340120874345
367
+ },
368
+ {
369
+ "model": "candidate",
370
+ "block": 1,
371
+ "row": 0,
372
+ "milliseconds": 0.9872919763438404
373
+ },
374
+ {
375
+ "model": "candidate",
376
+ "block": 1,
377
+ "row": 68,
378
+ "milliseconds": 0.970749999396503
379
+ },
380
+ {
381
+ "model": "candidate",
382
+ "block": 1,
383
+ "row": 130,
384
+ "milliseconds": 0.9687079873401672
385
+ },
386
+ {
387
+ "model": "candidate",
388
+ "block": 1,
389
+ "row": 0,
390
+ "milliseconds": 0.977249990683049
391
+ },
392
+ {
393
+ "model": "candidate",
394
+ "block": 1,
395
+ "row": 68,
396
+ "milliseconds": 0.9785419970285147
397
+ },
398
+ {
399
+ "model": "candidate",
400
+ "block": 1,
401
+ "row": 130,
402
+ "milliseconds": 0.9744160051923245
403
+ },
404
+ {
405
+ "model": "candidate",
406
+ "block": 1,
407
+ "row": 0,
408
+ "milliseconds": 0.9864169987849891
409
+ },
410
+ {
411
+ "model": "candidate",
412
+ "block": 1,
413
+ "row": 68,
414
+ "milliseconds": 0.982333003776148
415
+ },
416
+ {
417
+ "model": "candidate",
418
+ "block": 1,
419
+ "row": 130,
420
+ "milliseconds": 0.9689999860711396
421
+ },
422
+ {
423
+ "model": "candidate",
424
+ "block": 2,
425
+ "row": 0,
426
+ "milliseconds": 0.9796250087674707
427
+ },
428
+ {
429
+ "model": "candidate",
430
+ "block": 2,
431
+ "row": 68,
432
+ "milliseconds": 0.9837090037763119
433
+ },
434
+ {
435
+ "model": "candidate",
436
+ "block": 2,
437
+ "row": 130,
438
+ "milliseconds": 0.9523750049993396
439
+ },
440
+ {
441
+ "model": "candidate",
442
+ "block": 2,
443
+ "row": 0,
444
+ "milliseconds": 0.9744999988470227
445
+ },
446
+ {
447
+ "model": "candidate",
448
+ "block": 2,
449
+ "row": 68,
450
+ "milliseconds": 0.9580420155543834
451
+ },
452
+ {
453
+ "model": "candidate",
454
+ "block": 2,
455
+ "row": 130,
456
+ "milliseconds": 0.9489580115769058
457
+ },
458
+ {
459
+ "model": "candidate",
460
+ "block": 2,
461
+ "row": 0,
462
+ "milliseconds": 0.9510410018265247
463
+ },
464
+ {
465
+ "model": "candidate",
466
+ "block": 2,
467
+ "row": 68,
468
+ "milliseconds": 0.9449580102227628
469
+ },
470
+ {
471
+ "model": "candidate",
472
+ "block": 2,
473
+ "row": 130,
474
+ "milliseconds": 0.9497080172877759
475
+ },
476
+ {
477
+ "model": "candidate",
478
+ "block": 2,
479
+ "row": 0,
480
+ "milliseconds": 0.9529579838272184
481
+ },
482
+ {
483
+ "model": "candidate",
484
+ "block": 2,
485
+ "row": 68,
486
+ "milliseconds": 0.9495420090388507
487
+ },
488
+ {
489
+ "model": "candidate",
490
+ "block": 2,
491
+ "row": 130,
492
+ "milliseconds": 0.9463340102229267
493
+ },
494
+ {
495
+ "model": "candidate",
496
+ "block": 2,
497
+ "row": 0,
498
+ "milliseconds": 0.9437499975319952
499
+ },
500
+ {
501
+ "model": "candidate",
502
+ "block": 2,
503
+ "row": 68,
504
+ "milliseconds": 0.9775829967111349
505
+ },
506
+ {
507
+ "model": "candidate",
508
+ "block": 2,
509
+ "row": 130,
510
+ "milliseconds": 0.9694590116851032
511
+ },
512
+ {
513
+ "model": "candidate",
514
+ "block": 2,
515
+ "row": 0,
516
+ "milliseconds": 0.996084010694176
517
+ },
518
+ {
519
+ "model": "candidate",
520
+ "block": 2,
521
+ "row": 68,
522
+ "milliseconds": 1.0195420181844383
523
+ },
524
+ {
525
+ "model": "candidate",
526
+ "block": 2,
527
+ "row": 130,
528
+ "milliseconds": 0.9871670044958591
529
+ },
530
+ {
531
+ "model": "candidate",
532
+ "block": 2,
533
+ "row": 0,
534
+ "milliseconds": 0.9699160000309348
535
+ },
536
+ {
537
+ "model": "candidate",
538
+ "block": 2,
539
+ "row": 68,
540
+ "milliseconds": 0.9592499991413206
541
+ },
542
+ {
543
+ "model": "candidate",
544
+ "block": 2,
545
+ "row": 130,
546
+ "milliseconds": 0.9731660247780383
547
+ },
548
+ {
549
+ "model": "candidate",
550
+ "block": 2,
551
+ "row": 0,
552
+ "milliseconds": 0.9729999874252826
553
+ },
554
+ {
555
+ "model": "candidate",
556
+ "block": 2,
557
+ "row": 68,
558
+ "milliseconds": 0.9556250006426126
559
+ },
560
+ {
561
+ "model": "candidate",
562
+ "block": 2,
563
+ "row": 130,
564
+ "milliseconds": 0.9530829847790301
565
+ },
566
+ {
567
+ "model": "candidate",
568
+ "block": 2,
569
+ "row": 0,
570
+ "milliseconds": 0.9495830163359642
571
+ },
572
+ {
573
+ "model": "candidate",
574
+ "block": 2,
575
+ "row": 68,
576
+ "milliseconds": 0.9697090135887265
577
+ },
578
+ {
579
+ "model": "candidate",
580
+ "block": 2,
581
+ "row": 130,
582
+ "milliseconds": 0.9829580085352063
583
+ },
584
+ {
585
+ "model": "candidate",
586
+ "block": 2,
587
+ "row": 0,
588
+ "milliseconds": 0.9604159859009087
589
+ },
590
+ {
591
+ "model": "candidate",
592
+ "block": 2,
593
+ "row": 68,
594
+ "milliseconds": 0.9743330010678619
595
+ },
596
+ {
597
+ "model": "candidate",
598
+ "block": 2,
599
+ "row": 130,
600
+ "milliseconds": 0.9570419788360596
601
+ },
602
+ {
603
+ "model": "baseline",
604
+ "block": 3,
605
+ "row": 0,
606
+ "milliseconds": 0.927665998460725
607
+ },
608
+ {
609
+ "model": "baseline",
610
+ "block": 3,
611
+ "row": 68,
612
+ "milliseconds": 0.9297500073444098
613
+ },
614
+ {
615
+ "model": "baseline",
616
+ "block": 3,
617
+ "row": 130,
618
+ "milliseconds": 0.9148749813903123
619
+ },
620
+ {
621
+ "model": "baseline",
622
+ "block": 3,
623
+ "row": 0,
624
+ "milliseconds": 0.8912909834180027
625
+ },
626
+ {
627
+ "model": "baseline",
628
+ "block": 3,
629
+ "row": 68,
630
+ "milliseconds": 0.88170898379758
631
+ },
632
+ {
633
+ "model": "baseline",
634
+ "block": 3,
635
+ "row": 130,
636
+ "milliseconds": 0.9040829900186509
637
+ },
638
+ {
639
+ "model": "baseline",
640
+ "block": 3,
641
+ "row": 0,
642
+ "milliseconds": 0.8952920034062117
643
+ },
644
+ {
645
+ "model": "baseline",
646
+ "block": 3,
647
+ "row": 68,
648
+ "milliseconds": 0.9061660093721002
649
+ },
650
+ {
651
+ "model": "baseline",
652
+ "block": 3,
653
+ "row": 130,
654
+ "milliseconds": 0.9120829927269369
655
+ },
656
+ {
657
+ "model": "baseline",
658
+ "block": 3,
659
+ "row": 0,
660
+ "milliseconds": 0.9074159897863865
661
+ },
662
+ {
663
+ "model": "baseline",
664
+ "block": 3,
665
+ "row": 68,
666
+ "milliseconds": 0.9095839923247695
667
+ },
668
+ {
669
+ "model": "baseline",
670
+ "block": 3,
671
+ "row": 130,
672
+ "milliseconds": 0.883542001247406
673
+ },
674
+ {
675
+ "model": "baseline",
676
+ "block": 3,
677
+ "row": 0,
678
+ "milliseconds": 0.8904590213205665
679
+ },
680
+ {
681
+ "model": "baseline",
682
+ "block": 3,
683
+ "row": 68,
684
+ "milliseconds": 0.8850830199662596
685
+ },
686
+ {
687
+ "model": "baseline",
688
+ "block": 3,
689
+ "row": 130,
690
+ "milliseconds": 0.8904580026865005
691
+ },
692
+ {
693
+ "model": "baseline",
694
+ "block": 3,
695
+ "row": 0,
696
+ "milliseconds": 0.9044160251505673
697
+ },
698
+ {
699
+ "model": "baseline",
700
+ "block": 3,
701
+ "row": 68,
702
+ "milliseconds": 0.9244170214515179
703
+ },
704
+ {
705
+ "model": "baseline",
706
+ "block": 3,
707
+ "row": 130,
708
+ "milliseconds": 0.9261659870389849
709
+ },
710
+ {
711
+ "model": "baseline",
712
+ "block": 3,
713
+ "row": 0,
714
+ "milliseconds": 0.9326669969595969
715
+ },
716
+ {
717
+ "model": "baseline",
718
+ "block": 3,
719
+ "row": 68,
720
+ "milliseconds": 0.9306249849032611
721
+ },
722
+ {
723
+ "model": "baseline",
724
+ "block": 3,
725
+ "row": 130,
726
+ "milliseconds": 0.8886670111678541
727
+ },
728
+ {
729
+ "model": "baseline",
730
+ "block": 3,
731
+ "row": 0,
732
+ "milliseconds": 0.8824579999782145
733
+ },
734
+ {
735
+ "model": "baseline",
736
+ "block": 3,
737
+ "row": 68,
738
+ "milliseconds": 0.8989160123746842
739
+ },
740
+ {
741
+ "model": "baseline",
742
+ "block": 3,
743
+ "row": 130,
744
+ "milliseconds": 0.8977499965112656
745
+ },
746
+ {
747
+ "model": "baseline",
748
+ "block": 3,
749
+ "row": 0,
750
+ "milliseconds": 0.8965420129243284
751
+ },
752
+ {
753
+ "model": "baseline",
754
+ "block": 3,
755
+ "row": 68,
756
+ "milliseconds": 0.9054580004885793
757
+ },
758
+ {
759
+ "model": "baseline",
760
+ "block": 3,
761
+ "row": 130,
762
+ "milliseconds": 0.93029101844877
763
+ },
764
+ {
765
+ "model": "baseline",
766
+ "block": 3,
767
+ "row": 0,
768
+ "milliseconds": 0.9197920153383166
769
+ },
770
+ {
771
+ "model": "baseline",
772
+ "block": 3,
773
+ "row": 68,
774
+ "milliseconds": 0.9319579985458404
775
+ },
776
+ {
777
+ "model": "baseline",
778
+ "block": 3,
779
+ "row": 130,
780
+ "milliseconds": 0.9407080069649965
781
+ }
782
+ ],
783
+ "script_sha256": "4633df7ad5f90d6aed37d5ef4f7a2d2231fdadd272ef1aa3057c237b2f937df8"
784
+ }
reports/ane-fallback.json ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "hardware": {
3
+ "device": "arm64",
4
+ "chip": "Apple M5 Pro",
5
+ "ram": "24GB",
6
+ "os_version": "macOS 27.0",
7
+ "timestamp": "2026-09-19T19:41:20.560977+00:00"
8
+ },
9
+ "models": [
10
+ {
11
+ "model_path": "build/cua_s1_forms_fp16_options32.mlmodelc",
12
+ "model_name": "cua_s1_forms_fp16_options32",
13
+ "fallback": {
14
+ "compute_units": "cpu_and_neural_engine",
15
+ "total_ops": 173,
16
+ "ane_ops": 149,
17
+ "gpu_ops": 0,
18
+ "cpu_ops": 24,
19
+ "ane_percent": 86.1,
20
+ "reasons": [
21
+ {
22
+ "reason": "Unsupported tensor data type: int32",
23
+ "count": 17,
24
+ "estimated_cpu_runtime_ms": 0.017,
25
+ "op_types": {
26
+ "ios17.cast": 8,
27
+ "ios17.slice_by_index": 4,
28
+ "ios17.add": 2,
29
+ "select": 2,
30
+ "ios17.reshape": 1
31
+ },
32
+ "ops": [
33
+ "var_27",
34
+ "var_43",
35
+ "var_43_to_fp16",
36
+ "context_ids_to_int16",
37
+ "cast_54",
38
+ "add_3",
39
+ "select_0",
40
+ "select_0_to_int16",
41
+ "flat_ids",
42
+ "var_333",
43
+ "var_349",
44
+ "var_349_to_fp16",
45
+ "flat_ids_to_int16",
46
+ "cast_55",
47
+ "add_4",
48
+ "select_1",
49
+ "select_1_to_int16"
50
+ ]
51
+ },
52
+ {
53
+ "reason": "Unable to resolve operation input \"y\".",
54
+ "count": 5,
55
+ "estimated_cpu_runtime_ms": 0.005,
56
+ "op_types": {
57
+ "ios17.not_equal": 3,
58
+ "ios17.greater_equal": 2
59
+ },
60
+ "ops": [
61
+ "option_mask_1",
62
+ "context_mask",
63
+ "greater_equal_0",
64
+ "flat_mask",
65
+ "greater_equal_1"
66
+ ]
67
+ },
68
+ {
69
+ "reason": "Unsupported gather index type",
70
+ "count": 2,
71
+ "estimated_cpu_runtime_ms": 0.0144,
72
+ "op_types": {
73
+ "ios17.gather": 2
74
+ },
75
+ "ops": [
76
+ "var_59_cast_fp16_cast_uint16_cast_uint16",
77
+ "var_365_cast_fp16_cast_uint16_cast_uint16"
78
+ ]
79
+ }
80
+ ]
81
+ }
82
+ }
83
+ ]
84
+ }
reports/ane-gather-fallback.json ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "hardware": {
3
+ "device": "arm64",
4
+ "chip": "Apple M5 Pro",
5
+ "ram": "24GB",
6
+ "os_version": "macOS 27.0",
7
+ "timestamp": "2026-09-19T20:08:52.988799+00:00"
8
+ },
9
+ "models": [
10
+ {
11
+ "model_path": "build/ane-gather/cua_s1_forms_fp16_options32.mlmodelc",
12
+ "model_name": "cua_s1_forms_fp16_options32",
13
+ "fallback": {
14
+ "compute_units": "cpu_and_neural_engine",
15
+ "total_ops": 165,
16
+ "ane_ops": 162,
17
+ "gpu_ops": 0,
18
+ "cpu_ops": 3,
19
+ "ane_percent": 98.2,
20
+ "reasons": [
21
+ {
22
+ "reason": "Unsupported tensor data type: int32",
23
+ "count": 3,
24
+ "estimated_cpu_runtime_ms": 0.003,
25
+ "op_types": {
26
+ "ios17.cast": 3
27
+ },
28
+ "ops": [
29
+ "option_mask_to_fp16",
30
+ "context_ids_to_fp16",
31
+ "option_ids_to_fp16"
32
+ ]
33
+ }
34
+ ]
35
+ }
36
+ }
37
+ ]
38
+ }
reports/ane-gather-profile.json ADDED
The diff for this file is too large to render. See raw diff
 
reports/ane-gather-verification.json ADDED
@@ -0,0 +1,3314 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "purpose": "Local conversion parity on the upstream demo; not a generalization or live GUI benchmark",
3
+ "created_utc": "2026-09-19T20:05:25.654377+00:00",
4
+ "model_revision": "f54adbf447f4ca6ec259f529ee3f2e3e09f8cc71",
5
+ "source_revision": "83f142c4290a0f7d9ed545ae8532858c6e4f8145",
6
+ "dataset_revision": "8273f34778b99ac2e12d9f6e7d57dad99ae20845",
7
+ "dataset_file": "demo.jsonl",
8
+ "dataset_sha256": "4f43b442e79ba2e2ce731e27e9b8e340c2b5dfcaffc92d8ff564c34f115ff1ca",
9
+ "conversion": {
10
+ "model": "cua_s1_forms_fp16_options32.mlpackage",
11
+ "precision": "float16",
12
+ "optimization": "ane-gather",
13
+ "minimum_target": "iOS17/macOS14",
14
+ "limits": {
15
+ "context_bytes": 224,
16
+ "option_bytes": 96,
17
+ "max_options": 32
18
+ },
19
+ "model_config": {
20
+ "context_tokens": 224,
21
+ "encoder": "tinyx",
22
+ "heads": 4,
23
+ "hf_model": "Qwen/Qwen2.5-0.5B",
24
+ "layers": 2,
25
+ "option_tokens": 96,
26
+ "rank": 128,
27
+ "width": 128
28
+ },
29
+ "parameters": 706048,
30
+ "assets_lock_sha256": "8e65ad70af6bb814b571cdcfe828ba4bc339147da2d2211cbeac416163ef18ba",
31
+ "model_revision": "f54adbf447f4ca6ec259f529ee3f2e3e09f8cc71",
32
+ "source_revision": "83f142c4290a0f7d9ed545ae8532858c6e4f8145",
33
+ "trace_row": 0,
34
+ "trace_dataset_revision": "8273f34778b99ac2e12d9f6e7d57dad99ae20845",
35
+ "export_seconds": 0.6771400420111604,
36
+ "python": "3.11.11",
37
+ "torch": "2.7.0",
38
+ "coremltools": "9.0",
39
+ "package_files": {
40
+ "Data/com.apple.CoreML/model.mlmodel": "de18e313c3b625e35d008ed8b6b24108edc6df7bf2fae9533af03519eca11b63",
41
+ "Data/com.apple.CoreML/weights/weight.bin": "4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895",
42
+ "Manifest.json": "38f812a04eb2322080634ba788c61df362336168466ca67e5549058d346ac793"
43
+ }
44
+ },
45
+ "environment": {
46
+ "machine": "Apple M5 Pro",
47
+ "os": "27.0",
48
+ "python": "3.11.11",
49
+ "torch": "2.7.0",
50
+ "coremltools": "9.0",
51
+ "torch_cpu_threads": 2
52
+ },
53
+ "rows": 196,
54
+ "upstream": {
55
+ "correct": 196,
56
+ "accuracy": 1.0,
57
+ "inference_latency_ms": {
58
+ "count": 196,
59
+ "median_ms": 2.46754199906718,
60
+ "p95_ms": 3.106593489064835,
61
+ "min_ms": 1.7850839940365404,
62
+ "max_ms": 3.8927909918129444
63
+ }
64
+ },
65
+ "export_adapter_fp32": {
66
+ "argmax_agreement": 196,
67
+ "max_abs_probability_error": 1.1324882507324219e-06
68
+ },
69
+ "host_preprocessing_latency_ms": {
70
+ "count": 196,
71
+ "median_ms": 0.03879200085066259,
72
+ "p95_ms": 0.050938004278577864,
73
+ "min_ms": 0.026541994884610176,
74
+ "max_ms": 0.06945800851099193
75
+ },
76
+ "thresholds": {
77
+ "argmax_agreement": 1.0,
78
+ "max_abs_probability_error": 0.005,
79
+ "export_adapter_max_abs_probability_error": 0.0001,
80
+ "allow_accuracy_loss": false
81
+ },
82
+ "backends": {
83
+ "ALL": {
84
+ "passed": true,
85
+ "correct": 196,
86
+ "accuracy": 1.0,
87
+ "argmax_agreement": 196,
88
+ "max_abs_probability_error": 0.00233614444732666,
89
+ "mean_row_max_abs_probability_error": 2.934475840582507e-05,
90
+ "max_abs_logit_error": 0.07230281829833984,
91
+ "load_seconds": 0.6175256659917068,
92
+ "warm_inference_latency_ms": {
93
+ "count": 196,
94
+ "median_ms": 0.9540419996483251,
95
+ "p95_ms": 1.0018329994636588,
96
+ "min_ms": 0.9285419946536422,
97
+ "max_ms": 1.5723749820608646
98
+ },
99
+ "reversed_option_order": {
100
+ "rows": 6,
101
+ "max_abs_probability_error": 3.1828880310058594e-05
102
+ },
103
+ "per_action": {
104
+ "fill": {
105
+ "rows": 36,
106
+ "correct": 36
107
+ },
108
+ "skip": {
109
+ "rows": 150,
110
+ "correct": 150
111
+ },
112
+ "check": {
113
+ "rows": 4,
114
+ "correct": 4
115
+ },
116
+ "click": {
117
+ "rows": 6,
118
+ "correct": 6
119
+ }
120
+ },
121
+ "decisions": [
122
+ {
123
+ "row": 0,
124
+ "label": 22,
125
+ "upstream": 22,
126
+ "coreml": 22,
127
+ "max_abs_probability_error": 3.1828880310058594e-05,
128
+ "max_abs_logit_error": 0.03086566925048828
129
+ },
130
+ {
131
+ "row": 1,
132
+ "label": 23,
133
+ "upstream": 23,
134
+ "coreml": 23,
135
+ "max_abs_probability_error": 3.814697265625e-05,
136
+ "max_abs_logit_error": 0.020841598510742188
137
+ },
138
+ {
139
+ "row": 2,
140
+ "label": 2,
141
+ "upstream": 2,
142
+ "coreml": 2,
143
+ "max_abs_probability_error": 1.1920928955078125e-07,
144
+ "max_abs_logit_error": 0.024377822875976562
145
+ },
146
+ {
147
+ "row": 3,
148
+ "label": 5,
149
+ "upstream": 5,
150
+ "coreml": 5,
151
+ "max_abs_probability_error": 3.218650817871094e-05,
152
+ "max_abs_logit_error": 0.030775785446166992
153
+ },
154
+ {
155
+ "row": 4,
156
+ "label": 4,
157
+ "upstream": 4,
158
+ "coreml": 4,
159
+ "max_abs_probability_error": 2.944469451904297e-05,
160
+ "max_abs_logit_error": 0.03573417663574219
161
+ },
162
+ {
163
+ "row": 5,
164
+ "label": 6,
165
+ "upstream": 6,
166
+ "coreml": 6,
167
+ "max_abs_probability_error": 1.2636184692382812e-05,
168
+ "max_abs_logit_error": 0.026729822158813477
169
+ },
170
+ {
171
+ "row": 6,
172
+ "label": 7,
173
+ "upstream": 7,
174
+ "coreml": 7,
175
+ "max_abs_probability_error": 2.3365020751953125e-05,
176
+ "max_abs_logit_error": 0.023685455322265625
177
+ },
178
+ {
179
+ "row": 7,
180
+ "label": 8,
181
+ "upstream": 8,
182
+ "coreml": 8,
183
+ "max_abs_probability_error": 0.00014638900756835938,
184
+ "max_abs_logit_error": 0.04038810729980469
185
+ },
186
+ {
187
+ "row": 8,
188
+ "label": 9,
189
+ "upstream": 9,
190
+ "coreml": 9,
191
+ "max_abs_probability_error": 1.1920928955078125e-06,
192
+ "max_abs_logit_error": 0.02460002899169922
193
+ },
194
+ {
195
+ "row": 9,
196
+ "label": 10,
197
+ "upstream": 10,
198
+ "coreml": 10,
199
+ "max_abs_probability_error": 2.1457672119140625e-05,
200
+ "max_abs_logit_error": 0.018064022064208984
201
+ },
202
+ {
203
+ "row": 10,
204
+ "label": 11,
205
+ "upstream": 11,
206
+ "coreml": 11,
207
+ "max_abs_probability_error": 5.960464477539062e-07,
208
+ "max_abs_logit_error": 0.047691673040390015
209
+ },
210
+ {
211
+ "row": 11,
212
+ "label": 13,
213
+ "upstream": 13,
214
+ "coreml": 13,
215
+ "max_abs_probability_error": 3.2186508178710938e-06,
216
+ "max_abs_logit_error": 0.03340768814086914
217
+ },
218
+ {
219
+ "row": 12,
220
+ "label": 15,
221
+ "upstream": 15,
222
+ "coreml": 15,
223
+ "max_abs_probability_error": 2.384185791015625e-06,
224
+ "max_abs_logit_error": 0.053191184997558594
225
+ },
226
+ {
227
+ "row": 13,
228
+ "label": 16,
229
+ "upstream": 16,
230
+ "coreml": 16,
231
+ "max_abs_probability_error": 0.0005360841751098633,
232
+ "max_abs_logit_error": 0.03362560272216797
233
+ },
234
+ {
235
+ "row": 14,
236
+ "label": 26,
237
+ "upstream": 26,
238
+ "coreml": 26,
239
+ "max_abs_probability_error": 1.8596649169921875e-05,
240
+ "max_abs_logit_error": 0.024669170379638672
241
+ },
242
+ {
243
+ "row": 15,
244
+ "label": 24,
245
+ "upstream": 24,
246
+ "coreml": 24,
247
+ "max_abs_probability_error": 1.6689300537109375e-05,
248
+ "max_abs_logit_error": 0.034501075744628906
249
+ },
250
+ {
251
+ "row": 16,
252
+ "label": 26,
253
+ "upstream": 26,
254
+ "coreml": 26,
255
+ "max_abs_probability_error": 1.440092489701783e-08,
256
+ "max_abs_logit_error": 0.033290743827819824
257
+ },
258
+ {
259
+ "row": 17,
260
+ "label": 25,
261
+ "upstream": 25,
262
+ "coreml": 25,
263
+ "max_abs_probability_error": 1.1920928955078125e-07,
264
+ "max_abs_logit_error": 0.03323173522949219
265
+ },
266
+ {
267
+ "row": 18,
268
+ "label": 26,
269
+ "upstream": 26,
270
+ "coreml": 26,
271
+ "max_abs_probability_error": 8.430758313693332e-09,
272
+ "max_abs_logit_error": 0.022179126739501953
273
+ },
274
+ {
275
+ "row": 19,
276
+ "label": 26,
277
+ "upstream": 26,
278
+ "coreml": 26,
279
+ "max_abs_probability_error": 3.0266471551243512e-09,
280
+ "max_abs_logit_error": 0.029880523681640625
281
+ },
282
+ {
283
+ "row": 20,
284
+ "label": 26,
285
+ "upstream": 26,
286
+ "coreml": 26,
287
+ "max_abs_probability_error": 2.4500966588902884e-08,
288
+ "max_abs_logit_error": 0.031145095825195312
289
+ },
290
+ {
291
+ "row": 21,
292
+ "label": 26,
293
+ "upstream": 26,
294
+ "coreml": 26,
295
+ "max_abs_probability_error": 1.647379281599637e-11,
296
+ "max_abs_logit_error": 0.03861522674560547
297
+ },
298
+ {
299
+ "row": 22,
300
+ "label": 26,
301
+ "upstream": 26,
302
+ "coreml": 26,
303
+ "max_abs_probability_error": 7.152557373046875e-07,
304
+ "max_abs_logit_error": 0.027164459228515625
305
+ },
306
+ {
307
+ "row": 23,
308
+ "label": 26,
309
+ "upstream": 26,
310
+ "coreml": 26,
311
+ "max_abs_probability_error": 5.960464477539062e-07,
312
+ "max_abs_logit_error": 0.058716535568237305
313
+ },
314
+ {
315
+ "row": 24,
316
+ "label": 26,
317
+ "upstream": 26,
318
+ "coreml": 26,
319
+ "max_abs_probability_error": 2.5055844551924444e-11,
320
+ "max_abs_logit_error": 0.035381317138671875
321
+ },
322
+ {
323
+ "row": 25,
324
+ "label": 26,
325
+ "upstream": 26,
326
+ "coreml": 26,
327
+ "max_abs_probability_error": 6.995705792434137e-09,
328
+ "max_abs_logit_error": 0.04862499237060547
329
+ },
330
+ {
331
+ "row": 26,
332
+ "label": 26,
333
+ "upstream": 26,
334
+ "coreml": 26,
335
+ "max_abs_probability_error": 6.470584068551943e-10,
336
+ "max_abs_logit_error": 0.029034733772277832
337
+ },
338
+ {
339
+ "row": 27,
340
+ "label": 26,
341
+ "upstream": 26,
342
+ "coreml": 26,
343
+ "max_abs_probability_error": 6.973024935241767e-11,
344
+ "max_abs_logit_error": 0.03808116912841797
345
+ },
346
+ {
347
+ "row": 28,
348
+ "label": 26,
349
+ "upstream": 26,
350
+ "coreml": 26,
351
+ "max_abs_probability_error": 5.994321927715873e-09,
352
+ "max_abs_logit_error": 0.03319191932678223
353
+ },
354
+ {
355
+ "row": 29,
356
+ "label": 26,
357
+ "upstream": 26,
358
+ "coreml": 26,
359
+ "max_abs_probability_error": 2.4426039316183257e-11,
360
+ "max_abs_logit_error": 0.030045509338378906
361
+ },
362
+ {
363
+ "row": 30,
364
+ "label": 26,
365
+ "upstream": 26,
366
+ "coreml": 26,
367
+ "max_abs_probability_error": 2.384185791015625e-07,
368
+ "max_abs_logit_error": 0.026231765747070312
369
+ },
370
+ {
371
+ "row": 31,
372
+ "label": 26,
373
+ "upstream": 26,
374
+ "coreml": 26,
375
+ "max_abs_probability_error": 7.78299757975276e-10,
376
+ "max_abs_logit_error": 0.033112093806266785
377
+ },
378
+ {
379
+ "row": 32,
380
+ "label": 26,
381
+ "upstream": 26,
382
+ "coreml": 26,
383
+ "max_abs_probability_error": 6.185003176284454e-09,
384
+ "max_abs_logit_error": 0.022128582000732422
385
+ },
386
+ {
387
+ "row": 33,
388
+ "label": 26,
389
+ "upstream": 26,
390
+ "coreml": 26,
391
+ "max_abs_probability_error": 3.4556297823229443e-09,
392
+ "max_abs_logit_error": 0.038306236267089844
393
+ },
394
+ {
395
+ "row": 34,
396
+ "label": 26,
397
+ "upstream": 26,
398
+ "coreml": 26,
399
+ "max_abs_probability_error": 0.0004820823669433594,
400
+ "max_abs_logit_error": 0.032683372497558594
401
+ },
402
+ {
403
+ "row": 35,
404
+ "label": 26,
405
+ "upstream": 26,
406
+ "coreml": 26,
407
+ "max_abs_probability_error": 1.462750809366753e-09,
408
+ "max_abs_logit_error": 0.029730796813964844
409
+ },
410
+ {
411
+ "row": 36,
412
+ "label": 26,
413
+ "upstream": 26,
414
+ "coreml": 26,
415
+ "max_abs_probability_error": 2.7510341227277024e-10,
416
+ "max_abs_logit_error": 0.02333354949951172
417
+ },
418
+ {
419
+ "row": 37,
420
+ "label": 26,
421
+ "upstream": 26,
422
+ "coreml": 26,
423
+ "max_abs_probability_error": 2.657592190757896e-08,
424
+ "max_abs_logit_error": 0.022855758666992188
425
+ },
426
+ {
427
+ "row": 38,
428
+ "label": 26,
429
+ "upstream": 26,
430
+ "coreml": 26,
431
+ "max_abs_probability_error": 9.552543478452691e-11,
432
+ "max_abs_logit_error": 0.023164749145507812
433
+ },
434
+ {
435
+ "row": 39,
436
+ "label": 26,
437
+ "upstream": 26,
438
+ "coreml": 26,
439
+ "max_abs_probability_error": 4.04716482549361e-10,
440
+ "max_abs_logit_error": 0.02880859375
441
+ },
442
+ {
443
+ "row": 40,
444
+ "label": 26,
445
+ "upstream": 26,
446
+ "coreml": 26,
447
+ "max_abs_probability_error": 0.00021719932556152344,
448
+ "max_abs_logit_error": 0.04735088348388672
449
+ },
450
+ {
451
+ "row": 41,
452
+ "label": 26,
453
+ "upstream": 26,
454
+ "coreml": 26,
455
+ "max_abs_probability_error": 6.146233744175333e-09,
456
+ "max_abs_logit_error": 0.03671276569366455
457
+ },
458
+ {
459
+ "row": 42,
460
+ "label": 26,
461
+ "upstream": 26,
462
+ "coreml": 26,
463
+ "max_abs_probability_error": 1.8819494851385343e-09,
464
+ "max_abs_logit_error": 0.023815155029296875
465
+ },
466
+ {
467
+ "row": 43,
468
+ "label": 26,
469
+ "upstream": 26,
470
+ "coreml": 26,
471
+ "max_abs_probability_error": 7.152557373046875e-07,
472
+ "max_abs_logit_error": 0.02039623260498047
473
+ },
474
+ {
475
+ "row": 44,
476
+ "label": 26,
477
+ "upstream": 26,
478
+ "coreml": 26,
479
+ "max_abs_probability_error": 1.780525865635596e-10,
480
+ "max_abs_logit_error": 0.022927284240722656
481
+ },
482
+ {
483
+ "row": 45,
484
+ "label": 26,
485
+ "upstream": 26,
486
+ "coreml": 26,
487
+ "max_abs_probability_error": 3.414331317674879e-11,
488
+ "max_abs_logit_error": 0.030417919158935547
489
+ },
490
+ {
491
+ "row": 46,
492
+ "label": 26,
493
+ "upstream": 26,
494
+ "coreml": 26,
495
+ "max_abs_probability_error": 5.599257724142603e-10,
496
+ "max_abs_logit_error": 0.025608062744140625
497
+ },
498
+ {
499
+ "row": 47,
500
+ "label": 26,
501
+ "upstream": 26,
502
+ "coreml": 26,
503
+ "max_abs_probability_error": 5.212314607705437e-11,
504
+ "max_abs_logit_error": 0.022733211517333984
505
+ },
506
+ {
507
+ "row": 48,
508
+ "label": 26,
509
+ "upstream": 26,
510
+ "coreml": 26,
511
+ "max_abs_probability_error": 1.8596649169921875e-05,
512
+ "max_abs_logit_error": 0.024669170379638672
513
+ },
514
+ {
515
+ "row": 49,
516
+ "label": 26,
517
+ "upstream": 26,
518
+ "coreml": 26,
519
+ "max_abs_probability_error": 1.932842080831776e-10,
520
+ "max_abs_logit_error": 0.030317306518554688
521
+ },
522
+ {
523
+ "row": 50,
524
+ "label": 26,
525
+ "upstream": 26,
526
+ "coreml": 26,
527
+ "max_abs_probability_error": 1.440092489701783e-08,
528
+ "max_abs_logit_error": 0.033290743827819824
529
+ },
530
+ {
531
+ "row": 51,
532
+ "label": 25,
533
+ "upstream": 25,
534
+ "coreml": 25,
535
+ "max_abs_probability_error": 1.1920928955078125e-07,
536
+ "max_abs_logit_error": 0.03323173522949219
537
+ },
538
+ {
539
+ "row": 52,
540
+ "label": 26,
541
+ "upstream": 26,
542
+ "coreml": 26,
543
+ "max_abs_probability_error": 8.430758313693332e-09,
544
+ "max_abs_logit_error": 0.022179126739501953
545
+ },
546
+ {
547
+ "row": 53,
548
+ "label": 26,
549
+ "upstream": 26,
550
+ "coreml": 26,
551
+ "max_abs_probability_error": 3.0266471551243512e-09,
552
+ "max_abs_logit_error": 0.029880523681640625
553
+ },
554
+ {
555
+ "row": 54,
556
+ "label": 26,
557
+ "upstream": 26,
558
+ "coreml": 26,
559
+ "max_abs_probability_error": 2.4500966588902884e-08,
560
+ "max_abs_logit_error": 0.031145095825195312
561
+ },
562
+ {
563
+ "row": 55,
564
+ "label": 26,
565
+ "upstream": 26,
566
+ "coreml": 26,
567
+ "max_abs_probability_error": 1.647379281599637e-11,
568
+ "max_abs_logit_error": 0.03861522674560547
569
+ },
570
+ {
571
+ "row": 56,
572
+ "label": 26,
573
+ "upstream": 26,
574
+ "coreml": 26,
575
+ "max_abs_probability_error": 7.152557373046875e-07,
576
+ "max_abs_logit_error": 0.027164459228515625
577
+ },
578
+ {
579
+ "row": 57,
580
+ "label": 26,
581
+ "upstream": 26,
582
+ "coreml": 26,
583
+ "max_abs_probability_error": 5.960464477539062e-07,
584
+ "max_abs_logit_error": 0.058716535568237305
585
+ },
586
+ {
587
+ "row": 58,
588
+ "label": 26,
589
+ "upstream": 26,
590
+ "coreml": 26,
591
+ "max_abs_probability_error": 2.5055844551924444e-11,
592
+ "max_abs_logit_error": 0.035381317138671875
593
+ },
594
+ {
595
+ "row": 59,
596
+ "label": 26,
597
+ "upstream": 26,
598
+ "coreml": 26,
599
+ "max_abs_probability_error": 6.995705792434137e-09,
600
+ "max_abs_logit_error": 0.04862499237060547
601
+ },
602
+ {
603
+ "row": 60,
604
+ "label": 26,
605
+ "upstream": 26,
606
+ "coreml": 26,
607
+ "max_abs_probability_error": 6.470584068551943e-10,
608
+ "max_abs_logit_error": 0.029034733772277832
609
+ },
610
+ {
611
+ "row": 61,
612
+ "label": 26,
613
+ "upstream": 26,
614
+ "coreml": 26,
615
+ "max_abs_probability_error": 6.973024935241767e-11,
616
+ "max_abs_logit_error": 0.03808116912841797
617
+ },
618
+ {
619
+ "row": 62,
620
+ "label": 26,
621
+ "upstream": 26,
622
+ "coreml": 26,
623
+ "max_abs_probability_error": 5.994321927715873e-09,
624
+ "max_abs_logit_error": 0.03319191932678223
625
+ },
626
+ {
627
+ "row": 63,
628
+ "label": 26,
629
+ "upstream": 26,
630
+ "coreml": 26,
631
+ "max_abs_probability_error": 2.4426039316183257e-11,
632
+ "max_abs_logit_error": 0.030045509338378906
633
+ },
634
+ {
635
+ "row": 64,
636
+ "label": 26,
637
+ "upstream": 26,
638
+ "coreml": 26,
639
+ "max_abs_probability_error": 2.384185791015625e-07,
640
+ "max_abs_logit_error": 0.026231765747070312
641
+ },
642
+ {
643
+ "row": 65,
644
+ "label": 26,
645
+ "upstream": 26,
646
+ "coreml": 26,
647
+ "max_abs_probability_error": 7.78299757975276e-10,
648
+ "max_abs_logit_error": 0.033112093806266785
649
+ },
650
+ {
651
+ "row": 66,
652
+ "label": 26,
653
+ "upstream": 26,
654
+ "coreml": 26,
655
+ "max_abs_probability_error": 6.185003176284454e-09,
656
+ "max_abs_logit_error": 0.022128582000732422
657
+ },
658
+ {
659
+ "row": 67,
660
+ "label": 26,
661
+ "upstream": 26,
662
+ "coreml": 26,
663
+ "max_abs_probability_error": 3.4556297823229443e-09,
664
+ "max_abs_logit_error": 0.038306236267089844
665
+ },
666
+ {
667
+ "row": 68,
668
+ "label": 0,
669
+ "upstream": 0,
670
+ "coreml": 0,
671
+ "max_abs_probability_error": 3.147125244140625e-05,
672
+ "max_abs_logit_error": 0.03265953063964844
673
+ },
674
+ {
675
+ "row": 69,
676
+ "label": 1,
677
+ "upstream": 1,
678
+ "coreml": 1,
679
+ "max_abs_probability_error": 5.030632019042969e-05,
680
+ "max_abs_logit_error": 0.038794517517089844
681
+ },
682
+ {
683
+ "row": 70,
684
+ "label": 2,
685
+ "upstream": 2,
686
+ "coreml": 2,
687
+ "max_abs_probability_error": 1.7881393432617188e-06,
688
+ "max_abs_logit_error": 0.040470123291015625
689
+ },
690
+ {
691
+ "row": 71,
692
+ "label": 3,
693
+ "upstream": 3,
694
+ "coreml": 3,
695
+ "max_abs_probability_error": 5.2928924560546875e-05,
696
+ "max_abs_logit_error": 0.040035247802734375
697
+ },
698
+ {
699
+ "row": 72,
700
+ "label": 5,
701
+ "upstream": 5,
702
+ "coreml": 5,
703
+ "max_abs_probability_error": 4.649162292480469e-06,
704
+ "max_abs_logit_error": 0.042186737060546875
705
+ },
706
+ {
707
+ "row": 73,
708
+ "label": 6,
709
+ "upstream": 6,
710
+ "coreml": 6,
711
+ "max_abs_probability_error": 2.1576881408691406e-05,
712
+ "max_abs_logit_error": 0.033161163330078125
713
+ },
714
+ {
715
+ "row": 74,
716
+ "label": 7,
717
+ "upstream": 7,
718
+ "coreml": 7,
719
+ "max_abs_probability_error": 4.470348358154297e-05,
720
+ "max_abs_logit_error": 0.0293731689453125
721
+ },
722
+ {
723
+ "row": 75,
724
+ "label": 8,
725
+ "upstream": 8,
726
+ "coreml": 8,
727
+ "max_abs_probability_error": 1.1563301086425781e-05,
728
+ "max_abs_logit_error": 0.03249359130859375
729
+ },
730
+ {
731
+ "row": 76,
732
+ "label": 9,
733
+ "upstream": 9,
734
+ "coreml": 9,
735
+ "max_abs_probability_error": 2.86102294921875e-06,
736
+ "max_abs_logit_error": 0.03498554229736328
737
+ },
738
+ {
739
+ "row": 77,
740
+ "label": 13,
741
+ "upstream": 13,
742
+ "coreml": 13,
743
+ "max_abs_probability_error": 0.0003635883331298828,
744
+ "max_abs_logit_error": 0.023473739624023438
745
+ },
746
+ {
747
+ "row": 78,
748
+ "label": 20,
749
+ "upstream": 20,
750
+ "coreml": 20,
751
+ "max_abs_probability_error": 9.5367431640625e-07,
752
+ "max_abs_logit_error": 0.034421443939208984
753
+ },
754
+ {
755
+ "row": 79,
756
+ "label": 18,
757
+ "upstream": 18,
758
+ "coreml": 18,
759
+ "max_abs_probability_error": 0.0003609657287597656,
760
+ "max_abs_logit_error": 0.03937721252441406
761
+ },
762
+ {
763
+ "row": 80,
764
+ "label": 18,
765
+ "upstream": 18,
766
+ "coreml": 18,
767
+ "max_abs_probability_error": 2.384185791015625e-07,
768
+ "max_abs_logit_error": 0.03752422332763672
769
+ },
770
+ {
771
+ "row": 81,
772
+ "label": 20,
773
+ "upstream": 20,
774
+ "coreml": 20,
775
+ "max_abs_probability_error": 1.7881393432617188e-06,
776
+ "max_abs_logit_error": 0.025417327880859375
777
+ },
778
+ {
779
+ "row": 82,
780
+ "label": 19,
781
+ "upstream": 19,
782
+ "coreml": 19,
783
+ "max_abs_probability_error": 2.384185791015625e-07,
784
+ "max_abs_logit_error": 0.04453086853027344
785
+ },
786
+ {
787
+ "row": 83,
788
+ "label": 20,
789
+ "upstream": 20,
790
+ "coreml": 20,
791
+ "max_abs_probability_error": 5.0942090545902374e-09,
792
+ "max_abs_logit_error": 0.023950576782226562
793
+ },
794
+ {
795
+ "row": 84,
796
+ "label": 20,
797
+ "upstream": 20,
798
+ "coreml": 20,
799
+ "max_abs_probability_error": 2.384185791015625e-07,
800
+ "max_abs_logit_error": 0.022706031799316406
801
+ },
802
+ {
803
+ "row": 85,
804
+ "label": 20,
805
+ "upstream": 20,
806
+ "coreml": 20,
807
+ "max_abs_probability_error": 3.5405053888659666e-10,
808
+ "max_abs_logit_error": 0.035375118255615234
809
+ },
810
+ {
811
+ "row": 86,
812
+ "label": 20,
813
+ "upstream": 20,
814
+ "coreml": 20,
815
+ "max_abs_probability_error": 4.76837158203125e-07,
816
+ "max_abs_logit_error": 0.03717994689941406
817
+ },
818
+ {
819
+ "row": 87,
820
+ "label": 20,
821
+ "upstream": 20,
822
+ "coreml": 20,
823
+ "max_abs_probability_error": 1.1920928955078125e-07,
824
+ "max_abs_logit_error": 0.04058122634887695
825
+ },
826
+ {
827
+ "row": 88,
828
+ "label": 20,
829
+ "upstream": 20,
830
+ "coreml": 20,
831
+ "max_abs_probability_error": 1.3188037328859537e-09,
832
+ "max_abs_logit_error": 0.032048702239990234
833
+ },
834
+ {
835
+ "row": 89,
836
+ "label": 20,
837
+ "upstream": 20,
838
+ "coreml": 20,
839
+ "max_abs_probability_error": 1.9970605169561395e-09,
840
+ "max_abs_logit_error": 0.030427932739257812
841
+ },
842
+ {
843
+ "row": 90,
844
+ "label": 20,
845
+ "upstream": 20,
846
+ "coreml": 20,
847
+ "max_abs_probability_error": 1.7617375336342889e-09,
848
+ "max_abs_logit_error": 0.0281219482421875
849
+ },
850
+ {
851
+ "row": 91,
852
+ "label": 20,
853
+ "upstream": 20,
854
+ "coreml": 20,
855
+ "max_abs_probability_error": 1.612549260787688e-10,
856
+ "max_abs_logit_error": 0.030226707458496094
857
+ },
858
+ {
859
+ "row": 92,
860
+ "label": 20,
861
+ "upstream": 20,
862
+ "coreml": 20,
863
+ "max_abs_probability_error": 6.506330630512425e-12,
864
+ "max_abs_logit_error": 0.04007530212402344
865
+ },
866
+ {
867
+ "row": 93,
868
+ "label": 20,
869
+ "upstream": 20,
870
+ "coreml": 20,
871
+ "max_abs_probability_error": 1.5150824594911683e-08,
872
+ "max_abs_logit_error": 0.02728891372680664
873
+ },
874
+ {
875
+ "row": 94,
876
+ "label": 20,
877
+ "upstream": 20,
878
+ "coreml": 20,
879
+ "max_abs_probability_error": 1.3666674458789885e-09,
880
+ "max_abs_logit_error": 0.0217437744140625
881
+ },
882
+ {
883
+ "row": 95,
884
+ "label": 20,
885
+ "upstream": 20,
886
+ "coreml": 20,
887
+ "max_abs_probability_error": 3.969476136678196e-10,
888
+ "max_abs_logit_error": 0.03214454650878906
889
+ },
890
+ {
891
+ "row": 96,
892
+ "label": 20,
893
+ "upstream": 20,
894
+ "coreml": 20,
895
+ "max_abs_probability_error": 2.657726538846106e-10,
896
+ "max_abs_logit_error": 0.03669023513793945
897
+ },
898
+ {
899
+ "row": 97,
900
+ "label": 20,
901
+ "upstream": 20,
902
+ "coreml": 20,
903
+ "max_abs_probability_error": 1.9073486328125e-06,
904
+ "max_abs_logit_error": 0.019012451171875
905
+ },
906
+ {
907
+ "row": 98,
908
+ "label": 20,
909
+ "upstream": 20,
910
+ "coreml": 20,
911
+ "max_abs_probability_error": 2.384185791015625e-07,
912
+ "max_abs_logit_error": 0.026651382446289062
913
+ },
914
+ {
915
+ "row": 99,
916
+ "label": 20,
917
+ "upstream": 20,
918
+ "coreml": 20,
919
+ "max_abs_probability_error": 2.1457672119140625e-06,
920
+ "max_abs_logit_error": 0.04161381721496582
921
+ },
922
+ {
923
+ "row": 100,
924
+ "label": 20,
925
+ "upstream": 20,
926
+ "coreml": 20,
927
+ "max_abs_probability_error": 9.5367431640625e-07,
928
+ "max_abs_logit_error": 0.04680633544921875
929
+ },
930
+ {
931
+ "row": 101,
932
+ "label": 20,
933
+ "upstream": 20,
934
+ "coreml": 20,
935
+ "max_abs_probability_error": 1.789079107084035e-08,
936
+ "max_abs_logit_error": 0.029542922973632812
937
+ },
938
+ {
939
+ "row": 102,
940
+ "label": 20,
941
+ "upstream": 20,
942
+ "coreml": 20,
943
+ "max_abs_probability_error": 2.5862225694339713e-09,
944
+ "max_abs_logit_error": 0.023795127868652344
945
+ },
946
+ {
947
+ "row": 103,
948
+ "label": 20,
949
+ "upstream": 20,
950
+ "coreml": 20,
951
+ "max_abs_probability_error": 0.00024586915969848633,
952
+ "max_abs_logit_error": 0.030111312866210938
953
+ },
954
+ {
955
+ "row": 104,
956
+ "label": 20,
957
+ "upstream": 20,
958
+ "coreml": 20,
959
+ "max_abs_probability_error": 5.841255187988281e-06,
960
+ "max_abs_logit_error": 0.03126239776611328
961
+ },
962
+ {
963
+ "row": 105,
964
+ "label": 20,
965
+ "upstream": 20,
966
+ "coreml": 20,
967
+ "max_abs_probability_error": 4.928799035575082e-10,
968
+ "max_abs_logit_error": 0.026149272918701172
969
+ },
970
+ {
971
+ "row": 106,
972
+ "label": 20,
973
+ "upstream": 20,
974
+ "coreml": 20,
975
+ "max_abs_probability_error": 2.4136979082101107e-09,
976
+ "max_abs_logit_error": 0.024585723876953125
977
+ },
978
+ {
979
+ "row": 107,
980
+ "label": 20,
981
+ "upstream": 20,
982
+ "coreml": 20,
983
+ "max_abs_probability_error": 6.302839361538304e-10,
984
+ "max_abs_logit_error": 0.024765491485595703
985
+ },
986
+ {
987
+ "row": 108,
988
+ "label": 20,
989
+ "upstream": 20,
990
+ "coreml": 20,
991
+ "max_abs_probability_error": 1.1920928955078125e-07,
992
+ "max_abs_logit_error": 0.03492164611816406
993
+ },
994
+ {
995
+ "row": 109,
996
+ "label": 20,
997
+ "upstream": 20,
998
+ "coreml": 20,
999
+ "max_abs_probability_error": 9.5367431640625e-07,
1000
+ "max_abs_logit_error": 0.034421443939208984
1001
+ },
1002
+ {
1003
+ "row": 110,
1004
+ "label": 20,
1005
+ "upstream": 20,
1006
+ "coreml": 20,
1007
+ "max_abs_probability_error": 9.5367431640625e-07,
1008
+ "max_abs_logit_error": 0.0320439338684082
1009
+ },
1010
+ {
1011
+ "row": 111,
1012
+ "label": 20,
1013
+ "upstream": 20,
1014
+ "coreml": 20,
1015
+ "max_abs_probability_error": 1.811981201171875e-05,
1016
+ "max_abs_logit_error": 0.032814979553222656
1017
+ },
1018
+ {
1019
+ "row": 112,
1020
+ "label": 20,
1021
+ "upstream": 20,
1022
+ "coreml": 20,
1023
+ "max_abs_probability_error": 1.7881393432617188e-06,
1024
+ "max_abs_logit_error": 0.025417327880859375
1025
+ },
1026
+ {
1027
+ "row": 113,
1028
+ "label": 19,
1029
+ "upstream": 19,
1030
+ "coreml": 19,
1031
+ "max_abs_probability_error": 2.384185791015625e-07,
1032
+ "max_abs_logit_error": 0.04453086853027344
1033
+ },
1034
+ {
1035
+ "row": 114,
1036
+ "label": 20,
1037
+ "upstream": 20,
1038
+ "coreml": 20,
1039
+ "max_abs_probability_error": 5.0942090545902374e-09,
1040
+ "max_abs_logit_error": 0.023950576782226562
1041
+ },
1042
+ {
1043
+ "row": 115,
1044
+ "label": 20,
1045
+ "upstream": 20,
1046
+ "coreml": 20,
1047
+ "max_abs_probability_error": 2.384185791015625e-07,
1048
+ "max_abs_logit_error": 0.022706031799316406
1049
+ },
1050
+ {
1051
+ "row": 116,
1052
+ "label": 20,
1053
+ "upstream": 20,
1054
+ "coreml": 20,
1055
+ "max_abs_probability_error": 3.5405053888659666e-10,
1056
+ "max_abs_logit_error": 0.035375118255615234
1057
+ },
1058
+ {
1059
+ "row": 117,
1060
+ "label": 20,
1061
+ "upstream": 20,
1062
+ "coreml": 20,
1063
+ "max_abs_probability_error": 4.76837158203125e-07,
1064
+ "max_abs_logit_error": 0.03717994689941406
1065
+ },
1066
+ {
1067
+ "row": 118,
1068
+ "label": 20,
1069
+ "upstream": 20,
1070
+ "coreml": 20,
1071
+ "max_abs_probability_error": 1.1920928955078125e-07,
1072
+ "max_abs_logit_error": 0.04058122634887695
1073
+ },
1074
+ {
1075
+ "row": 119,
1076
+ "label": 20,
1077
+ "upstream": 20,
1078
+ "coreml": 20,
1079
+ "max_abs_probability_error": 1.3188037328859537e-09,
1080
+ "max_abs_logit_error": 0.032048702239990234
1081
+ },
1082
+ {
1083
+ "row": 120,
1084
+ "label": 20,
1085
+ "upstream": 20,
1086
+ "coreml": 20,
1087
+ "max_abs_probability_error": 1.9970605169561395e-09,
1088
+ "max_abs_logit_error": 0.030427932739257812
1089
+ },
1090
+ {
1091
+ "row": 121,
1092
+ "label": 20,
1093
+ "upstream": 20,
1094
+ "coreml": 20,
1095
+ "max_abs_probability_error": 1.7617375336342889e-09,
1096
+ "max_abs_logit_error": 0.0281219482421875
1097
+ },
1098
+ {
1099
+ "row": 122,
1100
+ "label": 20,
1101
+ "upstream": 20,
1102
+ "coreml": 20,
1103
+ "max_abs_probability_error": 1.612549260787688e-10,
1104
+ "max_abs_logit_error": 0.030226707458496094
1105
+ },
1106
+ {
1107
+ "row": 123,
1108
+ "label": 20,
1109
+ "upstream": 20,
1110
+ "coreml": 20,
1111
+ "max_abs_probability_error": 6.506330630512425e-12,
1112
+ "max_abs_logit_error": 0.04007530212402344
1113
+ },
1114
+ {
1115
+ "row": 124,
1116
+ "label": 20,
1117
+ "upstream": 20,
1118
+ "coreml": 20,
1119
+ "max_abs_probability_error": 1.5150824594911683e-08,
1120
+ "max_abs_logit_error": 0.02728891372680664
1121
+ },
1122
+ {
1123
+ "row": 125,
1124
+ "label": 20,
1125
+ "upstream": 20,
1126
+ "coreml": 20,
1127
+ "max_abs_probability_error": 1.3666674458789885e-09,
1128
+ "max_abs_logit_error": 0.0217437744140625
1129
+ },
1130
+ {
1131
+ "row": 126,
1132
+ "label": 20,
1133
+ "upstream": 20,
1134
+ "coreml": 20,
1135
+ "max_abs_probability_error": 3.969476136678196e-10,
1136
+ "max_abs_logit_error": 0.03214454650878906
1137
+ },
1138
+ {
1139
+ "row": 127,
1140
+ "label": 20,
1141
+ "upstream": 20,
1142
+ "coreml": 20,
1143
+ "max_abs_probability_error": 2.657726538846106e-10,
1144
+ "max_abs_logit_error": 0.03669023513793945
1145
+ },
1146
+ {
1147
+ "row": 128,
1148
+ "label": 20,
1149
+ "upstream": 20,
1150
+ "coreml": 20,
1151
+ "max_abs_probability_error": 1.9073486328125e-06,
1152
+ "max_abs_logit_error": 0.019012451171875
1153
+ },
1154
+ {
1155
+ "row": 129,
1156
+ "label": 20,
1157
+ "upstream": 20,
1158
+ "coreml": 20,
1159
+ "max_abs_probability_error": 2.384185791015625e-07,
1160
+ "max_abs_logit_error": 0.026651382446289062
1161
+ },
1162
+ {
1163
+ "row": 130,
1164
+ "label": 1,
1165
+ "upstream": 1,
1166
+ "coreml": 1,
1167
+ "max_abs_probability_error": 3.170967102050781e-05,
1168
+ "max_abs_logit_error": 0.071075439453125
1169
+ },
1170
+ {
1171
+ "row": 131,
1172
+ "label": 2,
1173
+ "upstream": 2,
1174
+ "coreml": 2,
1175
+ "max_abs_probability_error": 8.344650268554688e-07,
1176
+ "max_abs_logit_error": 0.051357269287109375
1177
+ },
1178
+ {
1179
+ "row": 132,
1180
+ "label": 3,
1181
+ "upstream": 3,
1182
+ "coreml": 3,
1183
+ "max_abs_probability_error": 2.7894973754882812e-05,
1184
+ "max_abs_logit_error": 0.033801641315221786
1185
+ },
1186
+ {
1187
+ "row": 133,
1188
+ "label": 4,
1189
+ "upstream": 4,
1190
+ "coreml": 4,
1191
+ "max_abs_probability_error": 1.0967254638671875e-05,
1192
+ "max_abs_logit_error": 0.039325714111328125
1193
+ },
1194
+ {
1195
+ "row": 134,
1196
+ "label": 5,
1197
+ "upstream": 5,
1198
+ "coreml": 5,
1199
+ "max_abs_probability_error": 6.258487701416016e-05,
1200
+ "max_abs_logit_error": 0.033056676387786865
1201
+ },
1202
+ {
1203
+ "row": 135,
1204
+ "label": 6,
1205
+ "upstream": 6,
1206
+ "coreml": 6,
1207
+ "max_abs_probability_error": 1.2993812561035156e-05,
1208
+ "max_abs_logit_error": 0.02561807632446289
1209
+ },
1210
+ {
1211
+ "row": 136,
1212
+ "label": 7,
1213
+ "upstream": 7,
1214
+ "coreml": 7,
1215
+ "max_abs_probability_error": 6.198883056640625e-06,
1216
+ "max_abs_logit_error": 0.03448677062988281
1217
+ },
1218
+ {
1219
+ "row": 137,
1220
+ "label": 8,
1221
+ "upstream": 8,
1222
+ "coreml": 8,
1223
+ "max_abs_probability_error": 0.00233614444732666,
1224
+ "max_abs_logit_error": 0.04230833053588867
1225
+ },
1226
+ {
1227
+ "row": 138,
1228
+ "label": 9,
1229
+ "upstream": 9,
1230
+ "coreml": 9,
1231
+ "max_abs_probability_error": 0.00022917985916137695,
1232
+ "max_abs_logit_error": 0.05339241027832031
1233
+ },
1234
+ {
1235
+ "row": 139,
1236
+ "label": 10,
1237
+ "upstream": 10,
1238
+ "coreml": 10,
1239
+ "max_abs_probability_error": 4.851818084716797e-05,
1240
+ "max_abs_logit_error": 0.032756805419921875
1241
+ },
1242
+ {
1243
+ "row": 140,
1244
+ "label": 11,
1245
+ "upstream": 11,
1246
+ "coreml": 11,
1247
+ "max_abs_probability_error": 3.0994415283203125e-06,
1248
+ "max_abs_logit_error": 0.029809951782226562
1249
+ },
1250
+ {
1251
+ "row": 141,
1252
+ "label": 12,
1253
+ "upstream": 12,
1254
+ "coreml": 12,
1255
+ "max_abs_probability_error": 9.34600830078125e-05,
1256
+ "max_abs_logit_error": 0.026587963104248047
1257
+ },
1258
+ {
1259
+ "row": 142,
1260
+ "label": 18,
1261
+ "upstream": 18,
1262
+ "coreml": 18,
1263
+ "max_abs_probability_error": 1.9073486328125e-06,
1264
+ "max_abs_logit_error": 0.03671073913574219
1265
+ },
1266
+ {
1267
+ "row": 143,
1268
+ "label": 16,
1269
+ "upstream": 16,
1270
+ "coreml": 16,
1271
+ "max_abs_probability_error": 7.152557373046875e-07,
1272
+ "max_abs_logit_error": 0.05281543731689453
1273
+ },
1274
+ {
1275
+ "row": 144,
1276
+ "label": 18,
1277
+ "upstream": 18,
1278
+ "coreml": 18,
1279
+ "max_abs_probability_error": 1.1920928955078125e-06,
1280
+ "max_abs_logit_error": 0.04511451721191406
1281
+ },
1282
+ {
1283
+ "row": 145,
1284
+ "label": 18,
1285
+ "upstream": 18,
1286
+ "coreml": 18,
1287
+ "max_abs_probability_error": 3.6954879760742188e-06,
1288
+ "max_abs_logit_error": 0.07230281829833984
1289
+ },
1290
+ {
1291
+ "row": 146,
1292
+ "label": 17,
1293
+ "upstream": 17,
1294
+ "coreml": 17,
1295
+ "max_abs_probability_error": 1.1920928955078125e-07,
1296
+ "max_abs_logit_error": 0.03114461898803711
1297
+ },
1298
+ {
1299
+ "row": 147,
1300
+ "label": 18,
1301
+ "upstream": 18,
1302
+ "coreml": 18,
1303
+ "max_abs_probability_error": 8.429776876539563e-09,
1304
+ "max_abs_logit_error": 0.020772457122802734
1305
+ },
1306
+ {
1307
+ "row": 148,
1308
+ "label": 18,
1309
+ "upstream": 18,
1310
+ "coreml": 18,
1311
+ "max_abs_probability_error": 9.215698426601193e-09,
1312
+ "max_abs_logit_error": 0.03475606441497803
1313
+ },
1314
+ {
1315
+ "row": 149,
1316
+ "label": 18,
1317
+ "upstream": 18,
1318
+ "coreml": 18,
1319
+ "max_abs_probability_error": 3.84208304060607e-10,
1320
+ "max_abs_logit_error": 0.020298004150390625
1321
+ },
1322
+ {
1323
+ "row": 150,
1324
+ "label": 18,
1325
+ "upstream": 18,
1326
+ "coreml": 18,
1327
+ "max_abs_probability_error": 7.947568818333917e-12,
1328
+ "max_abs_logit_error": 0.04283332824707031
1329
+ },
1330
+ {
1331
+ "row": 151,
1332
+ "label": 18,
1333
+ "upstream": 18,
1334
+ "coreml": 18,
1335
+ "max_abs_probability_error": 5.291168614363073e-10,
1336
+ "max_abs_logit_error": 0.028450965881347656
1337
+ },
1338
+ {
1339
+ "row": 152,
1340
+ "label": 18,
1341
+ "upstream": 18,
1342
+ "coreml": 18,
1343
+ "max_abs_probability_error": 7.924417788629512e-10,
1344
+ "max_abs_logit_error": 0.02250051498413086
1345
+ },
1346
+ {
1347
+ "row": 153,
1348
+ "label": 18,
1349
+ "upstream": 18,
1350
+ "coreml": 18,
1351
+ "max_abs_probability_error": 1.837478791344438e-08,
1352
+ "max_abs_logit_error": 0.06335592269897461
1353
+ },
1354
+ {
1355
+ "row": 154,
1356
+ "label": 18,
1357
+ "upstream": 18,
1358
+ "coreml": 18,
1359
+ "max_abs_probability_error": 3.3051329034750054e-11,
1360
+ "max_abs_logit_error": 0.02735137939453125
1361
+ },
1362
+ {
1363
+ "row": 155,
1364
+ "label": 18,
1365
+ "upstream": 18,
1366
+ "coreml": 18,
1367
+ "max_abs_probability_error": 1.650468511860126e-10,
1368
+ "max_abs_logit_error": 0.015047073364257812
1369
+ },
1370
+ {
1371
+ "row": 156,
1372
+ "label": 18,
1373
+ "upstream": 18,
1374
+ "coreml": 18,
1375
+ "max_abs_probability_error": 6.181078218703284e-12,
1376
+ "max_abs_logit_error": 0.04868888854980469
1377
+ },
1378
+ {
1379
+ "row": 157,
1380
+ "label": 18,
1381
+ "upstream": 18,
1382
+ "coreml": 18,
1383
+ "max_abs_probability_error": 1.6455586893115992e-10,
1384
+ "max_abs_logit_error": 0.026497364044189453
1385
+ },
1386
+ {
1387
+ "row": 158,
1388
+ "label": 18,
1389
+ "upstream": 18,
1390
+ "coreml": 18,
1391
+ "max_abs_probability_error": 6.109900363426846e-10,
1392
+ "max_abs_logit_error": 0.022236347198486328
1393
+ },
1394
+ {
1395
+ "row": 159,
1396
+ "label": 18,
1397
+ "upstream": 18,
1398
+ "coreml": 18,
1399
+ "max_abs_probability_error": 6.693580800742893e-09,
1400
+ "max_abs_logit_error": 0.020044326782226562
1401
+ },
1402
+ {
1403
+ "row": 160,
1404
+ "label": 18,
1405
+ "upstream": 18,
1406
+ "coreml": 18,
1407
+ "max_abs_probability_error": 1.3718365998727222e-08,
1408
+ "max_abs_logit_error": 0.05533123016357422
1409
+ },
1410
+ {
1411
+ "row": 161,
1412
+ "label": 18,
1413
+ "upstream": 18,
1414
+ "coreml": 18,
1415
+ "max_abs_probability_error": 8.344650268554688e-07,
1416
+ "max_abs_logit_error": 0.0247042179107666
1417
+ },
1418
+ {
1419
+ "row": 162,
1420
+ "label": 18,
1421
+ "upstream": 18,
1422
+ "coreml": 18,
1423
+ "max_abs_probability_error": 1.042114572413766e-08,
1424
+ "max_abs_logit_error": 0.028873443603515625
1425
+ },
1426
+ {
1427
+ "row": 163,
1428
+ "label": 18,
1429
+ "upstream": 18,
1430
+ "coreml": 18,
1431
+ "max_abs_probability_error": 1.9131388140358752e-10,
1432
+ "max_abs_logit_error": 0.015494346618652344
1433
+ },
1434
+ {
1435
+ "row": 164,
1436
+ "label": 18,
1437
+ "upstream": 18,
1438
+ "coreml": 18,
1439
+ "max_abs_probability_error": 1.0254025184508464e-08,
1440
+ "max_abs_logit_error": 0.02497100830078125
1441
+ },
1442
+ {
1443
+ "row": 165,
1444
+ "label": 18,
1445
+ "upstream": 18,
1446
+ "coreml": 18,
1447
+ "max_abs_probability_error": 5.15840287151903e-11,
1448
+ "max_abs_logit_error": 0.02679443359375
1449
+ },
1450
+ {
1451
+ "row": 166,
1452
+ "label": 18,
1453
+ "upstream": 18,
1454
+ "coreml": 18,
1455
+ "max_abs_probability_error": 2.6797479790729994e-09,
1456
+ "max_abs_logit_error": 0.028203964233398438
1457
+ },
1458
+ {
1459
+ "row": 167,
1460
+ "label": 18,
1461
+ "upstream": 18,
1462
+ "coreml": 18,
1463
+ "max_abs_probability_error": 7.54509399403247e-10,
1464
+ "max_abs_logit_error": 0.03371429443359375
1465
+ },
1466
+ {
1467
+ "row": 168,
1468
+ "label": 18,
1469
+ "upstream": 18,
1470
+ "coreml": 18,
1471
+ "max_abs_probability_error": 8.344650268554688e-07,
1472
+ "max_abs_logit_error": 0.028280355036258698
1473
+ },
1474
+ {
1475
+ "row": 169,
1476
+ "label": 18,
1477
+ "upstream": 18,
1478
+ "coreml": 18,
1479
+ "max_abs_probability_error": 2.4169340140378637e-11,
1480
+ "max_abs_logit_error": 0.038245439529418945
1481
+ },
1482
+ {
1483
+ "row": 170,
1484
+ "label": 18,
1485
+ "upstream": 18,
1486
+ "coreml": 18,
1487
+ "max_abs_probability_error": 3.0329603412093675e-11,
1488
+ "max_abs_logit_error": 0.030043363571166992
1489
+ },
1490
+ {
1491
+ "row": 171,
1492
+ "label": 18,
1493
+ "upstream": 18,
1494
+ "coreml": 18,
1495
+ "max_abs_probability_error": 1.7881393432617188e-06,
1496
+ "max_abs_logit_error": 0.02963542938232422
1497
+ },
1498
+ {
1499
+ "row": 172,
1500
+ "label": 18,
1501
+ "upstream": 18,
1502
+ "coreml": 18,
1503
+ "max_abs_probability_error": 4.66337235494052e-09,
1504
+ "max_abs_logit_error": 0.03510093688964844
1505
+ },
1506
+ {
1507
+ "row": 173,
1508
+ "label": 18,
1509
+ "upstream": 18,
1510
+ "coreml": 18,
1511
+ "max_abs_probability_error": 1.2885730260592254e-09,
1512
+ "max_abs_logit_error": 0.04009199142456055
1513
+ },
1514
+ {
1515
+ "row": 174,
1516
+ "label": 18,
1517
+ "upstream": 18,
1518
+ "coreml": 18,
1519
+ "max_abs_probability_error": 1.1279766010119374e-09,
1520
+ "max_abs_logit_error": 0.031810760498046875
1521
+ },
1522
+ {
1523
+ "row": 175,
1524
+ "label": 18,
1525
+ "upstream": 18,
1526
+ "coreml": 18,
1527
+ "max_abs_probability_error": 1.9073486328125e-06,
1528
+ "max_abs_logit_error": 0.03671073913574219
1529
+ },
1530
+ {
1531
+ "row": 176,
1532
+ "label": 18,
1533
+ "upstream": 18,
1534
+ "coreml": 18,
1535
+ "max_abs_probability_error": 1.0728836059570312e-06,
1536
+ "max_abs_logit_error": 0.05123615264892578
1537
+ },
1538
+ {
1539
+ "row": 177,
1540
+ "label": 18,
1541
+ "upstream": 18,
1542
+ "coreml": 18,
1543
+ "max_abs_probability_error": 1.2799782567185503e-08,
1544
+ "max_abs_logit_error": 0.03157186508178711
1545
+ },
1546
+ {
1547
+ "row": 178,
1548
+ "label": 18,
1549
+ "upstream": 18,
1550
+ "coreml": 18,
1551
+ "max_abs_probability_error": 3.6954879760742188e-06,
1552
+ "max_abs_logit_error": 0.07230281829833984
1553
+ },
1554
+ {
1555
+ "row": 179,
1556
+ "label": 17,
1557
+ "upstream": 17,
1558
+ "coreml": 17,
1559
+ "max_abs_probability_error": 1.1920928955078125e-07,
1560
+ "max_abs_logit_error": 0.03114461898803711
1561
+ },
1562
+ {
1563
+ "row": 180,
1564
+ "label": 18,
1565
+ "upstream": 18,
1566
+ "coreml": 18,
1567
+ "max_abs_probability_error": 8.429776876539563e-09,
1568
+ "max_abs_logit_error": 0.020772457122802734
1569
+ },
1570
+ {
1571
+ "row": 181,
1572
+ "label": 18,
1573
+ "upstream": 18,
1574
+ "coreml": 18,
1575
+ "max_abs_probability_error": 9.215698426601193e-09,
1576
+ "max_abs_logit_error": 0.03475606441497803
1577
+ },
1578
+ {
1579
+ "row": 182,
1580
+ "label": 18,
1581
+ "upstream": 18,
1582
+ "coreml": 18,
1583
+ "max_abs_probability_error": 3.84208304060607e-10,
1584
+ "max_abs_logit_error": 0.020298004150390625
1585
+ },
1586
+ {
1587
+ "row": 183,
1588
+ "label": 18,
1589
+ "upstream": 18,
1590
+ "coreml": 18,
1591
+ "max_abs_probability_error": 7.947568818333917e-12,
1592
+ "max_abs_logit_error": 0.04283332824707031
1593
+ },
1594
+ {
1595
+ "row": 184,
1596
+ "label": 18,
1597
+ "upstream": 18,
1598
+ "coreml": 18,
1599
+ "max_abs_probability_error": 5.291168614363073e-10,
1600
+ "max_abs_logit_error": 0.028450965881347656
1601
+ },
1602
+ {
1603
+ "row": 185,
1604
+ "label": 18,
1605
+ "upstream": 18,
1606
+ "coreml": 18,
1607
+ "max_abs_probability_error": 7.924417788629512e-10,
1608
+ "max_abs_logit_error": 0.02250051498413086
1609
+ },
1610
+ {
1611
+ "row": 186,
1612
+ "label": 18,
1613
+ "upstream": 18,
1614
+ "coreml": 18,
1615
+ "max_abs_probability_error": 1.837478791344438e-08,
1616
+ "max_abs_logit_error": 0.06335592269897461
1617
+ },
1618
+ {
1619
+ "row": 187,
1620
+ "label": 18,
1621
+ "upstream": 18,
1622
+ "coreml": 18,
1623
+ "max_abs_probability_error": 3.3051329034750054e-11,
1624
+ "max_abs_logit_error": 0.02735137939453125
1625
+ },
1626
+ {
1627
+ "row": 188,
1628
+ "label": 18,
1629
+ "upstream": 18,
1630
+ "coreml": 18,
1631
+ "max_abs_probability_error": 1.650468511860126e-10,
1632
+ "max_abs_logit_error": 0.015047073364257812
1633
+ },
1634
+ {
1635
+ "row": 189,
1636
+ "label": 18,
1637
+ "upstream": 18,
1638
+ "coreml": 18,
1639
+ "max_abs_probability_error": 6.181078218703284e-12,
1640
+ "max_abs_logit_error": 0.04868888854980469
1641
+ },
1642
+ {
1643
+ "row": 190,
1644
+ "label": 18,
1645
+ "upstream": 18,
1646
+ "coreml": 18,
1647
+ "max_abs_probability_error": 1.6455586893115992e-10,
1648
+ "max_abs_logit_error": 0.026497364044189453
1649
+ },
1650
+ {
1651
+ "row": 191,
1652
+ "label": 18,
1653
+ "upstream": 18,
1654
+ "coreml": 18,
1655
+ "max_abs_probability_error": 6.109900363426846e-10,
1656
+ "max_abs_logit_error": 0.022236347198486328
1657
+ },
1658
+ {
1659
+ "row": 192,
1660
+ "label": 18,
1661
+ "upstream": 18,
1662
+ "coreml": 18,
1663
+ "max_abs_probability_error": 6.693580800742893e-09,
1664
+ "max_abs_logit_error": 0.020044326782226562
1665
+ },
1666
+ {
1667
+ "row": 193,
1668
+ "label": 18,
1669
+ "upstream": 18,
1670
+ "coreml": 18,
1671
+ "max_abs_probability_error": 1.3718365998727222e-08,
1672
+ "max_abs_logit_error": 0.05533123016357422
1673
+ },
1674
+ {
1675
+ "row": 194,
1676
+ "label": 18,
1677
+ "upstream": 18,
1678
+ "coreml": 18,
1679
+ "max_abs_probability_error": 8.344650268554688e-07,
1680
+ "max_abs_logit_error": 0.0247042179107666
1681
+ },
1682
+ {
1683
+ "row": 195,
1684
+ "label": 18,
1685
+ "upstream": 18,
1686
+ "coreml": 18,
1687
+ "max_abs_probability_error": 1.042114572413766e-08,
1688
+ "max_abs_logit_error": 0.028873443603515625
1689
+ }
1690
+ ]
1691
+ },
1692
+ "CPU_AND_NE": {
1693
+ "passed": true,
1694
+ "correct": 196,
1695
+ "accuracy": 1.0,
1696
+ "argmax_agreement": 196,
1697
+ "max_abs_probability_error": 0.00233614444732666,
1698
+ "mean_row_max_abs_probability_error": 2.934475840582507e-05,
1699
+ "max_abs_logit_error": 0.07230281829833984,
1700
+ "load_seconds": 0.578353041986702,
1701
+ "warm_inference_latency_ms": {
1702
+ "count": 196,
1703
+ "median_ms": 0.9623960067983717,
1704
+ "p95_ms": 0.9909170039463788,
1705
+ "min_ms": 0.9270830196328461,
1706
+ "max_ms": 1.0197919909842312
1707
+ },
1708
+ "reversed_option_order": {
1709
+ "rows": 6,
1710
+ "max_abs_probability_error": 3.1828880310058594e-05
1711
+ },
1712
+ "per_action": {
1713
+ "fill": {
1714
+ "rows": 36,
1715
+ "correct": 36
1716
+ },
1717
+ "skip": {
1718
+ "rows": 150,
1719
+ "correct": 150
1720
+ },
1721
+ "check": {
1722
+ "rows": 4,
1723
+ "correct": 4
1724
+ },
1725
+ "click": {
1726
+ "rows": 6,
1727
+ "correct": 6
1728
+ }
1729
+ },
1730
+ "decisions": [
1731
+ {
1732
+ "row": 0,
1733
+ "label": 22,
1734
+ "upstream": 22,
1735
+ "coreml": 22,
1736
+ "max_abs_probability_error": 3.1828880310058594e-05,
1737
+ "max_abs_logit_error": 0.03086566925048828
1738
+ },
1739
+ {
1740
+ "row": 1,
1741
+ "label": 23,
1742
+ "upstream": 23,
1743
+ "coreml": 23,
1744
+ "max_abs_probability_error": 3.814697265625e-05,
1745
+ "max_abs_logit_error": 0.020841598510742188
1746
+ },
1747
+ {
1748
+ "row": 2,
1749
+ "label": 2,
1750
+ "upstream": 2,
1751
+ "coreml": 2,
1752
+ "max_abs_probability_error": 1.1920928955078125e-07,
1753
+ "max_abs_logit_error": 0.024377822875976562
1754
+ },
1755
+ {
1756
+ "row": 3,
1757
+ "label": 5,
1758
+ "upstream": 5,
1759
+ "coreml": 5,
1760
+ "max_abs_probability_error": 3.218650817871094e-05,
1761
+ "max_abs_logit_error": 0.030775785446166992
1762
+ },
1763
+ {
1764
+ "row": 4,
1765
+ "label": 4,
1766
+ "upstream": 4,
1767
+ "coreml": 4,
1768
+ "max_abs_probability_error": 2.944469451904297e-05,
1769
+ "max_abs_logit_error": 0.03573417663574219
1770
+ },
1771
+ {
1772
+ "row": 5,
1773
+ "label": 6,
1774
+ "upstream": 6,
1775
+ "coreml": 6,
1776
+ "max_abs_probability_error": 1.2636184692382812e-05,
1777
+ "max_abs_logit_error": 0.026729822158813477
1778
+ },
1779
+ {
1780
+ "row": 6,
1781
+ "label": 7,
1782
+ "upstream": 7,
1783
+ "coreml": 7,
1784
+ "max_abs_probability_error": 2.3365020751953125e-05,
1785
+ "max_abs_logit_error": 0.023685455322265625
1786
+ },
1787
+ {
1788
+ "row": 7,
1789
+ "label": 8,
1790
+ "upstream": 8,
1791
+ "coreml": 8,
1792
+ "max_abs_probability_error": 0.00014638900756835938,
1793
+ "max_abs_logit_error": 0.04038810729980469
1794
+ },
1795
+ {
1796
+ "row": 8,
1797
+ "label": 9,
1798
+ "upstream": 9,
1799
+ "coreml": 9,
1800
+ "max_abs_probability_error": 1.1920928955078125e-06,
1801
+ "max_abs_logit_error": 0.02460002899169922
1802
+ },
1803
+ {
1804
+ "row": 9,
1805
+ "label": 10,
1806
+ "upstream": 10,
1807
+ "coreml": 10,
1808
+ "max_abs_probability_error": 2.1457672119140625e-05,
1809
+ "max_abs_logit_error": 0.018064022064208984
1810
+ },
1811
+ {
1812
+ "row": 10,
1813
+ "label": 11,
1814
+ "upstream": 11,
1815
+ "coreml": 11,
1816
+ "max_abs_probability_error": 5.960464477539062e-07,
1817
+ "max_abs_logit_error": 0.047691673040390015
1818
+ },
1819
+ {
1820
+ "row": 11,
1821
+ "label": 13,
1822
+ "upstream": 13,
1823
+ "coreml": 13,
1824
+ "max_abs_probability_error": 3.2186508178710938e-06,
1825
+ "max_abs_logit_error": 0.03340768814086914
1826
+ },
1827
+ {
1828
+ "row": 12,
1829
+ "label": 15,
1830
+ "upstream": 15,
1831
+ "coreml": 15,
1832
+ "max_abs_probability_error": 2.384185791015625e-06,
1833
+ "max_abs_logit_error": 0.053191184997558594
1834
+ },
1835
+ {
1836
+ "row": 13,
1837
+ "label": 16,
1838
+ "upstream": 16,
1839
+ "coreml": 16,
1840
+ "max_abs_probability_error": 0.0005360841751098633,
1841
+ "max_abs_logit_error": 0.03362560272216797
1842
+ },
1843
+ {
1844
+ "row": 14,
1845
+ "label": 26,
1846
+ "upstream": 26,
1847
+ "coreml": 26,
1848
+ "max_abs_probability_error": 1.8596649169921875e-05,
1849
+ "max_abs_logit_error": 0.024669170379638672
1850
+ },
1851
+ {
1852
+ "row": 15,
1853
+ "label": 24,
1854
+ "upstream": 24,
1855
+ "coreml": 24,
1856
+ "max_abs_probability_error": 1.6689300537109375e-05,
1857
+ "max_abs_logit_error": 0.034501075744628906
1858
+ },
1859
+ {
1860
+ "row": 16,
1861
+ "label": 26,
1862
+ "upstream": 26,
1863
+ "coreml": 26,
1864
+ "max_abs_probability_error": 1.440092489701783e-08,
1865
+ "max_abs_logit_error": 0.033290743827819824
1866
+ },
1867
+ {
1868
+ "row": 17,
1869
+ "label": 25,
1870
+ "upstream": 25,
1871
+ "coreml": 25,
1872
+ "max_abs_probability_error": 1.1920928955078125e-07,
1873
+ "max_abs_logit_error": 0.03323173522949219
1874
+ },
1875
+ {
1876
+ "row": 18,
1877
+ "label": 26,
1878
+ "upstream": 26,
1879
+ "coreml": 26,
1880
+ "max_abs_probability_error": 8.430758313693332e-09,
1881
+ "max_abs_logit_error": 0.022179126739501953
1882
+ },
1883
+ {
1884
+ "row": 19,
1885
+ "label": 26,
1886
+ "upstream": 26,
1887
+ "coreml": 26,
1888
+ "max_abs_probability_error": 3.0266471551243512e-09,
1889
+ "max_abs_logit_error": 0.029880523681640625
1890
+ },
1891
+ {
1892
+ "row": 20,
1893
+ "label": 26,
1894
+ "upstream": 26,
1895
+ "coreml": 26,
1896
+ "max_abs_probability_error": 2.4500966588902884e-08,
1897
+ "max_abs_logit_error": 0.031145095825195312
1898
+ },
1899
+ {
1900
+ "row": 21,
1901
+ "label": 26,
1902
+ "upstream": 26,
1903
+ "coreml": 26,
1904
+ "max_abs_probability_error": 1.647379281599637e-11,
1905
+ "max_abs_logit_error": 0.03861522674560547
1906
+ },
1907
+ {
1908
+ "row": 22,
1909
+ "label": 26,
1910
+ "upstream": 26,
1911
+ "coreml": 26,
1912
+ "max_abs_probability_error": 7.152557373046875e-07,
1913
+ "max_abs_logit_error": 0.027164459228515625
1914
+ },
1915
+ {
1916
+ "row": 23,
1917
+ "label": 26,
1918
+ "upstream": 26,
1919
+ "coreml": 26,
1920
+ "max_abs_probability_error": 5.960464477539062e-07,
1921
+ "max_abs_logit_error": 0.058716535568237305
1922
+ },
1923
+ {
1924
+ "row": 24,
1925
+ "label": 26,
1926
+ "upstream": 26,
1927
+ "coreml": 26,
1928
+ "max_abs_probability_error": 2.5055844551924444e-11,
1929
+ "max_abs_logit_error": 0.035381317138671875
1930
+ },
1931
+ {
1932
+ "row": 25,
1933
+ "label": 26,
1934
+ "upstream": 26,
1935
+ "coreml": 26,
1936
+ "max_abs_probability_error": 6.995705792434137e-09,
1937
+ "max_abs_logit_error": 0.04862499237060547
1938
+ },
1939
+ {
1940
+ "row": 26,
1941
+ "label": 26,
1942
+ "upstream": 26,
1943
+ "coreml": 26,
1944
+ "max_abs_probability_error": 6.470584068551943e-10,
1945
+ "max_abs_logit_error": 0.029034733772277832
1946
+ },
1947
+ {
1948
+ "row": 27,
1949
+ "label": 26,
1950
+ "upstream": 26,
1951
+ "coreml": 26,
1952
+ "max_abs_probability_error": 6.973024935241767e-11,
1953
+ "max_abs_logit_error": 0.03808116912841797
1954
+ },
1955
+ {
1956
+ "row": 28,
1957
+ "label": 26,
1958
+ "upstream": 26,
1959
+ "coreml": 26,
1960
+ "max_abs_probability_error": 5.994321927715873e-09,
1961
+ "max_abs_logit_error": 0.03319191932678223
1962
+ },
1963
+ {
1964
+ "row": 29,
1965
+ "label": 26,
1966
+ "upstream": 26,
1967
+ "coreml": 26,
1968
+ "max_abs_probability_error": 2.4426039316183257e-11,
1969
+ "max_abs_logit_error": 0.030045509338378906
1970
+ },
1971
+ {
1972
+ "row": 30,
1973
+ "label": 26,
1974
+ "upstream": 26,
1975
+ "coreml": 26,
1976
+ "max_abs_probability_error": 2.384185791015625e-07,
1977
+ "max_abs_logit_error": 0.026231765747070312
1978
+ },
1979
+ {
1980
+ "row": 31,
1981
+ "label": 26,
1982
+ "upstream": 26,
1983
+ "coreml": 26,
1984
+ "max_abs_probability_error": 7.78299757975276e-10,
1985
+ "max_abs_logit_error": 0.033112093806266785
1986
+ },
1987
+ {
1988
+ "row": 32,
1989
+ "label": 26,
1990
+ "upstream": 26,
1991
+ "coreml": 26,
1992
+ "max_abs_probability_error": 6.185003176284454e-09,
1993
+ "max_abs_logit_error": 0.022128582000732422
1994
+ },
1995
+ {
1996
+ "row": 33,
1997
+ "label": 26,
1998
+ "upstream": 26,
1999
+ "coreml": 26,
2000
+ "max_abs_probability_error": 3.4556297823229443e-09,
2001
+ "max_abs_logit_error": 0.038306236267089844
2002
+ },
2003
+ {
2004
+ "row": 34,
2005
+ "label": 26,
2006
+ "upstream": 26,
2007
+ "coreml": 26,
2008
+ "max_abs_probability_error": 0.0004820823669433594,
2009
+ "max_abs_logit_error": 0.032683372497558594
2010
+ },
2011
+ {
2012
+ "row": 35,
2013
+ "label": 26,
2014
+ "upstream": 26,
2015
+ "coreml": 26,
2016
+ "max_abs_probability_error": 1.462750809366753e-09,
2017
+ "max_abs_logit_error": 0.029730796813964844
2018
+ },
2019
+ {
2020
+ "row": 36,
2021
+ "label": 26,
2022
+ "upstream": 26,
2023
+ "coreml": 26,
2024
+ "max_abs_probability_error": 2.7510341227277024e-10,
2025
+ "max_abs_logit_error": 0.02333354949951172
2026
+ },
2027
+ {
2028
+ "row": 37,
2029
+ "label": 26,
2030
+ "upstream": 26,
2031
+ "coreml": 26,
2032
+ "max_abs_probability_error": 2.657592190757896e-08,
2033
+ "max_abs_logit_error": 0.022855758666992188
2034
+ },
2035
+ {
2036
+ "row": 38,
2037
+ "label": 26,
2038
+ "upstream": 26,
2039
+ "coreml": 26,
2040
+ "max_abs_probability_error": 9.552543478452691e-11,
2041
+ "max_abs_logit_error": 0.023164749145507812
2042
+ },
2043
+ {
2044
+ "row": 39,
2045
+ "label": 26,
2046
+ "upstream": 26,
2047
+ "coreml": 26,
2048
+ "max_abs_probability_error": 4.04716482549361e-10,
2049
+ "max_abs_logit_error": 0.02880859375
2050
+ },
2051
+ {
2052
+ "row": 40,
2053
+ "label": 26,
2054
+ "upstream": 26,
2055
+ "coreml": 26,
2056
+ "max_abs_probability_error": 0.00021719932556152344,
2057
+ "max_abs_logit_error": 0.04735088348388672
2058
+ },
2059
+ {
2060
+ "row": 41,
2061
+ "label": 26,
2062
+ "upstream": 26,
2063
+ "coreml": 26,
2064
+ "max_abs_probability_error": 6.146233744175333e-09,
2065
+ "max_abs_logit_error": 0.03671276569366455
2066
+ },
2067
+ {
2068
+ "row": 42,
2069
+ "label": 26,
2070
+ "upstream": 26,
2071
+ "coreml": 26,
2072
+ "max_abs_probability_error": 1.8819494851385343e-09,
2073
+ "max_abs_logit_error": 0.023815155029296875
2074
+ },
2075
+ {
2076
+ "row": 43,
2077
+ "label": 26,
2078
+ "upstream": 26,
2079
+ "coreml": 26,
2080
+ "max_abs_probability_error": 7.152557373046875e-07,
2081
+ "max_abs_logit_error": 0.02039623260498047
2082
+ },
2083
+ {
2084
+ "row": 44,
2085
+ "label": 26,
2086
+ "upstream": 26,
2087
+ "coreml": 26,
2088
+ "max_abs_probability_error": 1.780525865635596e-10,
2089
+ "max_abs_logit_error": 0.022927284240722656
2090
+ },
2091
+ {
2092
+ "row": 45,
2093
+ "label": 26,
2094
+ "upstream": 26,
2095
+ "coreml": 26,
2096
+ "max_abs_probability_error": 3.414331317674879e-11,
2097
+ "max_abs_logit_error": 0.030417919158935547
2098
+ },
2099
+ {
2100
+ "row": 46,
2101
+ "label": 26,
2102
+ "upstream": 26,
2103
+ "coreml": 26,
2104
+ "max_abs_probability_error": 5.599257724142603e-10,
2105
+ "max_abs_logit_error": 0.025608062744140625
2106
+ },
2107
+ {
2108
+ "row": 47,
2109
+ "label": 26,
2110
+ "upstream": 26,
2111
+ "coreml": 26,
2112
+ "max_abs_probability_error": 5.212314607705437e-11,
2113
+ "max_abs_logit_error": 0.022733211517333984
2114
+ },
2115
+ {
2116
+ "row": 48,
2117
+ "label": 26,
2118
+ "upstream": 26,
2119
+ "coreml": 26,
2120
+ "max_abs_probability_error": 1.8596649169921875e-05,
2121
+ "max_abs_logit_error": 0.024669170379638672
2122
+ },
2123
+ {
2124
+ "row": 49,
2125
+ "label": 26,
2126
+ "upstream": 26,
2127
+ "coreml": 26,
2128
+ "max_abs_probability_error": 1.932842080831776e-10,
2129
+ "max_abs_logit_error": 0.030317306518554688
2130
+ },
2131
+ {
2132
+ "row": 50,
2133
+ "label": 26,
2134
+ "upstream": 26,
2135
+ "coreml": 26,
2136
+ "max_abs_probability_error": 1.440092489701783e-08,
2137
+ "max_abs_logit_error": 0.033290743827819824
2138
+ },
2139
+ {
2140
+ "row": 51,
2141
+ "label": 25,
2142
+ "upstream": 25,
2143
+ "coreml": 25,
2144
+ "max_abs_probability_error": 1.1920928955078125e-07,
2145
+ "max_abs_logit_error": 0.03323173522949219
2146
+ },
2147
+ {
2148
+ "row": 52,
2149
+ "label": 26,
2150
+ "upstream": 26,
2151
+ "coreml": 26,
2152
+ "max_abs_probability_error": 8.430758313693332e-09,
2153
+ "max_abs_logit_error": 0.022179126739501953
2154
+ },
2155
+ {
2156
+ "row": 53,
2157
+ "label": 26,
2158
+ "upstream": 26,
2159
+ "coreml": 26,
2160
+ "max_abs_probability_error": 3.0266471551243512e-09,
2161
+ "max_abs_logit_error": 0.029880523681640625
2162
+ },
2163
+ {
2164
+ "row": 54,
2165
+ "label": 26,
2166
+ "upstream": 26,
2167
+ "coreml": 26,
2168
+ "max_abs_probability_error": 2.4500966588902884e-08,
2169
+ "max_abs_logit_error": 0.031145095825195312
2170
+ },
2171
+ {
2172
+ "row": 55,
2173
+ "label": 26,
2174
+ "upstream": 26,
2175
+ "coreml": 26,
2176
+ "max_abs_probability_error": 1.647379281599637e-11,
2177
+ "max_abs_logit_error": 0.03861522674560547
2178
+ },
2179
+ {
2180
+ "row": 56,
2181
+ "label": 26,
2182
+ "upstream": 26,
2183
+ "coreml": 26,
2184
+ "max_abs_probability_error": 7.152557373046875e-07,
2185
+ "max_abs_logit_error": 0.027164459228515625
2186
+ },
2187
+ {
2188
+ "row": 57,
2189
+ "label": 26,
2190
+ "upstream": 26,
2191
+ "coreml": 26,
2192
+ "max_abs_probability_error": 5.960464477539062e-07,
2193
+ "max_abs_logit_error": 0.058716535568237305
2194
+ },
2195
+ {
2196
+ "row": 58,
2197
+ "label": 26,
2198
+ "upstream": 26,
2199
+ "coreml": 26,
2200
+ "max_abs_probability_error": 2.5055844551924444e-11,
2201
+ "max_abs_logit_error": 0.035381317138671875
2202
+ },
2203
+ {
2204
+ "row": 59,
2205
+ "label": 26,
2206
+ "upstream": 26,
2207
+ "coreml": 26,
2208
+ "max_abs_probability_error": 6.995705792434137e-09,
2209
+ "max_abs_logit_error": 0.04862499237060547
2210
+ },
2211
+ {
2212
+ "row": 60,
2213
+ "label": 26,
2214
+ "upstream": 26,
2215
+ "coreml": 26,
2216
+ "max_abs_probability_error": 6.470584068551943e-10,
2217
+ "max_abs_logit_error": 0.029034733772277832
2218
+ },
2219
+ {
2220
+ "row": 61,
2221
+ "label": 26,
2222
+ "upstream": 26,
2223
+ "coreml": 26,
2224
+ "max_abs_probability_error": 6.973024935241767e-11,
2225
+ "max_abs_logit_error": 0.03808116912841797
2226
+ },
2227
+ {
2228
+ "row": 62,
2229
+ "label": 26,
2230
+ "upstream": 26,
2231
+ "coreml": 26,
2232
+ "max_abs_probability_error": 5.994321927715873e-09,
2233
+ "max_abs_logit_error": 0.03319191932678223
2234
+ },
2235
+ {
2236
+ "row": 63,
2237
+ "label": 26,
2238
+ "upstream": 26,
2239
+ "coreml": 26,
2240
+ "max_abs_probability_error": 2.4426039316183257e-11,
2241
+ "max_abs_logit_error": 0.030045509338378906
2242
+ },
2243
+ {
2244
+ "row": 64,
2245
+ "label": 26,
2246
+ "upstream": 26,
2247
+ "coreml": 26,
2248
+ "max_abs_probability_error": 2.384185791015625e-07,
2249
+ "max_abs_logit_error": 0.026231765747070312
2250
+ },
2251
+ {
2252
+ "row": 65,
2253
+ "label": 26,
2254
+ "upstream": 26,
2255
+ "coreml": 26,
2256
+ "max_abs_probability_error": 7.78299757975276e-10,
2257
+ "max_abs_logit_error": 0.033112093806266785
2258
+ },
2259
+ {
2260
+ "row": 66,
2261
+ "label": 26,
2262
+ "upstream": 26,
2263
+ "coreml": 26,
2264
+ "max_abs_probability_error": 6.185003176284454e-09,
2265
+ "max_abs_logit_error": 0.022128582000732422
2266
+ },
2267
+ {
2268
+ "row": 67,
2269
+ "label": 26,
2270
+ "upstream": 26,
2271
+ "coreml": 26,
2272
+ "max_abs_probability_error": 3.4556297823229443e-09,
2273
+ "max_abs_logit_error": 0.038306236267089844
2274
+ },
2275
+ {
2276
+ "row": 68,
2277
+ "label": 0,
2278
+ "upstream": 0,
2279
+ "coreml": 0,
2280
+ "max_abs_probability_error": 3.147125244140625e-05,
2281
+ "max_abs_logit_error": 0.03265953063964844
2282
+ },
2283
+ {
2284
+ "row": 69,
2285
+ "label": 1,
2286
+ "upstream": 1,
2287
+ "coreml": 1,
2288
+ "max_abs_probability_error": 5.030632019042969e-05,
2289
+ "max_abs_logit_error": 0.038794517517089844
2290
+ },
2291
+ {
2292
+ "row": 70,
2293
+ "label": 2,
2294
+ "upstream": 2,
2295
+ "coreml": 2,
2296
+ "max_abs_probability_error": 1.7881393432617188e-06,
2297
+ "max_abs_logit_error": 0.040470123291015625
2298
+ },
2299
+ {
2300
+ "row": 71,
2301
+ "label": 3,
2302
+ "upstream": 3,
2303
+ "coreml": 3,
2304
+ "max_abs_probability_error": 5.2928924560546875e-05,
2305
+ "max_abs_logit_error": 0.040035247802734375
2306
+ },
2307
+ {
2308
+ "row": 72,
2309
+ "label": 5,
2310
+ "upstream": 5,
2311
+ "coreml": 5,
2312
+ "max_abs_probability_error": 4.649162292480469e-06,
2313
+ "max_abs_logit_error": 0.042186737060546875
2314
+ },
2315
+ {
2316
+ "row": 73,
2317
+ "label": 6,
2318
+ "upstream": 6,
2319
+ "coreml": 6,
2320
+ "max_abs_probability_error": 2.1576881408691406e-05,
2321
+ "max_abs_logit_error": 0.033161163330078125
2322
+ },
2323
+ {
2324
+ "row": 74,
2325
+ "label": 7,
2326
+ "upstream": 7,
2327
+ "coreml": 7,
2328
+ "max_abs_probability_error": 4.470348358154297e-05,
2329
+ "max_abs_logit_error": 0.0293731689453125
2330
+ },
2331
+ {
2332
+ "row": 75,
2333
+ "label": 8,
2334
+ "upstream": 8,
2335
+ "coreml": 8,
2336
+ "max_abs_probability_error": 1.1563301086425781e-05,
2337
+ "max_abs_logit_error": 0.03249359130859375
2338
+ },
2339
+ {
2340
+ "row": 76,
2341
+ "label": 9,
2342
+ "upstream": 9,
2343
+ "coreml": 9,
2344
+ "max_abs_probability_error": 2.86102294921875e-06,
2345
+ "max_abs_logit_error": 0.03498554229736328
2346
+ },
2347
+ {
2348
+ "row": 77,
2349
+ "label": 13,
2350
+ "upstream": 13,
2351
+ "coreml": 13,
2352
+ "max_abs_probability_error": 0.0003635883331298828,
2353
+ "max_abs_logit_error": 0.023473739624023438
2354
+ },
2355
+ {
2356
+ "row": 78,
2357
+ "label": 20,
2358
+ "upstream": 20,
2359
+ "coreml": 20,
2360
+ "max_abs_probability_error": 9.5367431640625e-07,
2361
+ "max_abs_logit_error": 0.034421443939208984
2362
+ },
2363
+ {
2364
+ "row": 79,
2365
+ "label": 18,
2366
+ "upstream": 18,
2367
+ "coreml": 18,
2368
+ "max_abs_probability_error": 0.0003609657287597656,
2369
+ "max_abs_logit_error": 0.03937721252441406
2370
+ },
2371
+ {
2372
+ "row": 80,
2373
+ "label": 18,
2374
+ "upstream": 18,
2375
+ "coreml": 18,
2376
+ "max_abs_probability_error": 2.384185791015625e-07,
2377
+ "max_abs_logit_error": 0.03752422332763672
2378
+ },
2379
+ {
2380
+ "row": 81,
2381
+ "label": 20,
2382
+ "upstream": 20,
2383
+ "coreml": 20,
2384
+ "max_abs_probability_error": 1.7881393432617188e-06,
2385
+ "max_abs_logit_error": 0.025417327880859375
2386
+ },
2387
+ {
2388
+ "row": 82,
2389
+ "label": 19,
2390
+ "upstream": 19,
2391
+ "coreml": 19,
2392
+ "max_abs_probability_error": 2.384185791015625e-07,
2393
+ "max_abs_logit_error": 0.04453086853027344
2394
+ },
2395
+ {
2396
+ "row": 83,
2397
+ "label": 20,
2398
+ "upstream": 20,
2399
+ "coreml": 20,
2400
+ "max_abs_probability_error": 5.0942090545902374e-09,
2401
+ "max_abs_logit_error": 0.023950576782226562
2402
+ },
2403
+ {
2404
+ "row": 84,
2405
+ "label": 20,
2406
+ "upstream": 20,
2407
+ "coreml": 20,
2408
+ "max_abs_probability_error": 2.384185791015625e-07,
2409
+ "max_abs_logit_error": 0.022706031799316406
2410
+ },
2411
+ {
2412
+ "row": 85,
2413
+ "label": 20,
2414
+ "upstream": 20,
2415
+ "coreml": 20,
2416
+ "max_abs_probability_error": 3.5405053888659666e-10,
2417
+ "max_abs_logit_error": 0.035375118255615234
2418
+ },
2419
+ {
2420
+ "row": 86,
2421
+ "label": 20,
2422
+ "upstream": 20,
2423
+ "coreml": 20,
2424
+ "max_abs_probability_error": 4.76837158203125e-07,
2425
+ "max_abs_logit_error": 0.03717994689941406
2426
+ },
2427
+ {
2428
+ "row": 87,
2429
+ "label": 20,
2430
+ "upstream": 20,
2431
+ "coreml": 20,
2432
+ "max_abs_probability_error": 1.1920928955078125e-07,
2433
+ "max_abs_logit_error": 0.04058122634887695
2434
+ },
2435
+ {
2436
+ "row": 88,
2437
+ "label": 20,
2438
+ "upstream": 20,
2439
+ "coreml": 20,
2440
+ "max_abs_probability_error": 1.3188037328859537e-09,
2441
+ "max_abs_logit_error": 0.032048702239990234
2442
+ },
2443
+ {
2444
+ "row": 89,
2445
+ "label": 20,
2446
+ "upstream": 20,
2447
+ "coreml": 20,
2448
+ "max_abs_probability_error": 1.9970605169561395e-09,
2449
+ "max_abs_logit_error": 0.030427932739257812
2450
+ },
2451
+ {
2452
+ "row": 90,
2453
+ "label": 20,
2454
+ "upstream": 20,
2455
+ "coreml": 20,
2456
+ "max_abs_probability_error": 1.7617375336342889e-09,
2457
+ "max_abs_logit_error": 0.0281219482421875
2458
+ },
2459
+ {
2460
+ "row": 91,
2461
+ "label": 20,
2462
+ "upstream": 20,
2463
+ "coreml": 20,
2464
+ "max_abs_probability_error": 1.612549260787688e-10,
2465
+ "max_abs_logit_error": 0.030226707458496094
2466
+ },
2467
+ {
2468
+ "row": 92,
2469
+ "label": 20,
2470
+ "upstream": 20,
2471
+ "coreml": 20,
2472
+ "max_abs_probability_error": 6.506330630512425e-12,
2473
+ "max_abs_logit_error": 0.04007530212402344
2474
+ },
2475
+ {
2476
+ "row": 93,
2477
+ "label": 20,
2478
+ "upstream": 20,
2479
+ "coreml": 20,
2480
+ "max_abs_probability_error": 1.5150824594911683e-08,
2481
+ "max_abs_logit_error": 0.02728891372680664
2482
+ },
2483
+ {
2484
+ "row": 94,
2485
+ "label": 20,
2486
+ "upstream": 20,
2487
+ "coreml": 20,
2488
+ "max_abs_probability_error": 1.3666674458789885e-09,
2489
+ "max_abs_logit_error": 0.0217437744140625
2490
+ },
2491
+ {
2492
+ "row": 95,
2493
+ "label": 20,
2494
+ "upstream": 20,
2495
+ "coreml": 20,
2496
+ "max_abs_probability_error": 3.969476136678196e-10,
2497
+ "max_abs_logit_error": 0.03214454650878906
2498
+ },
2499
+ {
2500
+ "row": 96,
2501
+ "label": 20,
2502
+ "upstream": 20,
2503
+ "coreml": 20,
2504
+ "max_abs_probability_error": 2.657726538846106e-10,
2505
+ "max_abs_logit_error": 0.03669023513793945
2506
+ },
2507
+ {
2508
+ "row": 97,
2509
+ "label": 20,
2510
+ "upstream": 20,
2511
+ "coreml": 20,
2512
+ "max_abs_probability_error": 1.9073486328125e-06,
2513
+ "max_abs_logit_error": 0.019012451171875
2514
+ },
2515
+ {
2516
+ "row": 98,
2517
+ "label": 20,
2518
+ "upstream": 20,
2519
+ "coreml": 20,
2520
+ "max_abs_probability_error": 2.384185791015625e-07,
2521
+ "max_abs_logit_error": 0.026651382446289062
2522
+ },
2523
+ {
2524
+ "row": 99,
2525
+ "label": 20,
2526
+ "upstream": 20,
2527
+ "coreml": 20,
2528
+ "max_abs_probability_error": 2.1457672119140625e-06,
2529
+ "max_abs_logit_error": 0.04161381721496582
2530
+ },
2531
+ {
2532
+ "row": 100,
2533
+ "label": 20,
2534
+ "upstream": 20,
2535
+ "coreml": 20,
2536
+ "max_abs_probability_error": 9.5367431640625e-07,
2537
+ "max_abs_logit_error": 0.04680633544921875
2538
+ },
2539
+ {
2540
+ "row": 101,
2541
+ "label": 20,
2542
+ "upstream": 20,
2543
+ "coreml": 20,
2544
+ "max_abs_probability_error": 1.789079107084035e-08,
2545
+ "max_abs_logit_error": 0.029542922973632812
2546
+ },
2547
+ {
2548
+ "row": 102,
2549
+ "label": 20,
2550
+ "upstream": 20,
2551
+ "coreml": 20,
2552
+ "max_abs_probability_error": 2.5862225694339713e-09,
2553
+ "max_abs_logit_error": 0.023795127868652344
2554
+ },
2555
+ {
2556
+ "row": 103,
2557
+ "label": 20,
2558
+ "upstream": 20,
2559
+ "coreml": 20,
2560
+ "max_abs_probability_error": 0.00024586915969848633,
2561
+ "max_abs_logit_error": 0.030111312866210938
2562
+ },
2563
+ {
2564
+ "row": 104,
2565
+ "label": 20,
2566
+ "upstream": 20,
2567
+ "coreml": 20,
2568
+ "max_abs_probability_error": 5.841255187988281e-06,
2569
+ "max_abs_logit_error": 0.03126239776611328
2570
+ },
2571
+ {
2572
+ "row": 105,
2573
+ "label": 20,
2574
+ "upstream": 20,
2575
+ "coreml": 20,
2576
+ "max_abs_probability_error": 4.928799035575082e-10,
2577
+ "max_abs_logit_error": 0.026149272918701172
2578
+ },
2579
+ {
2580
+ "row": 106,
2581
+ "label": 20,
2582
+ "upstream": 20,
2583
+ "coreml": 20,
2584
+ "max_abs_probability_error": 2.4136979082101107e-09,
2585
+ "max_abs_logit_error": 0.024585723876953125
2586
+ },
2587
+ {
2588
+ "row": 107,
2589
+ "label": 20,
2590
+ "upstream": 20,
2591
+ "coreml": 20,
2592
+ "max_abs_probability_error": 6.302839361538304e-10,
2593
+ "max_abs_logit_error": 0.024765491485595703
2594
+ },
2595
+ {
2596
+ "row": 108,
2597
+ "label": 20,
2598
+ "upstream": 20,
2599
+ "coreml": 20,
2600
+ "max_abs_probability_error": 1.1920928955078125e-07,
2601
+ "max_abs_logit_error": 0.03492164611816406
2602
+ },
2603
+ {
2604
+ "row": 109,
2605
+ "label": 20,
2606
+ "upstream": 20,
2607
+ "coreml": 20,
2608
+ "max_abs_probability_error": 9.5367431640625e-07,
2609
+ "max_abs_logit_error": 0.034421443939208984
2610
+ },
2611
+ {
2612
+ "row": 110,
2613
+ "label": 20,
2614
+ "upstream": 20,
2615
+ "coreml": 20,
2616
+ "max_abs_probability_error": 9.5367431640625e-07,
2617
+ "max_abs_logit_error": 0.0320439338684082
2618
+ },
2619
+ {
2620
+ "row": 111,
2621
+ "label": 20,
2622
+ "upstream": 20,
2623
+ "coreml": 20,
2624
+ "max_abs_probability_error": 1.811981201171875e-05,
2625
+ "max_abs_logit_error": 0.032814979553222656
2626
+ },
2627
+ {
2628
+ "row": 112,
2629
+ "label": 20,
2630
+ "upstream": 20,
2631
+ "coreml": 20,
2632
+ "max_abs_probability_error": 1.7881393432617188e-06,
2633
+ "max_abs_logit_error": 0.025417327880859375
2634
+ },
2635
+ {
2636
+ "row": 113,
2637
+ "label": 19,
2638
+ "upstream": 19,
2639
+ "coreml": 19,
2640
+ "max_abs_probability_error": 2.384185791015625e-07,
2641
+ "max_abs_logit_error": 0.04453086853027344
2642
+ },
2643
+ {
2644
+ "row": 114,
2645
+ "label": 20,
2646
+ "upstream": 20,
2647
+ "coreml": 20,
2648
+ "max_abs_probability_error": 5.0942090545902374e-09,
2649
+ "max_abs_logit_error": 0.023950576782226562
2650
+ },
2651
+ {
2652
+ "row": 115,
2653
+ "label": 20,
2654
+ "upstream": 20,
2655
+ "coreml": 20,
2656
+ "max_abs_probability_error": 2.384185791015625e-07,
2657
+ "max_abs_logit_error": 0.022706031799316406
2658
+ },
2659
+ {
2660
+ "row": 116,
2661
+ "label": 20,
2662
+ "upstream": 20,
2663
+ "coreml": 20,
2664
+ "max_abs_probability_error": 3.5405053888659666e-10,
2665
+ "max_abs_logit_error": 0.035375118255615234
2666
+ },
2667
+ {
2668
+ "row": 117,
2669
+ "label": 20,
2670
+ "upstream": 20,
2671
+ "coreml": 20,
2672
+ "max_abs_probability_error": 4.76837158203125e-07,
2673
+ "max_abs_logit_error": 0.03717994689941406
2674
+ },
2675
+ {
2676
+ "row": 118,
2677
+ "label": 20,
2678
+ "upstream": 20,
2679
+ "coreml": 20,
2680
+ "max_abs_probability_error": 1.1920928955078125e-07,
2681
+ "max_abs_logit_error": 0.04058122634887695
2682
+ },
2683
+ {
2684
+ "row": 119,
2685
+ "label": 20,
2686
+ "upstream": 20,
2687
+ "coreml": 20,
2688
+ "max_abs_probability_error": 1.3188037328859537e-09,
2689
+ "max_abs_logit_error": 0.032048702239990234
2690
+ },
2691
+ {
2692
+ "row": 120,
2693
+ "label": 20,
2694
+ "upstream": 20,
2695
+ "coreml": 20,
2696
+ "max_abs_probability_error": 1.9970605169561395e-09,
2697
+ "max_abs_logit_error": 0.030427932739257812
2698
+ },
2699
+ {
2700
+ "row": 121,
2701
+ "label": 20,
2702
+ "upstream": 20,
2703
+ "coreml": 20,
2704
+ "max_abs_probability_error": 1.7617375336342889e-09,
2705
+ "max_abs_logit_error": 0.0281219482421875
2706
+ },
2707
+ {
2708
+ "row": 122,
2709
+ "label": 20,
2710
+ "upstream": 20,
2711
+ "coreml": 20,
2712
+ "max_abs_probability_error": 1.612549260787688e-10,
2713
+ "max_abs_logit_error": 0.030226707458496094
2714
+ },
2715
+ {
2716
+ "row": 123,
2717
+ "label": 20,
2718
+ "upstream": 20,
2719
+ "coreml": 20,
2720
+ "max_abs_probability_error": 6.506330630512425e-12,
2721
+ "max_abs_logit_error": 0.04007530212402344
2722
+ },
2723
+ {
2724
+ "row": 124,
2725
+ "label": 20,
2726
+ "upstream": 20,
2727
+ "coreml": 20,
2728
+ "max_abs_probability_error": 1.5150824594911683e-08,
2729
+ "max_abs_logit_error": 0.02728891372680664
2730
+ },
2731
+ {
2732
+ "row": 125,
2733
+ "label": 20,
2734
+ "upstream": 20,
2735
+ "coreml": 20,
2736
+ "max_abs_probability_error": 1.3666674458789885e-09,
2737
+ "max_abs_logit_error": 0.0217437744140625
2738
+ },
2739
+ {
2740
+ "row": 126,
2741
+ "label": 20,
2742
+ "upstream": 20,
2743
+ "coreml": 20,
2744
+ "max_abs_probability_error": 3.969476136678196e-10,
2745
+ "max_abs_logit_error": 0.03214454650878906
2746
+ },
2747
+ {
2748
+ "row": 127,
2749
+ "label": 20,
2750
+ "upstream": 20,
2751
+ "coreml": 20,
2752
+ "max_abs_probability_error": 2.657726538846106e-10,
2753
+ "max_abs_logit_error": 0.03669023513793945
2754
+ },
2755
+ {
2756
+ "row": 128,
2757
+ "label": 20,
2758
+ "upstream": 20,
2759
+ "coreml": 20,
2760
+ "max_abs_probability_error": 1.9073486328125e-06,
2761
+ "max_abs_logit_error": 0.019012451171875
2762
+ },
2763
+ {
2764
+ "row": 129,
2765
+ "label": 20,
2766
+ "upstream": 20,
2767
+ "coreml": 20,
2768
+ "max_abs_probability_error": 2.384185791015625e-07,
2769
+ "max_abs_logit_error": 0.026651382446289062
2770
+ },
2771
+ {
2772
+ "row": 130,
2773
+ "label": 1,
2774
+ "upstream": 1,
2775
+ "coreml": 1,
2776
+ "max_abs_probability_error": 3.170967102050781e-05,
2777
+ "max_abs_logit_error": 0.071075439453125
2778
+ },
2779
+ {
2780
+ "row": 131,
2781
+ "label": 2,
2782
+ "upstream": 2,
2783
+ "coreml": 2,
2784
+ "max_abs_probability_error": 8.344650268554688e-07,
2785
+ "max_abs_logit_error": 0.051357269287109375
2786
+ },
2787
+ {
2788
+ "row": 132,
2789
+ "label": 3,
2790
+ "upstream": 3,
2791
+ "coreml": 3,
2792
+ "max_abs_probability_error": 2.7894973754882812e-05,
2793
+ "max_abs_logit_error": 0.033801641315221786
2794
+ },
2795
+ {
2796
+ "row": 133,
2797
+ "label": 4,
2798
+ "upstream": 4,
2799
+ "coreml": 4,
2800
+ "max_abs_probability_error": 1.0967254638671875e-05,
2801
+ "max_abs_logit_error": 0.039325714111328125
2802
+ },
2803
+ {
2804
+ "row": 134,
2805
+ "label": 5,
2806
+ "upstream": 5,
2807
+ "coreml": 5,
2808
+ "max_abs_probability_error": 6.258487701416016e-05,
2809
+ "max_abs_logit_error": 0.033056676387786865
2810
+ },
2811
+ {
2812
+ "row": 135,
2813
+ "label": 6,
2814
+ "upstream": 6,
2815
+ "coreml": 6,
2816
+ "max_abs_probability_error": 1.2993812561035156e-05,
2817
+ "max_abs_logit_error": 0.02561807632446289
2818
+ },
2819
+ {
2820
+ "row": 136,
2821
+ "label": 7,
2822
+ "upstream": 7,
2823
+ "coreml": 7,
2824
+ "max_abs_probability_error": 6.198883056640625e-06,
2825
+ "max_abs_logit_error": 0.03448677062988281
2826
+ },
2827
+ {
2828
+ "row": 137,
2829
+ "label": 8,
2830
+ "upstream": 8,
2831
+ "coreml": 8,
2832
+ "max_abs_probability_error": 0.00233614444732666,
2833
+ "max_abs_logit_error": 0.04230833053588867
2834
+ },
2835
+ {
2836
+ "row": 138,
2837
+ "label": 9,
2838
+ "upstream": 9,
2839
+ "coreml": 9,
2840
+ "max_abs_probability_error": 0.00022917985916137695,
2841
+ "max_abs_logit_error": 0.05339241027832031
2842
+ },
2843
+ {
2844
+ "row": 139,
2845
+ "label": 10,
2846
+ "upstream": 10,
2847
+ "coreml": 10,
2848
+ "max_abs_probability_error": 4.851818084716797e-05,
2849
+ "max_abs_logit_error": 0.032756805419921875
2850
+ },
2851
+ {
2852
+ "row": 140,
2853
+ "label": 11,
2854
+ "upstream": 11,
2855
+ "coreml": 11,
2856
+ "max_abs_probability_error": 3.0994415283203125e-06,
2857
+ "max_abs_logit_error": 0.029809951782226562
2858
+ },
2859
+ {
2860
+ "row": 141,
2861
+ "label": 12,
2862
+ "upstream": 12,
2863
+ "coreml": 12,
2864
+ "max_abs_probability_error": 9.34600830078125e-05,
2865
+ "max_abs_logit_error": 0.026587963104248047
2866
+ },
2867
+ {
2868
+ "row": 142,
2869
+ "label": 18,
2870
+ "upstream": 18,
2871
+ "coreml": 18,
2872
+ "max_abs_probability_error": 1.9073486328125e-06,
2873
+ "max_abs_logit_error": 0.03671073913574219
2874
+ },
2875
+ {
2876
+ "row": 143,
2877
+ "label": 16,
2878
+ "upstream": 16,
2879
+ "coreml": 16,
2880
+ "max_abs_probability_error": 7.152557373046875e-07,
2881
+ "max_abs_logit_error": 0.05281543731689453
2882
+ },
2883
+ {
2884
+ "row": 144,
2885
+ "label": 18,
2886
+ "upstream": 18,
2887
+ "coreml": 18,
2888
+ "max_abs_probability_error": 1.1920928955078125e-06,
2889
+ "max_abs_logit_error": 0.04511451721191406
2890
+ },
2891
+ {
2892
+ "row": 145,
2893
+ "label": 18,
2894
+ "upstream": 18,
2895
+ "coreml": 18,
2896
+ "max_abs_probability_error": 3.6954879760742188e-06,
2897
+ "max_abs_logit_error": 0.07230281829833984
2898
+ },
2899
+ {
2900
+ "row": 146,
2901
+ "label": 17,
2902
+ "upstream": 17,
2903
+ "coreml": 17,
2904
+ "max_abs_probability_error": 1.1920928955078125e-07,
2905
+ "max_abs_logit_error": 0.03114461898803711
2906
+ },
2907
+ {
2908
+ "row": 147,
2909
+ "label": 18,
2910
+ "upstream": 18,
2911
+ "coreml": 18,
2912
+ "max_abs_probability_error": 8.429776876539563e-09,
2913
+ "max_abs_logit_error": 0.020772457122802734
2914
+ },
2915
+ {
2916
+ "row": 148,
2917
+ "label": 18,
2918
+ "upstream": 18,
2919
+ "coreml": 18,
2920
+ "max_abs_probability_error": 9.215698426601193e-09,
2921
+ "max_abs_logit_error": 0.03475606441497803
2922
+ },
2923
+ {
2924
+ "row": 149,
2925
+ "label": 18,
2926
+ "upstream": 18,
2927
+ "coreml": 18,
2928
+ "max_abs_probability_error": 3.84208304060607e-10,
2929
+ "max_abs_logit_error": 0.020298004150390625
2930
+ },
2931
+ {
2932
+ "row": 150,
2933
+ "label": 18,
2934
+ "upstream": 18,
2935
+ "coreml": 18,
2936
+ "max_abs_probability_error": 7.947568818333917e-12,
2937
+ "max_abs_logit_error": 0.04283332824707031
2938
+ },
2939
+ {
2940
+ "row": 151,
2941
+ "label": 18,
2942
+ "upstream": 18,
2943
+ "coreml": 18,
2944
+ "max_abs_probability_error": 5.291168614363073e-10,
2945
+ "max_abs_logit_error": 0.028450965881347656
2946
+ },
2947
+ {
2948
+ "row": 152,
2949
+ "label": 18,
2950
+ "upstream": 18,
2951
+ "coreml": 18,
2952
+ "max_abs_probability_error": 7.924417788629512e-10,
2953
+ "max_abs_logit_error": 0.02250051498413086
2954
+ },
2955
+ {
2956
+ "row": 153,
2957
+ "label": 18,
2958
+ "upstream": 18,
2959
+ "coreml": 18,
2960
+ "max_abs_probability_error": 1.837478791344438e-08,
2961
+ "max_abs_logit_error": 0.06335592269897461
2962
+ },
2963
+ {
2964
+ "row": 154,
2965
+ "label": 18,
2966
+ "upstream": 18,
2967
+ "coreml": 18,
2968
+ "max_abs_probability_error": 3.3051329034750054e-11,
2969
+ "max_abs_logit_error": 0.02735137939453125
2970
+ },
2971
+ {
2972
+ "row": 155,
2973
+ "label": 18,
2974
+ "upstream": 18,
2975
+ "coreml": 18,
2976
+ "max_abs_probability_error": 1.650468511860126e-10,
2977
+ "max_abs_logit_error": 0.015047073364257812
2978
+ },
2979
+ {
2980
+ "row": 156,
2981
+ "label": 18,
2982
+ "upstream": 18,
2983
+ "coreml": 18,
2984
+ "max_abs_probability_error": 6.181078218703284e-12,
2985
+ "max_abs_logit_error": 0.04868888854980469
2986
+ },
2987
+ {
2988
+ "row": 157,
2989
+ "label": 18,
2990
+ "upstream": 18,
2991
+ "coreml": 18,
2992
+ "max_abs_probability_error": 1.6455586893115992e-10,
2993
+ "max_abs_logit_error": 0.026497364044189453
2994
+ },
2995
+ {
2996
+ "row": 158,
2997
+ "label": 18,
2998
+ "upstream": 18,
2999
+ "coreml": 18,
3000
+ "max_abs_probability_error": 6.109900363426846e-10,
3001
+ "max_abs_logit_error": 0.022236347198486328
3002
+ },
3003
+ {
3004
+ "row": 159,
3005
+ "label": 18,
3006
+ "upstream": 18,
3007
+ "coreml": 18,
3008
+ "max_abs_probability_error": 6.693580800742893e-09,
3009
+ "max_abs_logit_error": 0.020044326782226562
3010
+ },
3011
+ {
3012
+ "row": 160,
3013
+ "label": 18,
3014
+ "upstream": 18,
3015
+ "coreml": 18,
3016
+ "max_abs_probability_error": 1.3718365998727222e-08,
3017
+ "max_abs_logit_error": 0.05533123016357422
3018
+ },
3019
+ {
3020
+ "row": 161,
3021
+ "label": 18,
3022
+ "upstream": 18,
3023
+ "coreml": 18,
3024
+ "max_abs_probability_error": 8.344650268554688e-07,
3025
+ "max_abs_logit_error": 0.0247042179107666
3026
+ },
3027
+ {
3028
+ "row": 162,
3029
+ "label": 18,
3030
+ "upstream": 18,
3031
+ "coreml": 18,
3032
+ "max_abs_probability_error": 1.042114572413766e-08,
3033
+ "max_abs_logit_error": 0.028873443603515625
3034
+ },
3035
+ {
3036
+ "row": 163,
3037
+ "label": 18,
3038
+ "upstream": 18,
3039
+ "coreml": 18,
3040
+ "max_abs_probability_error": 1.9131388140358752e-10,
3041
+ "max_abs_logit_error": 0.015494346618652344
3042
+ },
3043
+ {
3044
+ "row": 164,
3045
+ "label": 18,
3046
+ "upstream": 18,
3047
+ "coreml": 18,
3048
+ "max_abs_probability_error": 1.0254025184508464e-08,
3049
+ "max_abs_logit_error": 0.02497100830078125
3050
+ },
3051
+ {
3052
+ "row": 165,
3053
+ "label": 18,
3054
+ "upstream": 18,
3055
+ "coreml": 18,
3056
+ "max_abs_probability_error": 5.15840287151903e-11,
3057
+ "max_abs_logit_error": 0.02679443359375
3058
+ },
3059
+ {
3060
+ "row": 166,
3061
+ "label": 18,
3062
+ "upstream": 18,
3063
+ "coreml": 18,
3064
+ "max_abs_probability_error": 2.6797479790729994e-09,
3065
+ "max_abs_logit_error": 0.028203964233398438
3066
+ },
3067
+ {
3068
+ "row": 167,
3069
+ "label": 18,
3070
+ "upstream": 18,
3071
+ "coreml": 18,
3072
+ "max_abs_probability_error": 7.54509399403247e-10,
3073
+ "max_abs_logit_error": 0.03371429443359375
3074
+ },
3075
+ {
3076
+ "row": 168,
3077
+ "label": 18,
3078
+ "upstream": 18,
3079
+ "coreml": 18,
3080
+ "max_abs_probability_error": 8.344650268554688e-07,
3081
+ "max_abs_logit_error": 0.028280355036258698
3082
+ },
3083
+ {
3084
+ "row": 169,
3085
+ "label": 18,
3086
+ "upstream": 18,
3087
+ "coreml": 18,
3088
+ "max_abs_probability_error": 2.4169340140378637e-11,
3089
+ "max_abs_logit_error": 0.038245439529418945
3090
+ },
3091
+ {
3092
+ "row": 170,
3093
+ "label": 18,
3094
+ "upstream": 18,
3095
+ "coreml": 18,
3096
+ "max_abs_probability_error": 3.0329603412093675e-11,
3097
+ "max_abs_logit_error": 0.030043363571166992
3098
+ },
3099
+ {
3100
+ "row": 171,
3101
+ "label": 18,
3102
+ "upstream": 18,
3103
+ "coreml": 18,
3104
+ "max_abs_probability_error": 1.7881393432617188e-06,
3105
+ "max_abs_logit_error": 0.02963542938232422
3106
+ },
3107
+ {
3108
+ "row": 172,
3109
+ "label": 18,
3110
+ "upstream": 18,
3111
+ "coreml": 18,
3112
+ "max_abs_probability_error": 4.66337235494052e-09,
3113
+ "max_abs_logit_error": 0.03510093688964844
3114
+ },
3115
+ {
3116
+ "row": 173,
3117
+ "label": 18,
3118
+ "upstream": 18,
3119
+ "coreml": 18,
3120
+ "max_abs_probability_error": 1.2885730260592254e-09,
3121
+ "max_abs_logit_error": 0.04009199142456055
3122
+ },
3123
+ {
3124
+ "row": 174,
3125
+ "label": 18,
3126
+ "upstream": 18,
3127
+ "coreml": 18,
3128
+ "max_abs_probability_error": 1.1279766010119374e-09,
3129
+ "max_abs_logit_error": 0.031810760498046875
3130
+ },
3131
+ {
3132
+ "row": 175,
3133
+ "label": 18,
3134
+ "upstream": 18,
3135
+ "coreml": 18,
3136
+ "max_abs_probability_error": 1.9073486328125e-06,
3137
+ "max_abs_logit_error": 0.03671073913574219
3138
+ },
3139
+ {
3140
+ "row": 176,
3141
+ "label": 18,
3142
+ "upstream": 18,
3143
+ "coreml": 18,
3144
+ "max_abs_probability_error": 1.0728836059570312e-06,
3145
+ "max_abs_logit_error": 0.05123615264892578
3146
+ },
3147
+ {
3148
+ "row": 177,
3149
+ "label": 18,
3150
+ "upstream": 18,
3151
+ "coreml": 18,
3152
+ "max_abs_probability_error": 1.2799782567185503e-08,
3153
+ "max_abs_logit_error": 0.03157186508178711
3154
+ },
3155
+ {
3156
+ "row": 178,
3157
+ "label": 18,
3158
+ "upstream": 18,
3159
+ "coreml": 18,
3160
+ "max_abs_probability_error": 3.6954879760742188e-06,
3161
+ "max_abs_logit_error": 0.07230281829833984
3162
+ },
3163
+ {
3164
+ "row": 179,
3165
+ "label": 17,
3166
+ "upstream": 17,
3167
+ "coreml": 17,
3168
+ "max_abs_probability_error": 1.1920928955078125e-07,
3169
+ "max_abs_logit_error": 0.03114461898803711
3170
+ },
3171
+ {
3172
+ "row": 180,
3173
+ "label": 18,
3174
+ "upstream": 18,
3175
+ "coreml": 18,
3176
+ "max_abs_probability_error": 8.429776876539563e-09,
3177
+ "max_abs_logit_error": 0.020772457122802734
3178
+ },
3179
+ {
3180
+ "row": 181,
3181
+ "label": 18,
3182
+ "upstream": 18,
3183
+ "coreml": 18,
3184
+ "max_abs_probability_error": 9.215698426601193e-09,
3185
+ "max_abs_logit_error": 0.03475606441497803
3186
+ },
3187
+ {
3188
+ "row": 182,
3189
+ "label": 18,
3190
+ "upstream": 18,
3191
+ "coreml": 18,
3192
+ "max_abs_probability_error": 3.84208304060607e-10,
3193
+ "max_abs_logit_error": 0.020298004150390625
3194
+ },
3195
+ {
3196
+ "row": 183,
3197
+ "label": 18,
3198
+ "upstream": 18,
3199
+ "coreml": 18,
3200
+ "max_abs_probability_error": 7.947568818333917e-12,
3201
+ "max_abs_logit_error": 0.04283332824707031
3202
+ },
3203
+ {
3204
+ "row": 184,
3205
+ "label": 18,
3206
+ "upstream": 18,
3207
+ "coreml": 18,
3208
+ "max_abs_probability_error": 5.291168614363073e-10,
3209
+ "max_abs_logit_error": 0.028450965881347656
3210
+ },
3211
+ {
3212
+ "row": 185,
3213
+ "label": 18,
3214
+ "upstream": 18,
3215
+ "coreml": 18,
3216
+ "max_abs_probability_error": 7.924417788629512e-10,
3217
+ "max_abs_logit_error": 0.02250051498413086
3218
+ },
3219
+ {
3220
+ "row": 186,
3221
+ "label": 18,
3222
+ "upstream": 18,
3223
+ "coreml": 18,
3224
+ "max_abs_probability_error": 1.837478791344438e-08,
3225
+ "max_abs_logit_error": 0.06335592269897461
3226
+ },
3227
+ {
3228
+ "row": 187,
3229
+ "label": 18,
3230
+ "upstream": 18,
3231
+ "coreml": 18,
3232
+ "max_abs_probability_error": 3.3051329034750054e-11,
3233
+ "max_abs_logit_error": 0.02735137939453125
3234
+ },
3235
+ {
3236
+ "row": 188,
3237
+ "label": 18,
3238
+ "upstream": 18,
3239
+ "coreml": 18,
3240
+ "max_abs_probability_error": 1.650468511860126e-10,
3241
+ "max_abs_logit_error": 0.015047073364257812
3242
+ },
3243
+ {
3244
+ "row": 189,
3245
+ "label": 18,
3246
+ "upstream": 18,
3247
+ "coreml": 18,
3248
+ "max_abs_probability_error": 6.181078218703284e-12,
3249
+ "max_abs_logit_error": 0.04868888854980469
3250
+ },
3251
+ {
3252
+ "row": 190,
3253
+ "label": 18,
3254
+ "upstream": 18,
3255
+ "coreml": 18,
3256
+ "max_abs_probability_error": 1.6455586893115992e-10,
3257
+ "max_abs_logit_error": 0.026497364044189453
3258
+ },
3259
+ {
3260
+ "row": 191,
3261
+ "label": 18,
3262
+ "upstream": 18,
3263
+ "coreml": 18,
3264
+ "max_abs_probability_error": 6.109900363426846e-10,
3265
+ "max_abs_logit_error": 0.022236347198486328
3266
+ },
3267
+ {
3268
+ "row": 192,
3269
+ "label": 18,
3270
+ "upstream": 18,
3271
+ "coreml": 18,
3272
+ "max_abs_probability_error": 6.693580800742893e-09,
3273
+ "max_abs_logit_error": 0.020044326782226562
3274
+ },
3275
+ {
3276
+ "row": 193,
3277
+ "label": 18,
3278
+ "upstream": 18,
3279
+ "coreml": 18,
3280
+ "max_abs_probability_error": 1.3718365998727222e-08,
3281
+ "max_abs_logit_error": 0.05533123016357422
3282
+ },
3283
+ {
3284
+ "row": 194,
3285
+ "label": 18,
3286
+ "upstream": 18,
3287
+ "coreml": 18,
3288
+ "max_abs_probability_error": 8.344650268554688e-07,
3289
+ "max_abs_logit_error": 0.0247042179107666
3290
+ },
3291
+ {
3292
+ "row": 195,
3293
+ "label": 18,
3294
+ "upstream": 18,
3295
+ "coreml": 18,
3296
+ "max_abs_probability_error": 1.042114572413766e-08,
3297
+ "max_abs_logit_error": 0.028873443603515625
3298
+ }
3299
+ ]
3300
+ }
3301
+ },
3302
+ "passed": true,
3303
+ "code_sha256": {
3304
+ "ane_gather.py": "c3379a3797041dcfed82eaaea3990771ec91f1dff7ec146b025988ad7a8c9aae",
3305
+ "assets.py": "f7a5bc931075237e00c73bf21fee3575be35531f934f23b5e22627d50a79f92f",
3306
+ "convert-coreml.py": "46fe0194df924033126286e601214b6789f5d667aae38c153cf4dbc1b0e629b0",
3307
+ "export-reference.py": "ff9eab4d6e4e72ffaf074d82610f41fbea1e802da7c0e987ce562a89eb561b99",
3308
+ "export_model.py": "c61da5d678c77030d1e9a78359626063ea31da46fb6434e49517fdeaa7800949",
3309
+ "preprocessing.py": "18c74ede43f95f91cd638c7e9631923a353e3a24d3b522ddb8b18b480f9c2846",
3310
+ "profile-coreml.py": "d5e1386f54fc6c482647120e593e7ffbbe4bbb277c2cc6d4949154660fe239fd",
3311
+ "score-report.py": "c78e45caa86fb59f9a56ef18cc6a35020ea6e281a6a23d23618f56da85a0d95e",
3312
+ "verify.py": "bc20ec9df47708e9b48e411076abe4eab7c18313f67e11334de2d9e3ecb3efa7"
3313
+ }
3314
+ }
reports/ane-profile.json ADDED
The diff for this file is too large to render. See raw diff
 
reports/browser-validation.json ADDED
The diff for this file is too large to render. See raw diff
 
reports/int4-demo-verification.json ADDED
@@ -0,0 +1,1799 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "purpose": "Local conversion parity on the upstream demo; not a generalization or live GUI benchmark",
3
+ "created_utc": "2026-09-19T22:25:44.244422+00:00",
4
+ "model_revision": "f54adbf447f4ca6ec259f529ee3f2e3e09f8cc71",
5
+ "source_revision": "83f142c4290a0f7d9ed545ae8532858c6e4f8145",
6
+ "dataset_revision": "8273f34778b99ac2e12d9f6e7d57dad99ae20845",
7
+ "dataset_file": "demo.jsonl",
8
+ "dataset_sha256": "4f43b442e79ba2e2ce731e27e9b8e340c2b5dfcaffc92d8ff564c34f115ff1ca",
9
+ "conversion": {
10
+ "model": "cua_s1_forms_int4_options32.mlpackage",
11
+ "precision": "int4_weights_float16_compute",
12
+ "minimum_target": "iOS18/macOS15",
13
+ "limits": {
14
+ "context_bytes": 224,
15
+ "option_bytes": 96,
16
+ "max_options": 32
17
+ },
18
+ "model_config": {
19
+ "context_tokens": 224,
20
+ "encoder": "tinyx",
21
+ "heads": 4,
22
+ "hf_model": "Qwen/Qwen2.5-0.5B",
23
+ "layers": 2,
24
+ "option_tokens": 96,
25
+ "rank": 128,
26
+ "width": 128
27
+ },
28
+ "parameters": 706048,
29
+ "assets_lock_sha256": "8e65ad70af6bb814b571cdcfe828ba4bc339147da2d2211cbeac416163ef18ba",
30
+ "model_revision": "f54adbf447f4ca6ec259f529ee3f2e3e09f8cc71",
31
+ "source_revision": "83f142c4290a0f7d9ed545ae8532858c6e4f8145",
32
+ "trace_row": 0,
33
+ "trace_dataset_revision": "8273f34778b99ac2e12d9f6e7d57dad99ae20845",
34
+ "export_seconds": 0.5374167499830946,
35
+ "python": "3.11.11",
36
+ "torch": "2.7.0",
37
+ "coremltools": "9.0",
38
+ "package_files": {
39
+ "Data/com.apple.CoreML/model.mlmodel": "cadad6bfa6875383a7ee3de68d0d22871148aa21cf117e7fe44c2c971287c4e5",
40
+ "Data/com.apple.CoreML/weights/weight.bin": "0f766fcb9dbd612ed4f6c7a40117a5993a4789b3ae94afba0df37193c831f63c",
41
+ "Manifest.json": "fb91c8b5ec3168111567de663bb3140d2790c6e7c48f32e0df3f5135af0673af"
42
+ },
43
+ "target_upgrade": {
44
+ "source_conversion_sha256": "ac94239751ceb7e19602eb7276940ff53446b1776d4900405af9be0382fe4a94",
45
+ "source_package_files": {
46
+ "Data/com.apple.CoreML/model.mlmodel": "70485fc18cbb21785df833cbddddc0b5b59acb00d22394b76e55307e2c135dd0",
47
+ "Data/com.apple.CoreML/weights/weight.bin": "4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895",
48
+ "Manifest.json": "2bc0f5f62337b27fb6b0ecde248f1e3dc269e1ba4b65516aaeede2a60e293dcc"
49
+ },
50
+ "method": "Load original MIL at specification 9; empty pass pipeline; retain decomposed attention",
51
+ "operation_counts": {
52
+ "add": 13,
53
+ "cast": 11,
54
+ "concat": 2,
55
+ "const": 239,
56
+ "equal": 2,
57
+ "expand_dims": 5,
58
+ "fill_like": 3,
59
+ "gather": 2,
60
+ "greater_equal": 2,
61
+ "layer_norm": 8,
62
+ "linear": 15,
63
+ "logical_not": 2,
64
+ "matmul": 8,
65
+ "maximum": 1,
66
+ "mul": 7,
67
+ "not_equal": 3,
68
+ "real_div": 1,
69
+ "reduce_sum": 3,
70
+ "relu": 3,
71
+ "reshape": 31,
72
+ "select": 7,
73
+ "slice_by_index": 13,
74
+ "softmax": 5,
75
+ "squeeze": 3,
76
+ "tile": 2,
77
+ "transpose": 21
78
+ },
79
+ "script_sha256": "33db3295450428d90c1de5a804ab47bf3507c686fbbdef67cd276ce116758b5f"
80
+ },
81
+ "quantization": {
82
+ "name": "int4-weights",
83
+ "settings": {
84
+ "mode": "linear_symmetric",
85
+ "dtype": "int4",
86
+ "granularity": "per_channel",
87
+ "weight_threshold": 2048
88
+ },
89
+ "activations": "float16",
90
+ "calibration": "None; weight-only, data-free quantization",
91
+ "source_conversion_sha256": "01105dc8bef7a30fc3430e150caa2a143dc0ba23a295b6280de3b8ff3b40af55",
92
+ "source_package_files": {
93
+ "Data/com.apple.CoreML/model.mlmodel": "6ab2df320df7081480b76876df0f4bfd2c841592d93f354c568ba504f7269627",
94
+ "Data/com.apple.CoreML/weights/weight.bin": "4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895",
95
+ "Manifest.json": "e5b1c7dc66b2014b3985c180a75548a709788c6e314d9d2ae14e4e6d441c3c68"
96
+ },
97
+ "source_package_bytes": 1511080,
98
+ "package_bytes": 451595,
99
+ "compression_seconds": 0.2996572910051327,
100
+ "packed_int4_tensors": 19,
101
+ "operation_counts": {
102
+ "add": 15,
103
+ "cast": 13,
104
+ "concat": 2,
105
+ "const": 226,
106
+ "constexpr_blockwise_shift_scale": 19,
107
+ "equal": 2,
108
+ "expand_dims": 5,
109
+ "fill_like": 3,
110
+ "gather": 2,
111
+ "greater_equal": 4,
112
+ "layer_norm": 8,
113
+ "linear": 15,
114
+ "logical_not": 2,
115
+ "matmul": 8,
116
+ "maximum": 1,
117
+ "mul": 7,
118
+ "not_equal": 3,
119
+ "real_div": 1,
120
+ "reduce_sum": 3,
121
+ "relu": 3,
122
+ "reshape": 31,
123
+ "select": 9,
124
+ "slice_by_index": 13,
125
+ "softmax": 5,
126
+ "squeeze": 3,
127
+ "tile": 2,
128
+ "transpose": 21
129
+ },
130
+ "script_sha256": "a91636e539d8934253b5e7628ca706346fbee538fa1aa9e3eaf794f440d49dcc"
131
+ }
132
+ },
133
+ "environment": {
134
+ "machine": "Apple M5 Pro",
135
+ "os": "27.0",
136
+ "python": "3.11.11",
137
+ "torch": "2.7.0",
138
+ "coremltools": "9.0",
139
+ "torch_cpu_threads": 2
140
+ },
141
+ "rows": 196,
142
+ "upstream": {
143
+ "correct": 196,
144
+ "accuracy": 1.0,
145
+ "inference_latency_ms": {
146
+ "count": 196,
147
+ "median_ms": 2.3931670002639294,
148
+ "p95_ms": 3.033687506103888,
149
+ "min_ms": 1.7705829814076424,
150
+ "max_ms": 3.819000005023554
151
+ }
152
+ },
153
+ "export_adapter_fp32": {
154
+ "argmax_agreement": 196,
155
+ "max_abs_probability_error": 1.1324882507324219e-06
156
+ },
157
+ "host_preprocessing_latency_ms": {
158
+ "count": 196,
159
+ "median_ms": 0.02962502185255289,
160
+ "p95_ms": 0.038823003706056625,
161
+ "min_ms": 0.024125009076669812,
162
+ "max_ms": 0.06787499296478927
163
+ },
164
+ "thresholds": {
165
+ "argmax_agreement": 1.0,
166
+ "max_abs_probability_error": 0.005,
167
+ "export_adapter_max_abs_probability_error": 0.0001,
168
+ "allow_accuracy_loss": false
169
+ },
170
+ "backends": {
171
+ "CPU_AND_NE": {
172
+ "passed": false,
173
+ "correct": 196,
174
+ "accuracy": 1.0,
175
+ "argmax_agreement": 196,
176
+ "max_abs_probability_error": 0.20076976716518402,
177
+ "mean_row_max_abs_probability_error": 0.0011279110022456198,
178
+ "max_abs_logit_error": 6.7208967208862305,
179
+ "load_seconds": 0.6122147499991115,
180
+ "warm_inference_latency_ms": {
181
+ "count": 196,
182
+ "median_ms": 0.9312290058005601,
183
+ "p95_ms": 1.0691460047382861,
184
+ "min_ms": 0.8852920145727694,
185
+ "max_ms": 1.2105409987270832
186
+ },
187
+ "reversed_option_order": {
188
+ "rows": 6,
189
+ "max_abs_probability_error": 6.0313243011478335e-05
190
+ },
191
+ "per_action": {
192
+ "fill": {
193
+ "rows": 36,
194
+ "correct": 36
195
+ },
196
+ "skip": {
197
+ "rows": 150,
198
+ "correct": 150
199
+ },
200
+ "check": {
201
+ "rows": 4,
202
+ "correct": 4
203
+ },
204
+ "click": {
205
+ "rows": 6,
206
+ "correct": 6
207
+ }
208
+ },
209
+ "decisions": [
210
+ {
211
+ "row": 0,
212
+ "label": 22,
213
+ "upstream": 22,
214
+ "coreml": 22,
215
+ "max_abs_probability_error": 6.0313243011478335e-05,
216
+ "max_abs_logit_error": 2.864961624145508
217
+ },
218
+ {
219
+ "row": 1,
220
+ "label": 23,
221
+ "upstream": 23,
222
+ "coreml": 23,
223
+ "max_abs_probability_error": 3.814697265625e-05,
224
+ "max_abs_logit_error": 3.1371307373046875
225
+ },
226
+ {
227
+ "row": 2,
228
+ "label": 2,
229
+ "upstream": 2,
230
+ "coreml": 2,
231
+ "max_abs_probability_error": 1.1920928955078125e-07,
232
+ "max_abs_logit_error": 2.247527599334717
233
+ },
234
+ {
235
+ "row": 3,
236
+ "label": 5,
237
+ "upstream": 5,
238
+ "coreml": 5,
239
+ "max_abs_probability_error": 0.00022571229783352464,
240
+ "max_abs_logit_error": 4.824214935302734
241
+ },
242
+ {
243
+ "row": 4,
244
+ "label": 4,
245
+ "upstream": 4,
246
+ "coreml": 4,
247
+ "max_abs_probability_error": 3.3578715374460444e-05,
248
+ "max_abs_logit_error": 3.618511438369751
249
+ },
250
+ {
251
+ "row": 5,
252
+ "label": 6,
253
+ "upstream": 6,
254
+ "coreml": 6,
255
+ "max_abs_probability_error": 6.828465848229825e-05,
256
+ "max_abs_logit_error": 3.7253708839416504
257
+ },
258
+ {
259
+ "row": 6,
260
+ "label": 7,
261
+ "upstream": 7,
262
+ "coreml": 7,
263
+ "max_abs_probability_error": 2.3365020751953125e-05,
264
+ "max_abs_logit_error": 2.4195241928100586
265
+ },
266
+ {
267
+ "row": 7,
268
+ "label": 8,
269
+ "upstream": 8,
270
+ "coreml": 8,
271
+ "max_abs_probability_error": 0.004736423492431641,
272
+ "max_abs_logit_error": 3.612703323364258
273
+ },
274
+ {
275
+ "row": 8,
276
+ "label": 9,
277
+ "upstream": 9,
278
+ "coreml": 9,
279
+ "max_abs_probability_error": 1.1920928955078125e-06,
280
+ "max_abs_logit_error": 3.931535482406616
281
+ },
282
+ {
283
+ "row": 9,
284
+ "label": 10,
285
+ "upstream": 10,
286
+ "coreml": 10,
287
+ "max_abs_probability_error": 2.1457672119140625e-05,
288
+ "max_abs_logit_error": 3.5902247428894043
289
+ },
290
+ {
291
+ "row": 10,
292
+ "label": 11,
293
+ "upstream": 11,
294
+ "coreml": 11,
295
+ "max_abs_probability_error": 9.810033816393116e-07,
296
+ "max_abs_logit_error": 4.762610912322998
297
+ },
298
+ {
299
+ "row": 11,
300
+ "label": 13,
301
+ "upstream": 13,
302
+ "coreml": 13,
303
+ "max_abs_probability_error": 4.136032657697797e-06,
304
+ "max_abs_logit_error": 3.376967430114746
305
+ },
306
+ {
307
+ "row": 12,
308
+ "label": 15,
309
+ "upstream": 15,
310
+ "coreml": 15,
311
+ "max_abs_probability_error": 3.272867388659506e-06,
312
+ "max_abs_logit_error": 2.41459059715271
313
+ },
314
+ {
315
+ "row": 13,
316
+ "label": 16,
317
+ "upstream": 16,
318
+ "coreml": 16,
319
+ "max_abs_probability_error": 0.006299853324890137,
320
+ "max_abs_logit_error": 2.80385684967041
321
+ },
322
+ {
323
+ "row": 14,
324
+ "label": 26,
325
+ "upstream": 26,
326
+ "coreml": 26,
327
+ "max_abs_probability_error": 7.480397471226752e-05,
328
+ "max_abs_logit_error": 2.1806278228759766
329
+ },
330
+ {
331
+ "row": 15,
332
+ "label": 24,
333
+ "upstream": 24,
334
+ "coreml": 24,
335
+ "max_abs_probability_error": 1.6689300537109375e-05,
336
+ "max_abs_logit_error": 1.947547435760498
337
+ },
338
+ {
339
+ "row": 16,
340
+ "label": 26,
341
+ "upstream": 26,
342
+ "coreml": 26,
343
+ "max_abs_probability_error": 4.5203719878372794e-08,
344
+ "max_abs_logit_error": 3.743783950805664
345
+ },
346
+ {
347
+ "row": 17,
348
+ "label": 25,
349
+ "upstream": 25,
350
+ "coreml": 25,
351
+ "max_abs_probability_error": 5.519996193470433e-06,
352
+ "max_abs_logit_error": 3.9063854217529297
353
+ },
354
+ {
355
+ "row": 18,
356
+ "label": 26,
357
+ "upstream": 26,
358
+ "coreml": 26,
359
+ "max_abs_probability_error": 8.430758313693332e-09,
360
+ "max_abs_logit_error": 1.3515470027923584
361
+ },
362
+ {
363
+ "row": 19,
364
+ "label": 26,
365
+ "upstream": 26,
366
+ "coreml": 26,
367
+ "max_abs_probability_error": 3.0266471551243512e-09,
368
+ "max_abs_logit_error": 3.501469850540161
369
+ },
370
+ {
371
+ "row": 20,
372
+ "label": 26,
373
+ "upstream": 26,
374
+ "coreml": 26,
375
+ "max_abs_probability_error": 2.4500966588902884e-08,
376
+ "max_abs_logit_error": 3.2016849517822266
377
+ },
378
+ {
379
+ "row": 21,
380
+ "label": 26,
381
+ "upstream": 26,
382
+ "coreml": 26,
383
+ "max_abs_probability_error": 1.647379281599637e-11,
384
+ "max_abs_logit_error": 2.692106246948242
385
+ },
386
+ {
387
+ "row": 22,
388
+ "label": 26,
389
+ "upstream": 26,
390
+ "coreml": 26,
391
+ "max_abs_probability_error": 7.152557373046875e-07,
392
+ "max_abs_logit_error": 2.046893835067749
393
+ },
394
+ {
395
+ "row": 23,
396
+ "label": 26,
397
+ "upstream": 26,
398
+ "coreml": 26,
399
+ "max_abs_probability_error": 5.960464477539062e-07,
400
+ "max_abs_logit_error": 4.133575439453125
401
+ },
402
+ {
403
+ "row": 24,
404
+ "label": 26,
405
+ "upstream": 26,
406
+ "coreml": 26,
407
+ "max_abs_probability_error": 2.5055844551924444e-11,
408
+ "max_abs_logit_error": 2.4618735313415527
409
+ },
410
+ {
411
+ "row": 25,
412
+ "label": 26,
413
+ "upstream": 26,
414
+ "coreml": 26,
415
+ "max_abs_probability_error": 6.995705792434137e-09,
416
+ "max_abs_logit_error": 3.3376502990722656
417
+ },
418
+ {
419
+ "row": 26,
420
+ "label": 26,
421
+ "upstream": 26,
422
+ "coreml": 26,
423
+ "max_abs_probability_error": 6.470584068551943e-10,
424
+ "max_abs_logit_error": 2.2433438301086426
425
+ },
426
+ {
427
+ "row": 27,
428
+ "label": 26,
429
+ "upstream": 26,
430
+ "coreml": 26,
431
+ "max_abs_probability_error": 6.973024935241767e-11,
432
+ "max_abs_logit_error": 2.810356616973877
433
+ },
434
+ {
435
+ "row": 28,
436
+ "label": 26,
437
+ "upstream": 26,
438
+ "coreml": 26,
439
+ "max_abs_probability_error": 5.994321927715873e-09,
440
+ "max_abs_logit_error": 3.7122511863708496
441
+ },
442
+ {
443
+ "row": 29,
444
+ "label": 26,
445
+ "upstream": 26,
446
+ "coreml": 26,
447
+ "max_abs_probability_error": 2.4426039316183257e-11,
448
+ "max_abs_logit_error": 2.806028366088867
449
+ },
450
+ {
451
+ "row": 30,
452
+ "label": 26,
453
+ "upstream": 26,
454
+ "coreml": 26,
455
+ "max_abs_probability_error": 2.498983349141781e-07,
456
+ "max_abs_logit_error": 2.376333236694336
457
+ },
458
+ {
459
+ "row": 31,
460
+ "label": 26,
461
+ "upstream": 26,
462
+ "coreml": 26,
463
+ "max_abs_probability_error": 7.78299757975276e-10,
464
+ "max_abs_logit_error": 2.9533097743988037
465
+ },
466
+ {
467
+ "row": 32,
468
+ "label": 26,
469
+ "upstream": 26,
470
+ "coreml": 26,
471
+ "max_abs_probability_error": 6.185003176284454e-09,
472
+ "max_abs_logit_error": 2.1958632469177246
473
+ },
474
+ {
475
+ "row": 33,
476
+ "label": 26,
477
+ "upstream": 26,
478
+ "coreml": 26,
479
+ "max_abs_probability_error": 3.4556297823229443e-09,
480
+ "max_abs_logit_error": 3.4985671043395996
481
+ },
482
+ {
483
+ "row": 34,
484
+ "label": 26,
485
+ "upstream": 26,
486
+ "coreml": 26,
487
+ "max_abs_probability_error": 0.0004820823669433594,
488
+ "max_abs_logit_error": 3.9588379859924316
489
+ },
490
+ {
491
+ "row": 35,
492
+ "label": 26,
493
+ "upstream": 26,
494
+ "coreml": 26,
495
+ "max_abs_probability_error": 1.462750809366753e-09,
496
+ "max_abs_logit_error": 2.490422248840332
497
+ },
498
+ {
499
+ "row": 36,
500
+ "label": 26,
501
+ "upstream": 26,
502
+ "coreml": 26,
503
+ "max_abs_probability_error": 2.7510341227277024e-10,
504
+ "max_abs_logit_error": 1.6093449592590332
505
+ },
506
+ {
507
+ "row": 37,
508
+ "label": 26,
509
+ "upstream": 26,
510
+ "coreml": 26,
511
+ "max_abs_probability_error": 3.74394488744656e-08,
512
+ "max_abs_logit_error": 1.8185267448425293
513
+ },
514
+ {
515
+ "row": 38,
516
+ "label": 26,
517
+ "upstream": 26,
518
+ "coreml": 26,
519
+ "max_abs_probability_error": 9.552543478452691e-11,
520
+ "max_abs_logit_error": 2.2058591842651367
521
+ },
522
+ {
523
+ "row": 39,
524
+ "label": 26,
525
+ "upstream": 26,
526
+ "coreml": 26,
527
+ "max_abs_probability_error": 4.04716482549361e-10,
528
+ "max_abs_logit_error": 2.799337863922119
529
+ },
530
+ {
531
+ "row": 40,
532
+ "label": 26,
533
+ "upstream": 26,
534
+ "coreml": 26,
535
+ "max_abs_probability_error": 0.0019283411093056202,
536
+ "max_abs_logit_error": 3.8344945907592773
537
+ },
538
+ {
539
+ "row": 41,
540
+ "label": 26,
541
+ "upstream": 26,
542
+ "coreml": 26,
543
+ "max_abs_probability_error": 5.345841103121529e-08,
544
+ "max_abs_logit_error": 2.8801822662353516
545
+ },
546
+ {
547
+ "row": 42,
548
+ "label": 26,
549
+ "upstream": 26,
550
+ "coreml": 26,
551
+ "max_abs_probability_error": 1.8819494851385343e-09,
552
+ "max_abs_logit_error": 1.621840476989746
553
+ },
554
+ {
555
+ "row": 43,
556
+ "label": 26,
557
+ "upstream": 26,
558
+ "coreml": 26,
559
+ "max_abs_probability_error": 7.152557373046875e-07,
560
+ "max_abs_logit_error": 2.8215017318725586
561
+ },
562
+ {
563
+ "row": 44,
564
+ "label": 26,
565
+ "upstream": 26,
566
+ "coreml": 26,
567
+ "max_abs_probability_error": 1.780525865635596e-10,
568
+ "max_abs_logit_error": 1.614362359046936
569
+ },
570
+ {
571
+ "row": 45,
572
+ "label": 26,
573
+ "upstream": 26,
574
+ "coreml": 26,
575
+ "max_abs_probability_error": 3.414331317674879e-11,
576
+ "max_abs_logit_error": 1.6064977645874023
577
+ },
578
+ {
579
+ "row": 46,
580
+ "label": 26,
581
+ "upstream": 26,
582
+ "coreml": 26,
583
+ "max_abs_probability_error": 5.599257724142603e-10,
584
+ "max_abs_logit_error": 1.4032363891601562
585
+ },
586
+ {
587
+ "row": 47,
588
+ "label": 26,
589
+ "upstream": 26,
590
+ "coreml": 26,
591
+ "max_abs_probability_error": 5.212314607705437e-11,
592
+ "max_abs_logit_error": 1.6732616424560547
593
+ },
594
+ {
595
+ "row": 48,
596
+ "label": 26,
597
+ "upstream": 26,
598
+ "coreml": 26,
599
+ "max_abs_probability_error": 7.480397471226752e-05,
600
+ "max_abs_logit_error": 2.1806278228759766
601
+ },
602
+ {
603
+ "row": 49,
604
+ "label": 26,
605
+ "upstream": 26,
606
+ "coreml": 26,
607
+ "max_abs_probability_error": 1.932842080831776e-10,
608
+ "max_abs_logit_error": 1.8353347778320312
609
+ },
610
+ {
611
+ "row": 50,
612
+ "label": 26,
613
+ "upstream": 26,
614
+ "coreml": 26,
615
+ "max_abs_probability_error": 4.5203719878372794e-08,
616
+ "max_abs_logit_error": 3.743783950805664
617
+ },
618
+ {
619
+ "row": 51,
620
+ "label": 25,
621
+ "upstream": 25,
622
+ "coreml": 25,
623
+ "max_abs_probability_error": 5.519996193470433e-06,
624
+ "max_abs_logit_error": 3.9063854217529297
625
+ },
626
+ {
627
+ "row": 52,
628
+ "label": 26,
629
+ "upstream": 26,
630
+ "coreml": 26,
631
+ "max_abs_probability_error": 8.430758313693332e-09,
632
+ "max_abs_logit_error": 1.3515470027923584
633
+ },
634
+ {
635
+ "row": 53,
636
+ "label": 26,
637
+ "upstream": 26,
638
+ "coreml": 26,
639
+ "max_abs_probability_error": 3.0266471551243512e-09,
640
+ "max_abs_logit_error": 3.501469850540161
641
+ },
642
+ {
643
+ "row": 54,
644
+ "label": 26,
645
+ "upstream": 26,
646
+ "coreml": 26,
647
+ "max_abs_probability_error": 2.4500966588902884e-08,
648
+ "max_abs_logit_error": 3.2016849517822266
649
+ },
650
+ {
651
+ "row": 55,
652
+ "label": 26,
653
+ "upstream": 26,
654
+ "coreml": 26,
655
+ "max_abs_probability_error": 1.647379281599637e-11,
656
+ "max_abs_logit_error": 2.692106246948242
657
+ },
658
+ {
659
+ "row": 56,
660
+ "label": 26,
661
+ "upstream": 26,
662
+ "coreml": 26,
663
+ "max_abs_probability_error": 7.152557373046875e-07,
664
+ "max_abs_logit_error": 2.046893835067749
665
+ },
666
+ {
667
+ "row": 57,
668
+ "label": 26,
669
+ "upstream": 26,
670
+ "coreml": 26,
671
+ "max_abs_probability_error": 5.960464477539062e-07,
672
+ "max_abs_logit_error": 4.133575439453125
673
+ },
674
+ {
675
+ "row": 58,
676
+ "label": 26,
677
+ "upstream": 26,
678
+ "coreml": 26,
679
+ "max_abs_probability_error": 2.5055844551924444e-11,
680
+ "max_abs_logit_error": 2.4618735313415527
681
+ },
682
+ {
683
+ "row": 59,
684
+ "label": 26,
685
+ "upstream": 26,
686
+ "coreml": 26,
687
+ "max_abs_probability_error": 6.995705792434137e-09,
688
+ "max_abs_logit_error": 3.3376502990722656
689
+ },
690
+ {
691
+ "row": 60,
692
+ "label": 26,
693
+ "upstream": 26,
694
+ "coreml": 26,
695
+ "max_abs_probability_error": 6.470584068551943e-10,
696
+ "max_abs_logit_error": 2.2433438301086426
697
+ },
698
+ {
699
+ "row": 61,
700
+ "label": 26,
701
+ "upstream": 26,
702
+ "coreml": 26,
703
+ "max_abs_probability_error": 6.973024935241767e-11,
704
+ "max_abs_logit_error": 2.810356616973877
705
+ },
706
+ {
707
+ "row": 62,
708
+ "label": 26,
709
+ "upstream": 26,
710
+ "coreml": 26,
711
+ "max_abs_probability_error": 5.994321927715873e-09,
712
+ "max_abs_logit_error": 3.7122511863708496
713
+ },
714
+ {
715
+ "row": 63,
716
+ "label": 26,
717
+ "upstream": 26,
718
+ "coreml": 26,
719
+ "max_abs_probability_error": 2.4426039316183257e-11,
720
+ "max_abs_logit_error": 2.806028366088867
721
+ },
722
+ {
723
+ "row": 64,
724
+ "label": 26,
725
+ "upstream": 26,
726
+ "coreml": 26,
727
+ "max_abs_probability_error": 2.498983349141781e-07,
728
+ "max_abs_logit_error": 2.376333236694336
729
+ },
730
+ {
731
+ "row": 65,
732
+ "label": 26,
733
+ "upstream": 26,
734
+ "coreml": 26,
735
+ "max_abs_probability_error": 7.78299757975276e-10,
736
+ "max_abs_logit_error": 2.9533097743988037
737
+ },
738
+ {
739
+ "row": 66,
740
+ "label": 26,
741
+ "upstream": 26,
742
+ "coreml": 26,
743
+ "max_abs_probability_error": 6.185003176284454e-09,
744
+ "max_abs_logit_error": 2.1958632469177246
745
+ },
746
+ {
747
+ "row": 67,
748
+ "label": 26,
749
+ "upstream": 26,
750
+ "coreml": 26,
751
+ "max_abs_probability_error": 3.4556297823229443e-09,
752
+ "max_abs_logit_error": 3.4985671043395996
753
+ },
754
+ {
755
+ "row": 68,
756
+ "label": 0,
757
+ "upstream": 0,
758
+ "coreml": 0,
759
+ "max_abs_probability_error": 0.00011065257422160357,
760
+ "max_abs_logit_error": 2.1242733001708984
761
+ },
762
+ {
763
+ "row": 69,
764
+ "label": 1,
765
+ "upstream": 1,
766
+ "coreml": 1,
767
+ "max_abs_probability_error": 5.5948574299691245e-05,
768
+ "max_abs_logit_error": 4.156556606292725
769
+ },
770
+ {
771
+ "row": 70,
772
+ "label": 2,
773
+ "upstream": 2,
774
+ "coreml": 2,
775
+ "max_abs_probability_error": 3.2760276553744916e-06,
776
+ "max_abs_logit_error": 4.688884735107422
777
+ },
778
+ {
779
+ "row": 71,
780
+ "label": 3,
781
+ "upstream": 3,
782
+ "coreml": 3,
783
+ "max_abs_probability_error": 5.781622166978195e-05,
784
+ "max_abs_logit_error": 2.7651166915893555
785
+ },
786
+ {
787
+ "row": 72,
788
+ "label": 5,
789
+ "upstream": 5,
790
+ "coreml": 5,
791
+ "max_abs_probability_error": 1.0177071089856327e-05,
792
+ "max_abs_logit_error": 2.8724193572998047
793
+ },
794
+ {
795
+ "row": 73,
796
+ "label": 6,
797
+ "upstream": 6,
798
+ "coreml": 6,
799
+ "max_abs_probability_error": 2.4447179384878837e-05,
800
+ "max_abs_logit_error": 2.4996681213378906
801
+ },
802
+ {
803
+ "row": 74,
804
+ "label": 7,
805
+ "upstream": 7,
806
+ "coreml": 7,
807
+ "max_abs_probability_error": 4.470348358154297e-05,
808
+ "max_abs_logit_error": 6.7208967208862305
809
+ },
810
+ {
811
+ "row": 75,
812
+ "label": 8,
813
+ "upstream": 8,
814
+ "coreml": 8,
815
+ "max_abs_probability_error": 3.379677946213633e-05,
816
+ "max_abs_logit_error": 5.287045478820801
817
+ },
818
+ {
819
+ "row": 76,
820
+ "label": 9,
821
+ "upstream": 9,
822
+ "coreml": 9,
823
+ "max_abs_probability_error": 4.347872618382098e-06,
824
+ "max_abs_logit_error": 3.2474308013916016
825
+ },
826
+ {
827
+ "row": 77,
828
+ "label": 13,
829
+ "upstream": 13,
830
+ "coreml": 13,
831
+ "max_abs_probability_error": 0.0006129741668701172,
832
+ "max_abs_logit_error": 4.197287559509277
833
+ },
834
+ {
835
+ "row": 78,
836
+ "label": 20,
837
+ "upstream": 20,
838
+ "coreml": 20,
839
+ "max_abs_probability_error": 2.0681543446698925e-06,
840
+ "max_abs_logit_error": 2.6077210903167725
841
+ },
842
+ {
843
+ "row": 79,
844
+ "label": 18,
845
+ "upstream": 18,
846
+ "coreml": 18,
847
+ "max_abs_probability_error": 0.0035958904772996902,
848
+ "max_abs_logit_error": 1.8085737228393555
849
+ },
850
+ {
851
+ "row": 80,
852
+ "label": 18,
853
+ "upstream": 18,
854
+ "coreml": 18,
855
+ "max_abs_probability_error": 1.3343336604521028e-06,
856
+ "max_abs_logit_error": 1.546478271484375
857
+ },
858
+ {
859
+ "row": 81,
860
+ "label": 20,
861
+ "upstream": 20,
862
+ "coreml": 20,
863
+ "max_abs_probability_error": 1.7881393432617188e-06,
864
+ "max_abs_logit_error": 1.7384634017944336
865
+ },
866
+ {
867
+ "row": 82,
868
+ "label": 19,
869
+ "upstream": 19,
870
+ "coreml": 19,
871
+ "max_abs_probability_error": 6.477808369709237e-07,
872
+ "max_abs_logit_error": 2.3306055068969727
873
+ },
874
+ {
875
+ "row": 83,
876
+ "label": 20,
877
+ "upstream": 20,
878
+ "coreml": 20,
879
+ "max_abs_probability_error": 5.0942090545902374e-09,
880
+ "max_abs_logit_error": 1.5485305786132812
881
+ },
882
+ {
883
+ "row": 84,
884
+ "label": 20,
885
+ "upstream": 20,
886
+ "coreml": 20,
887
+ "max_abs_probability_error": 2.384185791015625e-07,
888
+ "max_abs_logit_error": 1.5241689682006836
889
+ },
890
+ {
891
+ "row": 85,
892
+ "label": 20,
893
+ "upstream": 20,
894
+ "coreml": 20,
895
+ "max_abs_probability_error": 3.5405053888659666e-10,
896
+ "max_abs_logit_error": 2.1916251182556152
897
+ },
898
+ {
899
+ "row": 86,
900
+ "label": 20,
901
+ "upstream": 20,
902
+ "coreml": 20,
903
+ "max_abs_probability_error": 5.236582296674896e-07,
904
+ "max_abs_logit_error": 3.8295583724975586
905
+ },
906
+ {
907
+ "row": 87,
908
+ "label": 20,
909
+ "upstream": 20,
910
+ "coreml": 20,
911
+ "max_abs_probability_error": 1.1920928955078125e-07,
912
+ "max_abs_logit_error": 3.709770679473877
913
+ },
914
+ {
915
+ "row": 88,
916
+ "label": 20,
917
+ "upstream": 20,
918
+ "coreml": 20,
919
+ "max_abs_probability_error": 1.3188037328859537e-09,
920
+ "max_abs_logit_error": 3.0971665382385254
921
+ },
922
+ {
923
+ "row": 89,
924
+ "label": 20,
925
+ "upstream": 20,
926
+ "coreml": 20,
927
+ "max_abs_probability_error": 1.9970605169561395e-09,
928
+ "max_abs_logit_error": 4.972865104675293
929
+ },
930
+ {
931
+ "row": 90,
932
+ "label": 20,
933
+ "upstream": 20,
934
+ "coreml": 20,
935
+ "max_abs_probability_error": 1.7617375336342889e-09,
936
+ "max_abs_logit_error": 1.8527463674545288
937
+ },
938
+ {
939
+ "row": 91,
940
+ "label": 20,
941
+ "upstream": 20,
942
+ "coreml": 20,
943
+ "max_abs_probability_error": 1.612549260787688e-10,
944
+ "max_abs_logit_error": 2.7531187534332275
945
+ },
946
+ {
947
+ "row": 92,
948
+ "label": 20,
949
+ "upstream": 20,
950
+ "coreml": 20,
951
+ "max_abs_probability_error": 6.506330630512425e-12,
952
+ "max_abs_logit_error": 3.0166378021240234
953
+ },
954
+ {
955
+ "row": 93,
956
+ "label": 20,
957
+ "upstream": 20,
958
+ "coreml": 20,
959
+ "max_abs_probability_error": 1.5150824594911683e-08,
960
+ "max_abs_logit_error": 3.1289987564086914
961
+ },
962
+ {
963
+ "row": 94,
964
+ "label": 20,
965
+ "upstream": 20,
966
+ "coreml": 20,
967
+ "max_abs_probability_error": 1.3666674458789885e-09,
968
+ "max_abs_logit_error": 1.6400773525238037
969
+ },
970
+ {
971
+ "row": 95,
972
+ "label": 20,
973
+ "upstream": 20,
974
+ "coreml": 20,
975
+ "max_abs_probability_error": 3.969476136678196e-10,
976
+ "max_abs_logit_error": 1.7170515060424805
977
+ },
978
+ {
979
+ "row": 96,
980
+ "label": 20,
981
+ "upstream": 20,
982
+ "coreml": 20,
983
+ "max_abs_probability_error": 2.657726538846106e-10,
984
+ "max_abs_logit_error": 2.2562785148620605
985
+ },
986
+ {
987
+ "row": 97,
988
+ "label": 20,
989
+ "upstream": 20,
990
+ "coreml": 20,
991
+ "max_abs_probability_error": 1.9073486328125e-06,
992
+ "max_abs_logit_error": 1.4498934745788574
993
+ },
994
+ {
995
+ "row": 98,
996
+ "label": 20,
997
+ "upstream": 20,
998
+ "coreml": 20,
999
+ "max_abs_probability_error": 2.384185791015625e-07,
1000
+ "max_abs_logit_error": 2.764932632446289
1001
+ },
1002
+ {
1003
+ "row": 99,
1004
+ "label": 20,
1005
+ "upstream": 20,
1006
+ "coreml": 20,
1007
+ "max_abs_probability_error": 2.352701585550676e-06,
1008
+ "max_abs_logit_error": 3.0918569564819336
1009
+ },
1010
+ {
1011
+ "row": 100,
1012
+ "label": 20,
1013
+ "upstream": 20,
1014
+ "coreml": 20,
1015
+ "max_abs_probability_error": 9.5367431640625e-07,
1016
+ "max_abs_logit_error": 2.7188186645507812
1017
+ },
1018
+ {
1019
+ "row": 101,
1020
+ "label": 20,
1021
+ "upstream": 20,
1022
+ "coreml": 20,
1023
+ "max_abs_probability_error": 4.1713853704550274e-08,
1024
+ "max_abs_logit_error": 1.6199064254760742
1025
+ },
1026
+ {
1027
+ "row": 102,
1028
+ "label": 20,
1029
+ "upstream": 20,
1030
+ "coreml": 20,
1031
+ "max_abs_probability_error": 2.5862225694339713e-09,
1032
+ "max_abs_logit_error": 4.226329803466797
1033
+ },
1034
+ {
1035
+ "row": 103,
1036
+ "label": 20,
1037
+ "upstream": 20,
1038
+ "coreml": 20,
1039
+ "max_abs_probability_error": 0.00024586915969848633,
1040
+ "max_abs_logit_error": 2.840273380279541
1041
+ },
1042
+ {
1043
+ "row": 104,
1044
+ "label": 20,
1045
+ "upstream": 20,
1046
+ "coreml": 20,
1047
+ "max_abs_probability_error": 5.841255187988281e-06,
1048
+ "max_abs_logit_error": 3.6580047607421875
1049
+ },
1050
+ {
1051
+ "row": 105,
1052
+ "label": 20,
1053
+ "upstream": 20,
1054
+ "coreml": 20,
1055
+ "max_abs_probability_error": 2.3792570402747515e-07,
1056
+ "max_abs_logit_error": 6.307399272918701
1057
+ },
1058
+ {
1059
+ "row": 106,
1060
+ "label": 20,
1061
+ "upstream": 20,
1062
+ "coreml": 20,
1063
+ "max_abs_probability_error": 2.4136979082101107e-09,
1064
+ "max_abs_logit_error": 1.3745036125183105
1065
+ },
1066
+ {
1067
+ "row": 107,
1068
+ "label": 20,
1069
+ "upstream": 20,
1070
+ "coreml": 20,
1071
+ "max_abs_probability_error": 6.302839361538304e-10,
1072
+ "max_abs_logit_error": 1.8023838996887207
1073
+ },
1074
+ {
1075
+ "row": 108,
1076
+ "label": 20,
1077
+ "upstream": 20,
1078
+ "coreml": 20,
1079
+ "max_abs_probability_error": 1.1920928955078125e-07,
1080
+ "max_abs_logit_error": 3.241445541381836
1081
+ },
1082
+ {
1083
+ "row": 109,
1084
+ "label": 20,
1085
+ "upstream": 20,
1086
+ "coreml": 20,
1087
+ "max_abs_probability_error": 2.0681543446698925e-06,
1088
+ "max_abs_logit_error": 2.6077210903167725
1089
+ },
1090
+ {
1091
+ "row": 110,
1092
+ "label": 20,
1093
+ "upstream": 20,
1094
+ "coreml": 20,
1095
+ "max_abs_probability_error": 9.5367431640625e-07,
1096
+ "max_abs_logit_error": 2.4543886184692383
1097
+ },
1098
+ {
1099
+ "row": 111,
1100
+ "label": 20,
1101
+ "upstream": 20,
1102
+ "coreml": 20,
1103
+ "max_abs_probability_error": 1.811981201171875e-05,
1104
+ "max_abs_logit_error": 1.956678867340088
1105
+ },
1106
+ {
1107
+ "row": 112,
1108
+ "label": 20,
1109
+ "upstream": 20,
1110
+ "coreml": 20,
1111
+ "max_abs_probability_error": 1.7881393432617188e-06,
1112
+ "max_abs_logit_error": 1.7384634017944336
1113
+ },
1114
+ {
1115
+ "row": 113,
1116
+ "label": 19,
1117
+ "upstream": 19,
1118
+ "coreml": 19,
1119
+ "max_abs_probability_error": 6.477808369709237e-07,
1120
+ "max_abs_logit_error": 2.3306055068969727
1121
+ },
1122
+ {
1123
+ "row": 114,
1124
+ "label": 20,
1125
+ "upstream": 20,
1126
+ "coreml": 20,
1127
+ "max_abs_probability_error": 5.0942090545902374e-09,
1128
+ "max_abs_logit_error": 1.5485305786132812
1129
+ },
1130
+ {
1131
+ "row": 115,
1132
+ "label": 20,
1133
+ "upstream": 20,
1134
+ "coreml": 20,
1135
+ "max_abs_probability_error": 2.384185791015625e-07,
1136
+ "max_abs_logit_error": 1.5241689682006836
1137
+ },
1138
+ {
1139
+ "row": 116,
1140
+ "label": 20,
1141
+ "upstream": 20,
1142
+ "coreml": 20,
1143
+ "max_abs_probability_error": 3.5405053888659666e-10,
1144
+ "max_abs_logit_error": 2.1916251182556152
1145
+ },
1146
+ {
1147
+ "row": 117,
1148
+ "label": 20,
1149
+ "upstream": 20,
1150
+ "coreml": 20,
1151
+ "max_abs_probability_error": 5.236582296674896e-07,
1152
+ "max_abs_logit_error": 3.8295583724975586
1153
+ },
1154
+ {
1155
+ "row": 118,
1156
+ "label": 20,
1157
+ "upstream": 20,
1158
+ "coreml": 20,
1159
+ "max_abs_probability_error": 1.1920928955078125e-07,
1160
+ "max_abs_logit_error": 3.709770679473877
1161
+ },
1162
+ {
1163
+ "row": 119,
1164
+ "label": 20,
1165
+ "upstream": 20,
1166
+ "coreml": 20,
1167
+ "max_abs_probability_error": 1.3188037328859537e-09,
1168
+ "max_abs_logit_error": 3.0971665382385254
1169
+ },
1170
+ {
1171
+ "row": 120,
1172
+ "label": 20,
1173
+ "upstream": 20,
1174
+ "coreml": 20,
1175
+ "max_abs_probability_error": 1.9970605169561395e-09,
1176
+ "max_abs_logit_error": 4.972865104675293
1177
+ },
1178
+ {
1179
+ "row": 121,
1180
+ "label": 20,
1181
+ "upstream": 20,
1182
+ "coreml": 20,
1183
+ "max_abs_probability_error": 1.7617375336342889e-09,
1184
+ "max_abs_logit_error": 1.8527463674545288
1185
+ },
1186
+ {
1187
+ "row": 122,
1188
+ "label": 20,
1189
+ "upstream": 20,
1190
+ "coreml": 20,
1191
+ "max_abs_probability_error": 1.612549260787688e-10,
1192
+ "max_abs_logit_error": 2.7531187534332275
1193
+ },
1194
+ {
1195
+ "row": 123,
1196
+ "label": 20,
1197
+ "upstream": 20,
1198
+ "coreml": 20,
1199
+ "max_abs_probability_error": 6.506330630512425e-12,
1200
+ "max_abs_logit_error": 3.0166378021240234
1201
+ },
1202
+ {
1203
+ "row": 124,
1204
+ "label": 20,
1205
+ "upstream": 20,
1206
+ "coreml": 20,
1207
+ "max_abs_probability_error": 1.5150824594911683e-08,
1208
+ "max_abs_logit_error": 3.1289987564086914
1209
+ },
1210
+ {
1211
+ "row": 125,
1212
+ "label": 20,
1213
+ "upstream": 20,
1214
+ "coreml": 20,
1215
+ "max_abs_probability_error": 1.3666674458789885e-09,
1216
+ "max_abs_logit_error": 1.6400773525238037
1217
+ },
1218
+ {
1219
+ "row": 126,
1220
+ "label": 20,
1221
+ "upstream": 20,
1222
+ "coreml": 20,
1223
+ "max_abs_probability_error": 3.969476136678196e-10,
1224
+ "max_abs_logit_error": 1.7170515060424805
1225
+ },
1226
+ {
1227
+ "row": 127,
1228
+ "label": 20,
1229
+ "upstream": 20,
1230
+ "coreml": 20,
1231
+ "max_abs_probability_error": 2.657726538846106e-10,
1232
+ "max_abs_logit_error": 2.2562785148620605
1233
+ },
1234
+ {
1235
+ "row": 128,
1236
+ "label": 20,
1237
+ "upstream": 20,
1238
+ "coreml": 20,
1239
+ "max_abs_probability_error": 1.9073486328125e-06,
1240
+ "max_abs_logit_error": 1.4498934745788574
1241
+ },
1242
+ {
1243
+ "row": 129,
1244
+ "label": 20,
1245
+ "upstream": 20,
1246
+ "coreml": 20,
1247
+ "max_abs_probability_error": 2.384185791015625e-07,
1248
+ "max_abs_logit_error": 2.764932632446289
1249
+ },
1250
+ {
1251
+ "row": 130,
1252
+ "label": 1,
1253
+ "upstream": 1,
1254
+ "coreml": 1,
1255
+ "max_abs_probability_error": 4.3291383917676285e-05,
1256
+ "max_abs_logit_error": 3.559276580810547
1257
+ },
1258
+ {
1259
+ "row": 131,
1260
+ "label": 2,
1261
+ "upstream": 2,
1262
+ "coreml": 2,
1263
+ "max_abs_probability_error": 8.344650268554688e-07,
1264
+ "max_abs_logit_error": 3.2550487518310547
1265
+ },
1266
+ {
1267
+ "row": 132,
1268
+ "label": 3,
1269
+ "upstream": 3,
1270
+ "coreml": 3,
1271
+ "max_abs_probability_error": 2.7894973754882812e-05,
1272
+ "max_abs_logit_error": 3.068411111831665
1273
+ },
1274
+ {
1275
+ "row": 133,
1276
+ "label": 4,
1277
+ "upstream": 4,
1278
+ "coreml": 4,
1279
+ "max_abs_probability_error": 0.0002166023332392797,
1280
+ "max_abs_logit_error": 3.101825714111328
1281
+ },
1282
+ {
1283
+ "row": 134,
1284
+ "label": 5,
1285
+ "upstream": 5,
1286
+ "coreml": 5,
1287
+ "max_abs_probability_error": 6.258487701416016e-05,
1288
+ "max_abs_logit_error": 2.6334457397460938
1289
+ },
1290
+ {
1291
+ "row": 135,
1292
+ "label": 6,
1293
+ "upstream": 6,
1294
+ "coreml": 6,
1295
+ "max_abs_probability_error": 1.2993812561035156e-05,
1296
+ "max_abs_logit_error": 3.064577102661133
1297
+ },
1298
+ {
1299
+ "row": 136,
1300
+ "label": 7,
1301
+ "upstream": 7,
1302
+ "coreml": 7,
1303
+ "max_abs_probability_error": 3.9360515074804425e-05,
1304
+ "max_abs_logit_error": 3.498318672180176
1305
+ },
1306
+ {
1307
+ "row": 137,
1308
+ "label": 8,
1309
+ "upstream": 8,
1310
+ "coreml": 8,
1311
+ "max_abs_probability_error": 0.20076976716518402,
1312
+ "max_abs_logit_error": 4.9444427490234375
1313
+ },
1314
+ {
1315
+ "row": 138,
1316
+ "label": 9,
1317
+ "upstream": 9,
1318
+ "coreml": 9,
1319
+ "max_abs_probability_error": 0.000747382640838623,
1320
+ "max_abs_logit_error": 2.80314302444458
1321
+ },
1322
+ {
1323
+ "row": 139,
1324
+ "label": 10,
1325
+ "upstream": 10,
1326
+ "coreml": 10,
1327
+ "max_abs_probability_error": 5.860753663000651e-05,
1328
+ "max_abs_logit_error": 4.217677116394043
1329
+ },
1330
+ {
1331
+ "row": 140,
1332
+ "label": 11,
1333
+ "upstream": 11,
1334
+ "coreml": 11,
1335
+ "max_abs_probability_error": 1.1063334568461869e-05,
1336
+ "max_abs_logit_error": 3.9767203330993652
1337
+ },
1338
+ {
1339
+ "row": 141,
1340
+ "label": 12,
1341
+ "upstream": 12,
1342
+ "coreml": 12,
1343
+ "max_abs_probability_error": 9.34600830078125e-05,
1344
+ "max_abs_logit_error": 2.8596105575561523
1345
+ },
1346
+ {
1347
+ "row": 142,
1348
+ "label": 18,
1349
+ "upstream": 18,
1350
+ "coreml": 18,
1351
+ "max_abs_probability_error": 1.9073486328125e-06,
1352
+ "max_abs_logit_error": 3.8807570934295654
1353
+ },
1354
+ {
1355
+ "row": 143,
1356
+ "label": 16,
1357
+ "upstream": 16,
1358
+ "coreml": 16,
1359
+ "max_abs_probability_error": 1.6191354461625451e-06,
1360
+ "max_abs_logit_error": 2.416942596435547
1361
+ },
1362
+ {
1363
+ "row": 144,
1364
+ "label": 18,
1365
+ "upstream": 18,
1366
+ "coreml": 18,
1367
+ "max_abs_probability_error": 2.6463640097063035e-06,
1368
+ "max_abs_logit_error": 2.728714942932129
1369
+ },
1370
+ {
1371
+ "row": 145,
1372
+ "label": 18,
1373
+ "upstream": 18,
1374
+ "coreml": 18,
1375
+ "max_abs_probability_error": 3.6954879760742188e-06,
1376
+ "max_abs_logit_error": 3.8880889415740967
1377
+ },
1378
+ {
1379
+ "row": 146,
1380
+ "label": 17,
1381
+ "upstream": 17,
1382
+ "coreml": 17,
1383
+ "max_abs_probability_error": 5.8316572904004715e-06,
1384
+ "max_abs_logit_error": 4.496463298797607
1385
+ },
1386
+ {
1387
+ "row": 147,
1388
+ "label": 18,
1389
+ "upstream": 18,
1390
+ "coreml": 18,
1391
+ "max_abs_probability_error": 8.429776876539563e-09,
1392
+ "max_abs_logit_error": 2.1004066467285156
1393
+ },
1394
+ {
1395
+ "row": 148,
1396
+ "label": 18,
1397
+ "upstream": 18,
1398
+ "coreml": 18,
1399
+ "max_abs_probability_error": 9.215698426601193e-09,
1400
+ "max_abs_logit_error": 1.8194046020507812
1401
+ },
1402
+ {
1403
+ "row": 149,
1404
+ "label": 18,
1405
+ "upstream": 18,
1406
+ "coreml": 18,
1407
+ "max_abs_probability_error": 3.84208304060607e-10,
1408
+ "max_abs_logit_error": 4.05654764175415
1409
+ },
1410
+ {
1411
+ "row": 150,
1412
+ "label": 18,
1413
+ "upstream": 18,
1414
+ "coreml": 18,
1415
+ "max_abs_probability_error": 7.947568818333917e-12,
1416
+ "max_abs_logit_error": 2.169252395629883
1417
+ },
1418
+ {
1419
+ "row": 151,
1420
+ "label": 18,
1421
+ "upstream": 18,
1422
+ "coreml": 18,
1423
+ "max_abs_probability_error": 5.291168614363073e-10,
1424
+ "max_abs_logit_error": 2.1067094802856445
1425
+ },
1426
+ {
1427
+ "row": 152,
1428
+ "label": 18,
1429
+ "upstream": 18,
1430
+ "coreml": 18,
1431
+ "max_abs_probability_error": 7.924417788629512e-10,
1432
+ "max_abs_logit_error": 3.3871490955352783
1433
+ },
1434
+ {
1435
+ "row": 153,
1436
+ "label": 18,
1437
+ "upstream": 18,
1438
+ "coreml": 18,
1439
+ "max_abs_probability_error": 1.0083449808462319e-07,
1440
+ "max_abs_logit_error": 4.667112827301025
1441
+ },
1442
+ {
1443
+ "row": 154,
1444
+ "label": 18,
1445
+ "upstream": 18,
1446
+ "coreml": 18,
1447
+ "max_abs_probability_error": 3.3051329034750054e-11,
1448
+ "max_abs_logit_error": 2.944230079650879
1449
+ },
1450
+ {
1451
+ "row": 155,
1452
+ "label": 18,
1453
+ "upstream": 18,
1454
+ "coreml": 18,
1455
+ "max_abs_probability_error": 1.650468511860126e-10,
1456
+ "max_abs_logit_error": 2.179288864135742
1457
+ },
1458
+ {
1459
+ "row": 156,
1460
+ "label": 18,
1461
+ "upstream": 18,
1462
+ "coreml": 18,
1463
+ "max_abs_probability_error": 6.181078218703284e-12,
1464
+ "max_abs_logit_error": 2.217021942138672
1465
+ },
1466
+ {
1467
+ "row": 157,
1468
+ "label": 18,
1469
+ "upstream": 18,
1470
+ "coreml": 18,
1471
+ "max_abs_probability_error": 1.6455586893115992e-10,
1472
+ "max_abs_logit_error": 2.0631823539733887
1473
+ },
1474
+ {
1475
+ "row": 158,
1476
+ "label": 18,
1477
+ "upstream": 18,
1478
+ "coreml": 18,
1479
+ "max_abs_probability_error": 6.109900363426846e-10,
1480
+ "max_abs_logit_error": 3.4993996620178223
1481
+ },
1482
+ {
1483
+ "row": 159,
1484
+ "label": 18,
1485
+ "upstream": 18,
1486
+ "coreml": 18,
1487
+ "max_abs_probability_error": 6.693580800742893e-09,
1488
+ "max_abs_logit_error": 2.16013240814209
1489
+ },
1490
+ {
1491
+ "row": 160,
1492
+ "label": 18,
1493
+ "upstream": 18,
1494
+ "coreml": 18,
1495
+ "max_abs_probability_error": 4.588627788848498e-08,
1496
+ "max_abs_logit_error": 3.608731269836426
1497
+ },
1498
+ {
1499
+ "row": 161,
1500
+ "label": 18,
1501
+ "upstream": 18,
1502
+ "coreml": 18,
1503
+ "max_abs_probability_error": 8.344650268554688e-07,
1504
+ "max_abs_logit_error": 3.2034151554107666
1505
+ },
1506
+ {
1507
+ "row": 162,
1508
+ "label": 18,
1509
+ "upstream": 18,
1510
+ "coreml": 18,
1511
+ "max_abs_probability_error": 1.042114572413766e-08,
1512
+ "max_abs_logit_error": 3.6694984436035156
1513
+ },
1514
+ {
1515
+ "row": 163,
1516
+ "label": 18,
1517
+ "upstream": 18,
1518
+ "coreml": 18,
1519
+ "max_abs_probability_error": 1.9131388140358752e-10,
1520
+ "max_abs_logit_error": 2.9220056533813477
1521
+ },
1522
+ {
1523
+ "row": 164,
1524
+ "label": 18,
1525
+ "upstream": 18,
1526
+ "coreml": 18,
1527
+ "max_abs_probability_error": 4.935061781452532e-08,
1528
+ "max_abs_logit_error": 1.4873247146606445
1529
+ },
1530
+ {
1531
+ "row": 165,
1532
+ "label": 18,
1533
+ "upstream": 18,
1534
+ "coreml": 18,
1535
+ "max_abs_probability_error": 5.15840287151903e-11,
1536
+ "max_abs_logit_error": 1.6720411777496338
1537
+ },
1538
+ {
1539
+ "row": 166,
1540
+ "label": 18,
1541
+ "upstream": 18,
1542
+ "coreml": 18,
1543
+ "max_abs_probability_error": 2.6797479790729994e-09,
1544
+ "max_abs_logit_error": 1.2103171348571777
1545
+ },
1546
+ {
1547
+ "row": 167,
1548
+ "label": 18,
1549
+ "upstream": 18,
1550
+ "coreml": 18,
1551
+ "max_abs_probability_error": 7.54509399403247e-10,
1552
+ "max_abs_logit_error": 2.835115432739258
1553
+ },
1554
+ {
1555
+ "row": 168,
1556
+ "label": 18,
1557
+ "upstream": 18,
1558
+ "coreml": 18,
1559
+ "max_abs_probability_error": 8.344650268554688e-07,
1560
+ "max_abs_logit_error": 3.596881866455078
1561
+ },
1562
+ {
1563
+ "row": 169,
1564
+ "label": 18,
1565
+ "upstream": 18,
1566
+ "coreml": 18,
1567
+ "max_abs_probability_error": 2.4169340140378637e-11,
1568
+ "max_abs_logit_error": 1.5558462142944336
1569
+ },
1570
+ {
1571
+ "row": 170,
1572
+ "label": 18,
1573
+ "upstream": 18,
1574
+ "coreml": 18,
1575
+ "max_abs_probability_error": 3.0329603412093675e-11,
1576
+ "max_abs_logit_error": 2.1443252563476562
1577
+ },
1578
+ {
1579
+ "row": 171,
1580
+ "label": 18,
1581
+ "upstream": 18,
1582
+ "coreml": 18,
1583
+ "max_abs_probability_error": 1.7881393432617188e-06,
1584
+ "max_abs_logit_error": 1.609299659729004
1585
+ },
1586
+ {
1587
+ "row": 172,
1588
+ "label": 18,
1589
+ "upstream": 18,
1590
+ "coreml": 18,
1591
+ "max_abs_probability_error": 4.66337235494052e-09,
1592
+ "max_abs_logit_error": 2.1106224060058594
1593
+ },
1594
+ {
1595
+ "row": 173,
1596
+ "label": 18,
1597
+ "upstream": 18,
1598
+ "coreml": 18,
1599
+ "max_abs_probability_error": 1.2885730260592254e-09,
1600
+ "max_abs_logit_error": 1.5084967613220215
1601
+ },
1602
+ {
1603
+ "row": 174,
1604
+ "label": 18,
1605
+ "upstream": 18,
1606
+ "coreml": 18,
1607
+ "max_abs_probability_error": 1.1279766010119374e-09,
1608
+ "max_abs_logit_error": 2.5634703636169434
1609
+ },
1610
+ {
1611
+ "row": 175,
1612
+ "label": 18,
1613
+ "upstream": 18,
1614
+ "coreml": 18,
1615
+ "max_abs_probability_error": 1.9073486328125e-06,
1616
+ "max_abs_logit_error": 3.8807570934295654
1617
+ },
1618
+ {
1619
+ "row": 176,
1620
+ "label": 18,
1621
+ "upstream": 18,
1622
+ "coreml": 18,
1623
+ "max_abs_probability_error": 1.0728836059570312e-06,
1624
+ "max_abs_logit_error": 2.2860074043273926
1625
+ },
1626
+ {
1627
+ "row": 177,
1628
+ "label": 18,
1629
+ "upstream": 18,
1630
+ "coreml": 18,
1631
+ "max_abs_probability_error": 6.665992202670168e-08,
1632
+ "max_abs_logit_error": 2.732346534729004
1633
+ },
1634
+ {
1635
+ "row": 178,
1636
+ "label": 18,
1637
+ "upstream": 18,
1638
+ "coreml": 18,
1639
+ "max_abs_probability_error": 3.6954879760742188e-06,
1640
+ "max_abs_logit_error": 3.8880889415740967
1641
+ },
1642
+ {
1643
+ "row": 179,
1644
+ "label": 17,
1645
+ "upstream": 17,
1646
+ "coreml": 17,
1647
+ "max_abs_probability_error": 5.8316572904004715e-06,
1648
+ "max_abs_logit_error": 4.496463298797607
1649
+ },
1650
+ {
1651
+ "row": 180,
1652
+ "label": 18,
1653
+ "upstream": 18,
1654
+ "coreml": 18,
1655
+ "max_abs_probability_error": 8.429776876539563e-09,
1656
+ "max_abs_logit_error": 2.1004066467285156
1657
+ },
1658
+ {
1659
+ "row": 181,
1660
+ "label": 18,
1661
+ "upstream": 18,
1662
+ "coreml": 18,
1663
+ "max_abs_probability_error": 9.215698426601193e-09,
1664
+ "max_abs_logit_error": 1.8194046020507812
1665
+ },
1666
+ {
1667
+ "row": 182,
1668
+ "label": 18,
1669
+ "upstream": 18,
1670
+ "coreml": 18,
1671
+ "max_abs_probability_error": 3.84208304060607e-10,
1672
+ "max_abs_logit_error": 4.05654764175415
1673
+ },
1674
+ {
1675
+ "row": 183,
1676
+ "label": 18,
1677
+ "upstream": 18,
1678
+ "coreml": 18,
1679
+ "max_abs_probability_error": 7.947568818333917e-12,
1680
+ "max_abs_logit_error": 2.169252395629883
1681
+ },
1682
+ {
1683
+ "row": 184,
1684
+ "label": 18,
1685
+ "upstream": 18,
1686
+ "coreml": 18,
1687
+ "max_abs_probability_error": 5.291168614363073e-10,
1688
+ "max_abs_logit_error": 2.1067094802856445
1689
+ },
1690
+ {
1691
+ "row": 185,
1692
+ "label": 18,
1693
+ "upstream": 18,
1694
+ "coreml": 18,
1695
+ "max_abs_probability_error": 7.924417788629512e-10,
1696
+ "max_abs_logit_error": 3.3871490955352783
1697
+ },
1698
+ {
1699
+ "row": 186,
1700
+ "label": 18,
1701
+ "upstream": 18,
1702
+ "coreml": 18,
1703
+ "max_abs_probability_error": 1.0083449808462319e-07,
1704
+ "max_abs_logit_error": 4.667112827301025
1705
+ },
1706
+ {
1707
+ "row": 187,
1708
+ "label": 18,
1709
+ "upstream": 18,
1710
+ "coreml": 18,
1711
+ "max_abs_probability_error": 3.3051329034750054e-11,
1712
+ "max_abs_logit_error": 2.944230079650879
1713
+ },
1714
+ {
1715
+ "row": 188,
1716
+ "label": 18,
1717
+ "upstream": 18,
1718
+ "coreml": 18,
1719
+ "max_abs_probability_error": 1.650468511860126e-10,
1720
+ "max_abs_logit_error": 2.179288864135742
1721
+ },
1722
+ {
1723
+ "row": 189,
1724
+ "label": 18,
1725
+ "upstream": 18,
1726
+ "coreml": 18,
1727
+ "max_abs_probability_error": 6.181078218703284e-12,
1728
+ "max_abs_logit_error": 2.217021942138672
1729
+ },
1730
+ {
1731
+ "row": 190,
1732
+ "label": 18,
1733
+ "upstream": 18,
1734
+ "coreml": 18,
1735
+ "max_abs_probability_error": 1.6455586893115992e-10,
1736
+ "max_abs_logit_error": 2.0631823539733887
1737
+ },
1738
+ {
1739
+ "row": 191,
1740
+ "label": 18,
1741
+ "upstream": 18,
1742
+ "coreml": 18,
1743
+ "max_abs_probability_error": 6.109900363426846e-10,
1744
+ "max_abs_logit_error": 3.4993996620178223
1745
+ },
1746
+ {
1747
+ "row": 192,
1748
+ "label": 18,
1749
+ "upstream": 18,
1750
+ "coreml": 18,
1751
+ "max_abs_probability_error": 6.693580800742893e-09,
1752
+ "max_abs_logit_error": 2.16013240814209
1753
+ },
1754
+ {
1755
+ "row": 193,
1756
+ "label": 18,
1757
+ "upstream": 18,
1758
+ "coreml": 18,
1759
+ "max_abs_probability_error": 4.588627788848498e-08,
1760
+ "max_abs_logit_error": 3.608731269836426
1761
+ },
1762
+ {
1763
+ "row": 194,
1764
+ "label": 18,
1765
+ "upstream": 18,
1766
+ "coreml": 18,
1767
+ "max_abs_probability_error": 8.344650268554688e-07,
1768
+ "max_abs_logit_error": 3.2034151554107666
1769
+ },
1770
+ {
1771
+ "row": 195,
1772
+ "label": 18,
1773
+ "upstream": 18,
1774
+ "coreml": 18,
1775
+ "max_abs_probability_error": 1.042114572413766e-08,
1776
+ "max_abs_logit_error": 3.6694984436035156
1777
+ }
1778
+ ]
1779
+ }
1780
+ },
1781
+ "passed": false,
1782
+ "code_sha256": {
1783
+ "ane_gather.py": "c3379a3797041dcfed82eaaea3990771ec91f1dff7ec146b025988ad7a8c9aae",
1784
+ "assets.py": "f7a5bc931075237e00c73bf21fee3575be35531f934f23b5e22627d50a79f92f",
1785
+ "benchmark-synthetic.py": "ba8255fd3f63d87ef340c26c4c251800f2e20878d80858ad1e6557cf59f249a2",
1786
+ "compare-ane.py": "4633df7ad5f90d6aed37d5ef4f7a2d2231fdadd272ef1aa3057c237b2f937df8",
1787
+ "convert-coreml.py": "46fe0194df924033126286e601214b6789f5d667aae38c153cf4dbc1b0e629b0",
1788
+ "export-reference.py": "ff9eab4d6e4e72ffaf074d82610f41fbea1e802da7c0e987ce562a89eb561b99",
1789
+ "export_model.py": "c61da5d678c77030d1e9a78359626063ea31da46fb6434e49517fdeaa7800949",
1790
+ "prepare-int4-source.py": "33db3295450428d90c1de5a804ab47bf3507c686fbbdef67cd276ce116758b5f",
1791
+ "preprocessing.py": "18c74ede43f95f91cd638c7e9631923a353e3a24d3b522ddb8b18b480f9c2846",
1792
+ "profile-coreml.py": "d5e1386f54fc6c482647120e593e7ffbbe4bbb277c2cc6d4949154660fe239fd",
1793
+ "quantize-int4.py": "a91636e539d8934253b5e7628ca706346fbee538fa1aa9e3eaf794f440d49dcc",
1794
+ "quantize-int8.py": "22071babfcb02ef77225203a479d9bb14b9fa35462ba38bcc4bf07d29c125a97",
1795
+ "score-report.py": "c78e45caa86fb59f9a56ef18cc6a35020ea6e281a6a23d23618f56da85a0d95e",
1796
+ "synthetic_test.py": "e2b68725236e6827eb422480c8cc8aa189b2490c1594650d8f2928771d1bc626",
1797
+ "verify.py": "bc20ec9df47708e9b48e411076abe4eab7c18313f67e11334de2d9e3ecb3efa7"
1798
+ }
1799
+ }
reports/int4-fallback.json ADDED
@@ -0,0 +1,112 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "hardware": {
3
+ "device": "arm64",
4
+ "chip": "Apple M5 Pro",
5
+ "ram": "24GB",
6
+ "os_version": "macOS 27.0",
7
+ "timestamp": "2026-09-19T22:28:18.483796+00:00"
8
+ },
9
+ "models": [
10
+ {
11
+ "model_path": "/Users/hanweng/Documents/FluidAudio/.mobius/cua-s1-prs/mobius/models/computer-use/cua-s1-forms/coreml/build/int4-weights/cua_s1_forms_int4_options32.mlmodelc",
12
+ "model_name": "cua_s1_forms_int4_options32",
13
+ "fallback": {
14
+ "compute_units": "cpu_and_neural_engine",
15
+ "total_ops": 200,
16
+ "ane_ops": 149,
17
+ "gpu_ops": 0,
18
+ "cpu_ops": 51,
19
+ "ane_percent": 74.5,
20
+ "reasons": [
21
+ {
22
+ "reason": "Unsupported tensor data type: int32",
23
+ "count": 25,
24
+ "estimated_cpu_runtime_ms": 0.0375,
25
+ "op_types": {
26
+ "ios18.cast": 10,
27
+ "ios18.slice_by_index": 4,
28
+ "ios18.add": 4,
29
+ "select": 4,
30
+ "ios18.gather": 2,
31
+ "ios18.reshape": 1
32
+ },
33
+ "ops": [
34
+ "var_27",
35
+ "var_43",
36
+ "var_43_to_fp16",
37
+ "context_ids_to_int16",
38
+ "cast_54",
39
+ "add_3",
40
+ "select_0",
41
+ "select_0_to_int16",
42
+ "cast_0",
43
+ "add_0",
44
+ "select_0_1",
45
+ "op_59_cast_fp16_cast_uint16_cast_uint16",
46
+ "flat_ids",
47
+ "var_333",
48
+ "var_349",
49
+ "var_349_to_fp16",
50
+ "flat_ids_to_int16",
51
+ "cast_55",
52
+ "add_4",
53
+ "select_1",
54
+ "select_1_to_int16",
55
+ "cast_1",
56
+ "add_1",
57
+ "select_1_1",
58
+ "op_365_cast_fp16_cast_uint16_cast_uint16"
59
+ ]
60
+ },
61
+ {
62
+ "reason": "ANE not available for this op",
63
+ "count": 19,
64
+ "estimated_cpu_runtime_ms": 0,
65
+ "op_types": {
66
+ "ios18.constexpr_blockwise_shift_scale": 19
67
+ },
68
+ "ops": [
69
+ "model_embedding_weight_to_fp16_quantized",
70
+ "model_position_weight_to_fp16_quantized",
71
+ "model_encoder_layers_0_self_attn_in_proj_weight_to_fp16_quantized",
72
+ "model_encoder_layers_0_self_attn_out_proj_weight_to_fp16_quantized",
73
+ "model_encoder_layers_0_linear1_weight_to_fp16_quantized",
74
+ "model_encoder_layers_0_linear2_weight_to_fp16_quantized",
75
+ "model_encoder_layers_1_self_attn_in_proj_weight_to_fp16_quantized",
76
+ "model_encoder_layers_1_self_attn_out_proj_weight_to_fp16_quantized",
77
+ "model_encoder_layers_1_linear1_weight_to_fp16_quantized",
78
+ "model_encoder_layers_1_linear2_weight_to_fp16_quantized",
79
+ "op_369_to_fp16_quantized",
80
+ "op_394_to_fp16_quantized",
81
+ "model_option_encoder_layers_0_self_attn_in_proj_weight_to_fp16_quantized",
82
+ "model_option_encoder_layers_0_self_attn_out_proj_weight_to_fp16_quantized",
83
+ "model_option_encoder_layers_0_linear1_weight_to_fp16_quantized",
84
+ "model_option_encoder_layers_0_linear2_weight_to_fp16_quantized",
85
+ "model_head_query_weight_to_fp16_quantized",
86
+ "model_head_key_weight_to_fp16_quantized",
87
+ "model_head_value_weight_to_fp16_quantized"
88
+ ]
89
+ },
90
+ {
91
+ "reason": "Unable to resolve operation input \"y\".",
92
+ "count": 7,
93
+ "estimated_cpu_runtime_ms": 0.007,
94
+ "op_types": {
95
+ "ios18.greater_equal": 4,
96
+ "ios18.not_equal": 3
97
+ },
98
+ "ops": [
99
+ "option_mask_1",
100
+ "context_mask",
101
+ "greater_equal_0",
102
+ "greater_equal_0_1",
103
+ "flat_mask",
104
+ "greater_equal_1",
105
+ "greater_equal_1_1"
106
+ ]
107
+ }
108
+ ]
109
+ }
110
+ }
111
+ ]
112
+ }
reports/int4-profile.json ADDED
@@ -0,0 +1,1105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "created_utc": "2026-09-19T22:27:49.746625+00:00",
3
+ "purpose": "Bounded real-input latency and scheduler placement; not a general accuracy benchmark",
4
+ "model_revision": "f54adbf447f4ca6ec259f529ee3f2e3e09f8cc71",
5
+ "package_files": {
6
+ "Data/com.apple.CoreML/model.mlmodel": "cadad6bfa6875383a7ee3de68d0d22871148aa21cf117e7fe44c2c971287c4e5",
7
+ "Data/com.apple.CoreML/weights/weight.bin": "0f766fcb9dbd612ed4f6c7a40117a5993a4789b3ae94afba0df37193c831f63c",
8
+ "Manifest.json": "fb91c8b5ec3168111567de663bb3140d2790c6e7c48f32e0df3f5135af0673af"
9
+ },
10
+ "dataset_revision": "8273f34778b99ac2e12d9f6e7d57dad99ae20845",
11
+ "dataset_sha256": "4f43b442e79ba2e2ce731e27e9b8e340c2b5dfcaffc92d8ff564c34f115ff1ca",
12
+ "environment": {
13
+ "chip": "Apple M5 Pro",
14
+ "memory_bytes": 25769803776,
15
+ "macos": "27.0",
16
+ "os_build": "26A428",
17
+ "python": "3.11.11",
18
+ "coremltools": "9.0"
19
+ },
20
+ "protocol": {
21
+ "rows": [
22
+ 0,
23
+ 68,
24
+ 130
25
+ ],
26
+ "pages": [
27
+ "patient-registration",
28
+ "job-application",
29
+ "auto-claim"
30
+ ],
31
+ "option_counts": [
32
+ 27,
33
+ 21,
34
+ 19
35
+ ],
36
+ "first_call_row": 0,
37
+ "warmup_passes": 2,
38
+ "timed_passes": 10,
39
+ "backend_order": [
40
+ "CPU_AND_NE"
41
+ ],
42
+ "timing_scope": "Synchronous Python MLModel.predict; pre-encoded inputs; output checks outside timer",
43
+ "load_scope": "MLModel construction; system caches retained, not first-install cold start",
44
+ "first_call_scope": "First predict after this load; may use existing system/ANE caches",
45
+ "plan_order": "Compute plan loaded after timing each backend"
46
+ },
47
+ "backends": {
48
+ "CPU_AND_NE": {
49
+ "load_ms": 628.8241670117714,
50
+ "first_prediction_ms": 2.4197499733418226,
51
+ "warm_prediction": {
52
+ "count": 30,
53
+ "median_ms": 0.9370829939143732,
54
+ "p95_ms": 0.969368452206254,
55
+ "min_ms": 0.8955409866757691,
56
+ "max_ms": 0.985999999102205
57
+ },
58
+ "timed_predictions_correct": 30,
59
+ "calls": [
60
+ {
61
+ "row": 0,
62
+ "milliseconds": 0.9536660218145698
63
+ },
64
+ {
65
+ "row": 68,
66
+ "milliseconds": 0.9417080145794898
67
+ },
68
+ {
69
+ "row": 130,
70
+ "milliseconds": 0.9293750044889748
71
+ },
72
+ {
73
+ "row": 0,
74
+ "milliseconds": 0.9304159902967513
75
+ },
76
+ {
77
+ "row": 68,
78
+ "milliseconds": 0.9457910200580955
79
+ },
80
+ {
81
+ "row": 130,
82
+ "milliseconds": 0.9614159935154021
83
+ },
84
+ {
85
+ "row": 0,
86
+ "milliseconds": 0.9506249916739762
87
+ },
88
+ {
89
+ "row": 68,
90
+ "milliseconds": 0.9356669906992465
91
+ },
92
+ {
93
+ "row": 130,
94
+ "milliseconds": 0.9454160172026604
95
+ },
96
+ {
97
+ "row": 0,
98
+ "milliseconds": 0.9370410116389394
99
+ },
100
+ {
101
+ "row": 68,
102
+ "milliseconds": 0.9322499972768128
103
+ },
104
+ {
105
+ "row": 130,
106
+ "milliseconds": 0.975875009316951
107
+ },
108
+ {
109
+ "row": 0,
110
+ "milliseconds": 0.985999999102205
111
+ },
112
+ {
113
+ "row": 68,
114
+ "milliseconds": 0.960250006755814
115
+ },
116
+ {
117
+ "row": 130,
118
+ "milliseconds": 0.9522080072201788
119
+ },
120
+ {
121
+ "row": 0,
122
+ "milliseconds": 0.9541249892208725
123
+ },
124
+ {
125
+ "row": 68,
126
+ "milliseconds": 0.9371249761898071
127
+ },
128
+ {
129
+ "row": 130,
130
+ "milliseconds": 0.9184999798890203
131
+ },
132
+ {
133
+ "row": 0,
134
+ "milliseconds": 0.9398749971296638
135
+ },
136
+ {
137
+ "row": 68,
138
+ "milliseconds": 0.9219589992426336
139
+ },
140
+ {
141
+ "row": 130,
142
+ "milliseconds": 0.9396669920533895
143
+ },
144
+ {
145
+ "row": 0,
146
+ "milliseconds": 0.9407500037923455
147
+ },
148
+ {
149
+ "row": 68,
150
+ "milliseconds": 0.9344589780084789
151
+ },
152
+ {
153
+ "row": 130,
154
+ "milliseconds": 0.931665999814868
155
+ },
156
+ {
157
+ "row": 0,
158
+ "milliseconds": 0.9232910233549774
159
+ },
160
+ {
161
+ "row": 68,
162
+ "milliseconds": 0.9075840061996132
163
+ },
164
+ {
165
+ "row": 130,
166
+ "milliseconds": 0.8955409866757691
167
+ },
168
+ {
169
+ "row": 0,
170
+ "milliseconds": 0.9247090201824903
171
+ },
172
+ {
173
+ "row": 68,
174
+ "milliseconds": 0.9097080037463456
175
+ },
176
+ {
177
+ "row": 130,
178
+ "milliseconds": 0.9349999891128391
179
+ }
180
+ ],
181
+ "compute_plan": {
182
+ "kind": "MLComputePlan preferred device; not a runtime utilization or power trace",
183
+ "assigned_operation_count": 181,
184
+ "device_counts": {
185
+ "cpu": 32,
186
+ "gpu": 0,
187
+ "ane": 149,
188
+ "unknown": 0
189
+ },
190
+ "unassigned_operation_types": {
191
+ "const": 226,
192
+ "ios18.constexpr_blockwise_shift_scale": 19
193
+ },
194
+ "operations": [
195
+ {
196
+ "name": "option_mask_1",
197
+ "type": "ios18.not_equal",
198
+ "device": "cpu"
199
+ },
200
+ {
201
+ "name": "context_mask",
202
+ "type": "ios18.not_equal",
203
+ "device": "cpu"
204
+ },
205
+ {
206
+ "name": "var_27",
207
+ "type": "ios18.slice_by_index",
208
+ "device": "cpu"
209
+ },
210
+ {
211
+ "name": "fill_like_0_cast_fp16",
212
+ "type": "ios16.fill_like",
213
+ "device": "ane"
214
+ },
215
+ {
216
+ "name": "var_43",
217
+ "type": "ios18.slice_by_index",
218
+ "device": "cpu"
219
+ },
220
+ {
221
+ "name": "var_43_to_fp16",
222
+ "type": "ios18.cast",
223
+ "device": "cpu"
224
+ },
225
+ {
226
+ "name": "safe_context_ids_cast_fp16",
227
+ "type": "ios18.concat",
228
+ "device": "ane"
229
+ },
230
+ {
231
+ "name": "context_ids_to_int16",
232
+ "type": "ios18.cast",
233
+ "device": "cpu"
234
+ },
235
+ {
236
+ "name": "cast_54",
237
+ "type": "ios18.cast",
238
+ "device": "cpu"
239
+ },
240
+ {
241
+ "name": "greater_equal_0",
242
+ "type": "ios18.greater_equal",
243
+ "device": "cpu"
244
+ },
245
+ {
246
+ "name": "add_3",
247
+ "type": "ios18.add",
248
+ "device": "cpu"
249
+ },
250
+ {
251
+ "name": "select_0",
252
+ "type": "select",
253
+ "device": "cpu"
254
+ },
255
+ {
256
+ "name": "select_0_to_int16",
257
+ "type": "ios18.cast",
258
+ "device": "cpu"
259
+ },
260
+ {
261
+ "name": "cast_0",
262
+ "type": "ios18.cast",
263
+ "device": "cpu"
264
+ },
265
+ {
266
+ "name": "greater_equal_0_1",
267
+ "type": "ios18.greater_equal",
268
+ "device": "cpu"
269
+ },
270
+ {
271
+ "name": "add_0",
272
+ "type": "ios18.add",
273
+ "device": "cpu"
274
+ },
275
+ {
276
+ "name": "select_0_1",
277
+ "type": "select",
278
+ "device": "cpu"
279
+ },
280
+ {
281
+ "name": "op_59_cast_fp16_cast_uint16_cast_uint16",
282
+ "type": "ios18.gather",
283
+ "device": "cpu"
284
+ },
285
+ {
286
+ "name": "src_1_cast_fp16",
287
+ "type": "ios18.add",
288
+ "device": "ane"
289
+ },
290
+ {
291
+ "name": "mask_1_cast_fp16",
292
+ "type": "ios18.equal",
293
+ "device": "ane"
294
+ },
295
+ {
296
+ "name": "key_padding_mask_1_cast_fp16",
297
+ "type": "select",
298
+ "device": "ane"
299
+ },
300
+ {
301
+ "name": "query_1_cast_fp16",
302
+ "type": "ios18.layer_norm",
303
+ "device": "ane"
304
+ },
305
+ {
306
+ "name": "query_3_cast_fp16",
307
+ "type": "ios18.transpose",
308
+ "device": "ane"
309
+ },
310
+ {
311
+ "name": "linear_0_cast_fp16",
312
+ "type": "ios18.linear",
313
+ "device": "ane"
314
+ },
315
+ {
316
+ "name": "var_124_cast_fp16",
317
+ "type": "ios18.reshape",
318
+ "device": "ane"
319
+ },
320
+ {
321
+ "name": "var_125_cast_fp16",
322
+ "type": "ios18.expand_dims",
323
+ "device": "ane"
324
+ },
325
+ {
326
+ "name": "var_126_cast_fp16",
327
+ "type": "ios18.transpose",
328
+ "device": "ane"
329
+ },
330
+ {
331
+ "name": "var_127_cast_fp16",
332
+ "type": "ios18.squeeze",
333
+ "device": "ane"
334
+ },
335
+ {
336
+ "name": "q_1_cast_fp16",
337
+ "type": "ios18.slice_by_index",
338
+ "device": "ane"
339
+ },
340
+ {
341
+ "name": "k_1_cast_fp16",
342
+ "type": "ios18.slice_by_index",
343
+ "device": "ane"
344
+ },
345
+ {
346
+ "name": "v_1_cast_fp16",
347
+ "type": "ios18.slice_by_index",
348
+ "device": "ane"
349
+ },
350
+ {
351
+ "name": "var_136_cast_fp16",
352
+ "type": "ios18.reshape",
353
+ "device": "ane"
354
+ },
355
+ {
356
+ "name": "var_143_cast_fp16",
357
+ "type": "ios18.reshape",
358
+ "device": "ane"
359
+ },
360
+ {
361
+ "name": "var_150_cast_fp16",
362
+ "type": "ios18.reshape",
363
+ "device": "ane"
364
+ },
365
+ {
366
+ "name": "var_154_cast_fp16",
367
+ "type": "ios18.reshape",
368
+ "device": "ane"
369
+ },
370
+ {
371
+ "name": "var_156_cast_fp16",
372
+ "type": "tile",
373
+ "device": "ane"
374
+ },
375
+ {
376
+ "name": "q_3_cast_fp16",
377
+ "type": "ios18.transpose",
378
+ "device": "ane"
379
+ },
380
+ {
381
+ "name": "q_5_cast_fp16",
382
+ "type": "ios18.reshape",
383
+ "device": "ane"
384
+ },
385
+ {
386
+ "name": "k_3_cast_fp16",
387
+ "type": "ios18.transpose",
388
+ "device": "ane"
389
+ },
390
+ {
391
+ "name": "k_5_cast_fp16",
392
+ "type": "ios18.reshape",
393
+ "device": "ane"
394
+ },
395
+ {
396
+ "name": "v_3_cast_fp16",
397
+ "type": "ios18.transpose",
398
+ "device": "ane"
399
+ },
400
+ {
401
+ "name": "v_5_cast_fp16",
402
+ "type": "ios18.reshape",
403
+ "device": "ane"
404
+ },
405
+ {
406
+ "name": "mul_1_cast_fp16",
407
+ "type": "ios18.mul",
408
+ "device": "ane"
409
+ },
410
+ {
411
+ "name": "matmul_0_cast_fp16",
412
+ "type": "ios18.matmul",
413
+ "device": "ane"
414
+ },
415
+ {
416
+ "name": "add_0_cast_fp16",
417
+ "type": "ios18.add",
418
+ "device": "ane"
419
+ },
420
+ {
421
+ "name": "softmax_0_cast_fp16",
422
+ "type": "ios18.softmax",
423
+ "device": "ane"
424
+ },
425
+ {
426
+ "name": "attn_output_1_cast_fp16",
427
+ "type": "ios18.matmul",
428
+ "device": "ane"
429
+ },
430
+ {
431
+ "name": "var_172_cast_fp16",
432
+ "type": "ios18.transpose",
433
+ "device": "ane"
434
+ },
435
+ {
436
+ "name": "attn_output_3_cast_fp16",
437
+ "type": "ios18.reshape",
438
+ "device": "ane"
439
+ },
440
+ {
441
+ "name": "linear_1_cast_fp16",
442
+ "type": "ios18.linear",
443
+ "device": "ane"
444
+ },
445
+ {
446
+ "name": "attn_output_7_cast_fp16",
447
+ "type": "ios18.reshape",
448
+ "device": "ane"
449
+ },
450
+ {
451
+ "name": "input_3_cast_fp16",
452
+ "type": "ios18.transpose",
453
+ "device": "ane"
454
+ },
455
+ {
456
+ "name": "input_5_cast_fp16",
457
+ "type": "ios18.add",
458
+ "device": "ane"
459
+ },
460
+ {
461
+ "name": "input_7_cast_fp16",
462
+ "type": "ios18.layer_norm",
463
+ "device": "ane"
464
+ },
465
+ {
466
+ "name": "linear_2_cast_fp16",
467
+ "type": "ios18.linear",
468
+ "device": "ane"
469
+ },
470
+ {
471
+ "name": "input_11_cast_fp16",
472
+ "type": "ios18.relu",
473
+ "device": "ane"
474
+ },
475
+ {
476
+ "name": "linear_3_cast_fp16",
477
+ "type": "ios18.linear",
478
+ "device": "ane"
479
+ },
480
+ {
481
+ "name": "input_17_cast_fp16",
482
+ "type": "ios18.add",
483
+ "device": "ane"
484
+ },
485
+ {
486
+ "name": "query_5_cast_fp16",
487
+ "type": "ios18.layer_norm",
488
+ "device": "ane"
489
+ },
490
+ {
491
+ "name": "query_7_cast_fp16",
492
+ "type": "ios18.transpose",
493
+ "device": "ane"
494
+ },
495
+ {
496
+ "name": "linear_4_cast_fp16",
497
+ "type": "ios18.linear",
498
+ "device": "ane"
499
+ },
500
+ {
501
+ "name": "var_231_cast_fp16",
502
+ "type": "ios18.reshape",
503
+ "device": "ane"
504
+ },
505
+ {
506
+ "name": "var_232_cast_fp16",
507
+ "type": "ios18.expand_dims",
508
+ "device": "ane"
509
+ },
510
+ {
511
+ "name": "var_233_cast_fp16",
512
+ "type": "ios18.transpose",
513
+ "device": "ane"
514
+ },
515
+ {
516
+ "name": "var_234_cast_fp16",
517
+ "type": "ios18.squeeze",
518
+ "device": "ane"
519
+ },
520
+ {
521
+ "name": "q_7_cast_fp16",
522
+ "type": "ios18.slice_by_index",
523
+ "device": "ane"
524
+ },
525
+ {
526
+ "name": "k_7_cast_fp16",
527
+ "type": "ios18.slice_by_index",
528
+ "device": "ane"
529
+ },
530
+ {
531
+ "name": "v_7_cast_fp16",
532
+ "type": "ios18.slice_by_index",
533
+ "device": "ane"
534
+ },
535
+ {
536
+ "name": "var_243_cast_fp16",
537
+ "type": "ios18.reshape",
538
+ "device": "ane"
539
+ },
540
+ {
541
+ "name": "var_250_cast_fp16",
542
+ "type": "ios18.reshape",
543
+ "device": "ane"
544
+ },
545
+ {
546
+ "name": "var_257_cast_fp16",
547
+ "type": "ios18.reshape",
548
+ "device": "ane"
549
+ },
550
+ {
551
+ "name": "q_9_cast_fp16",
552
+ "type": "ios18.transpose",
553
+ "device": "ane"
554
+ },
555
+ {
556
+ "name": "q_11_cast_fp16",
557
+ "type": "ios18.reshape",
558
+ "device": "ane"
559
+ },
560
+ {
561
+ "name": "k_9_cast_fp16",
562
+ "type": "ios18.transpose",
563
+ "device": "ane"
564
+ },
565
+ {
566
+ "name": "k_11_cast_fp16",
567
+ "type": "ios18.reshape",
568
+ "device": "ane"
569
+ },
570
+ {
571
+ "name": "v_9_cast_fp16",
572
+ "type": "ios18.transpose",
573
+ "device": "ane"
574
+ },
575
+ {
576
+ "name": "v_11_cast_fp16",
577
+ "type": "ios18.reshape",
578
+ "device": "ane"
579
+ },
580
+ {
581
+ "name": "mul_3_cast_fp16",
582
+ "type": "ios18.mul",
583
+ "device": "ane"
584
+ },
585
+ {
586
+ "name": "matmul_1_cast_fp16",
587
+ "type": "ios18.matmul",
588
+ "device": "ane"
589
+ },
590
+ {
591
+ "name": "add_1_cast_fp16",
592
+ "type": "ios18.add",
593
+ "device": "ane"
594
+ },
595
+ {
596
+ "name": "softmax_1_cast_fp16",
597
+ "type": "ios18.softmax",
598
+ "device": "ane"
599
+ },
600
+ {
601
+ "name": "attn_output_9_cast_fp16",
602
+ "type": "ios18.matmul",
603
+ "device": "ane"
604
+ },
605
+ {
606
+ "name": "var_279_cast_fp16",
607
+ "type": "ios18.transpose",
608
+ "device": "ane"
609
+ },
610
+ {
611
+ "name": "attn_output_11_cast_fp16",
612
+ "type": "ios18.reshape",
613
+ "device": "ane"
614
+ },
615
+ {
616
+ "name": "linear_5_cast_fp16",
617
+ "type": "ios18.linear",
618
+ "device": "ane"
619
+ },
620
+ {
621
+ "name": "attn_output_15_cast_fp16",
622
+ "type": "ios18.reshape",
623
+ "device": "ane"
624
+ },
625
+ {
626
+ "name": "input_19_cast_fp16",
627
+ "type": "ios18.transpose",
628
+ "device": "ane"
629
+ },
630
+ {
631
+ "name": "input_21_cast_fp16",
632
+ "type": "ios18.add",
633
+ "device": "ane"
634
+ },
635
+ {
636
+ "name": "input_23_cast_fp16",
637
+ "type": "ios18.layer_norm",
638
+ "device": "ane"
639
+ },
640
+ {
641
+ "name": "linear_6_cast_fp16",
642
+ "type": "ios18.linear",
643
+ "device": "ane"
644
+ },
645
+ {
646
+ "name": "input_27_cast_fp16",
647
+ "type": "ios18.relu",
648
+ "device": "ane"
649
+ },
650
+ {
651
+ "name": "linear_7_cast_fp16",
652
+ "type": "ios18.linear",
653
+ "device": "ane"
654
+ },
655
+ {
656
+ "name": "context_cast_fp16",
657
+ "type": "ios18.add",
658
+ "device": "ane"
659
+ },
660
+ {
661
+ "name": "flat_ids",
662
+ "type": "ios18.reshape",
663
+ "device": "cpu"
664
+ },
665
+ {
666
+ "name": "flat_mask",
667
+ "type": "ios18.not_equal",
668
+ "device": "cpu"
669
+ },
670
+ {
671
+ "name": "var_333",
672
+ "type": "ios18.slice_by_index",
673
+ "device": "cpu"
674
+ },
675
+ {
676
+ "name": "fill_like_1_cast_fp16",
677
+ "type": "ios16.fill_like",
678
+ "device": "ane"
679
+ },
680
+ {
681
+ "name": "var_349",
682
+ "type": "ios18.slice_by_index",
683
+ "device": "cpu"
684
+ },
685
+ {
686
+ "name": "var_349_to_fp16",
687
+ "type": "ios18.cast",
688
+ "device": "cpu"
689
+ },
690
+ {
691
+ "name": "safe_ids_cast_fp16",
692
+ "type": "ios18.concat",
693
+ "device": "ane"
694
+ },
695
+ {
696
+ "name": "flat_ids_to_int16",
697
+ "type": "ios18.cast",
698
+ "device": "cpu"
699
+ },
700
+ {
701
+ "name": "cast_55",
702
+ "type": "ios18.cast",
703
+ "device": "cpu"
704
+ },
705
+ {
706
+ "name": "greater_equal_1",
707
+ "type": "ios18.greater_equal",
708
+ "device": "cpu"
709
+ },
710
+ {
711
+ "name": "add_4",
712
+ "type": "ios18.add",
713
+ "device": "cpu"
714
+ },
715
+ {
716
+ "name": "select_1",
717
+ "type": "select",
718
+ "device": "cpu"
719
+ },
720
+ {
721
+ "name": "select_1_to_int16",
722
+ "type": "ios18.cast",
723
+ "device": "cpu"
724
+ },
725
+ {
726
+ "name": "cast_1",
727
+ "type": "ios18.cast",
728
+ "device": "cpu"
729
+ },
730
+ {
731
+ "name": "greater_equal_1_1",
732
+ "type": "ios18.greater_equal",
733
+ "device": "cpu"
734
+ },
735
+ {
736
+ "name": "add_1",
737
+ "type": "ios18.add",
738
+ "device": "cpu"
739
+ },
740
+ {
741
+ "name": "select_1_1",
742
+ "type": "select",
743
+ "device": "cpu"
744
+ },
745
+ {
746
+ "name": "op_365_cast_fp16_cast_uint16_cast_uint16",
747
+ "type": "ios18.gather",
748
+ "device": "cpu"
749
+ },
750
+ {
751
+ "name": "src_cast_fp16",
752
+ "type": "ios18.add",
753
+ "device": "ane"
754
+ },
755
+ {
756
+ "name": "mask_cast_fp16",
757
+ "type": "ios18.equal",
758
+ "device": "ane"
759
+ },
760
+ {
761
+ "name": "key_padding_mask_7_cast_fp16",
762
+ "type": "select",
763
+ "device": "ane"
764
+ },
765
+ {
766
+ "name": "query_9_cast_fp16",
767
+ "type": "ios18.layer_norm",
768
+ "device": "ane"
769
+ },
770
+ {
771
+ "name": "query_11_cast_fp16",
772
+ "type": "ios18.transpose",
773
+ "device": "ane"
774
+ },
775
+ {
776
+ "name": "linear_8_cast_fp16",
777
+ "type": "ios18.linear",
778
+ "device": "ane"
779
+ },
780
+ {
781
+ "name": "var_428_cast_fp16",
782
+ "type": "ios18.reshape",
783
+ "device": "ane"
784
+ },
785
+ {
786
+ "name": "var_429_cast_fp16",
787
+ "type": "ios18.expand_dims",
788
+ "device": "ane"
789
+ },
790
+ {
791
+ "name": "var_430_cast_fp16",
792
+ "type": "ios18.transpose",
793
+ "device": "ane"
794
+ },
795
+ {
796
+ "name": "var_431_cast_fp16",
797
+ "type": "ios18.squeeze",
798
+ "device": "ane"
799
+ },
800
+ {
801
+ "name": "q_13_cast_fp16",
802
+ "type": "ios18.slice_by_index",
803
+ "device": "ane"
804
+ },
805
+ {
806
+ "name": "k_13_cast_fp16",
807
+ "type": "ios18.slice_by_index",
808
+ "device": "ane"
809
+ },
810
+ {
811
+ "name": "v_13_cast_fp16",
812
+ "type": "ios18.slice_by_index",
813
+ "device": "ane"
814
+ },
815
+ {
816
+ "name": "var_440_cast_fp16",
817
+ "type": "ios18.reshape",
818
+ "device": "ane"
819
+ },
820
+ {
821
+ "name": "var_447_cast_fp16",
822
+ "type": "ios18.reshape",
823
+ "device": "ane"
824
+ },
825
+ {
826
+ "name": "var_454_cast_fp16",
827
+ "type": "ios18.reshape",
828
+ "device": "ane"
829
+ },
830
+ {
831
+ "name": "var_458_cast_fp16",
832
+ "type": "ios18.reshape",
833
+ "device": "ane"
834
+ },
835
+ {
836
+ "name": "var_460_cast_fp16",
837
+ "type": "tile",
838
+ "device": "ane"
839
+ },
840
+ {
841
+ "name": "q_15_cast_fp16",
842
+ "type": "ios18.transpose",
843
+ "device": "ane"
844
+ },
845
+ {
846
+ "name": "q_cast_fp16",
847
+ "type": "ios18.reshape",
848
+ "device": "ane"
849
+ },
850
+ {
851
+ "name": "k_15_cast_fp16",
852
+ "type": "ios18.transpose",
853
+ "device": "ane"
854
+ },
855
+ {
856
+ "name": "k_cast_fp16",
857
+ "type": "ios18.reshape",
858
+ "device": "ane"
859
+ },
860
+ {
861
+ "name": "v_15_cast_fp16",
862
+ "type": "ios18.transpose",
863
+ "device": "ane"
864
+ },
865
+ {
866
+ "name": "v_cast_fp16",
867
+ "type": "ios18.reshape",
868
+ "device": "ane"
869
+ },
870
+ {
871
+ "name": "mul_5_cast_fp16",
872
+ "type": "ios18.mul",
873
+ "device": "ane"
874
+ },
875
+ {
876
+ "name": "matmul_2_cast_fp16",
877
+ "type": "ios18.matmul",
878
+ "device": "ane"
879
+ },
880
+ {
881
+ "name": "add_2_cast_fp16",
882
+ "type": "ios18.add",
883
+ "device": "ane"
884
+ },
885
+ {
886
+ "name": "softmax_2_cast_fp16",
887
+ "type": "ios18.softmax",
888
+ "device": "ane"
889
+ },
890
+ {
891
+ "name": "attn_output_17_cast_fp16",
892
+ "type": "ios18.matmul",
893
+ "device": "ane"
894
+ },
895
+ {
896
+ "name": "var_476_cast_fp16",
897
+ "type": "ios18.transpose",
898
+ "device": "ane"
899
+ },
900
+ {
901
+ "name": "attn_output_19_cast_fp16",
902
+ "type": "ios18.reshape",
903
+ "device": "ane"
904
+ },
905
+ {
906
+ "name": "linear_9_cast_fp16",
907
+ "type": "ios18.linear",
908
+ "device": "ane"
909
+ },
910
+ {
911
+ "name": "attn_output_cast_fp16",
912
+ "type": "ios18.reshape",
913
+ "device": "ane"
914
+ },
915
+ {
916
+ "name": "input_35_cast_fp16",
917
+ "type": "ios18.transpose",
918
+ "device": "ane"
919
+ },
920
+ {
921
+ "name": "input_37_cast_fp16",
922
+ "type": "ios18.add",
923
+ "device": "ane"
924
+ },
925
+ {
926
+ "name": "input_39_cast_fp16",
927
+ "type": "ios18.layer_norm",
928
+ "device": "ane"
929
+ },
930
+ {
931
+ "name": "linear_10_cast_fp16",
932
+ "type": "ios18.linear",
933
+ "device": "ane"
934
+ },
935
+ {
936
+ "name": "input_43_cast_fp16",
937
+ "type": "ios18.relu",
938
+ "device": "ane"
939
+ },
940
+ {
941
+ "name": "linear_11_cast_fp16",
942
+ "type": "ios18.linear",
943
+ "device": "ane"
944
+ },
945
+ {
946
+ "name": "hidden_cast_fp16",
947
+ "type": "ios18.add",
948
+ "device": "ane"
949
+ },
950
+ {
951
+ "name": "var_504",
952
+ "type": "ios18.expand_dims",
953
+ "device": "ane"
954
+ },
955
+ {
956
+ "name": "var_504_to_fp16",
957
+ "type": "ios18.cast",
958
+ "device": "ane"
959
+ },
960
+ {
961
+ "name": "var_510_cast_fp16",
962
+ "type": "ios18.mul",
963
+ "device": "ane"
964
+ },
965
+ {
966
+ "name": "var_515_cast_fp16",
967
+ "type": "ios16.reduce_sum",
968
+ "device": "ane"
969
+ },
970
+ {
971
+ "name": "var_520_cast_fp16",
972
+ "type": "ios16.reduce_sum",
973
+ "device": "ane"
974
+ },
975
+ {
976
+ "name": "var_522_cast_fp16",
977
+ "type": "ios18.maximum",
978
+ "device": "ane"
979
+ },
980
+ {
981
+ "name": "pooled_cast_fp16",
982
+ "type": "ios18.real_div",
983
+ "device": "ane"
984
+ },
985
+ {
986
+ "name": "options_cast_fp16",
987
+ "type": "ios18.reshape",
988
+ "device": "ane"
989
+ },
990
+ {
991
+ "name": "input_cast_fp16",
992
+ "type": "ios18.layer_norm",
993
+ "device": "ane"
994
+ },
995
+ {
996
+ "name": "input_53_cast_fp16",
997
+ "type": "ios18.layer_norm",
998
+ "device": "ane"
999
+ },
1000
+ {
1001
+ "name": "linear_12_cast_fp16",
1002
+ "type": "ios18.linear",
1003
+ "device": "ane"
1004
+ },
1005
+ {
1006
+ "name": "linear_13_cast_fp16",
1007
+ "type": "ios18.linear",
1008
+ "device": "ane"
1009
+ },
1010
+ {
1011
+ "name": "linear_14_cast_fp16",
1012
+ "type": "ios18.linear",
1013
+ "device": "ane"
1014
+ },
1015
+ {
1016
+ "name": "matmul_3_cast_fp16",
1017
+ "type": "ios18.matmul",
1018
+ "device": "ane"
1019
+ },
1020
+ {
1021
+ "name": "_inversed_scores_1_cast_fp16",
1022
+ "type": "ios18.mul",
1023
+ "device": "ane"
1024
+ },
1025
+ {
1026
+ "name": "var_567",
1027
+ "type": "ios18.expand_dims",
1028
+ "device": "ane"
1029
+ },
1030
+ {
1031
+ "name": "var_569",
1032
+ "type": "ios18.logical_not",
1033
+ "device": "ane"
1034
+ },
1035
+ {
1036
+ "name": "scores_cast_fp16",
1037
+ "type": "select",
1038
+ "device": "ane"
1039
+ },
1040
+ {
1041
+ "name": "var_571_cast_fp16",
1042
+ "type": "ios18.softmax",
1043
+ "device": "ane"
1044
+ },
1045
+ {
1046
+ "name": "matmul_4_cast_fp16",
1047
+ "type": "ios18.matmul",
1048
+ "device": "ane"
1049
+ },
1050
+ {
1051
+ "name": "var_574_cast_fp16",
1052
+ "type": "ios18.mul",
1053
+ "device": "ane"
1054
+ },
1055
+ {
1056
+ "name": "var_576_cast_fp16",
1057
+ "type": "ios16.reduce_sum",
1058
+ "device": "ane"
1059
+ },
1060
+ {
1061
+ "name": "_inversed_logits_1_cast_fp16",
1062
+ "type": "ios18.mul",
1063
+ "device": "ane"
1064
+ },
1065
+ {
1066
+ "name": "var_579",
1067
+ "type": "ios18.logical_not",
1068
+ "device": "ane"
1069
+ },
1070
+ {
1071
+ "name": "logits_3_cast_fp16",
1072
+ "type": "select",
1073
+ "device": "ane"
1074
+ },
1075
+ {
1076
+ "name": "var_587_cast_fp16",
1077
+ "type": "ios16.fill_like",
1078
+ "device": "ane"
1079
+ },
1080
+ {
1081
+ "name": "logits_cast_fp16",
1082
+ "type": "select",
1083
+ "device": "ane"
1084
+ },
1085
+ {
1086
+ "name": "var_591_cast_fp16",
1087
+ "type": "ios18.softmax",
1088
+ "device": "ane"
1089
+ },
1090
+ {
1091
+ "name": "logits",
1092
+ "type": "ios18.cast",
1093
+ "device": "ane"
1094
+ },
1095
+ {
1096
+ "name": "probabilities",
1097
+ "type": "ios18.cast",
1098
+ "device": "ane"
1099
+ }
1100
+ ]
1101
+ }
1102
+ }
1103
+ },
1104
+ "script_sha256": "d5e1386f54fc6c482647120e593e7ffbbe4bbb277c2cc6d4949154660fe239fd"
1105
+ }
reports/int4-source-demo-verification.json ADDED
@@ -0,0 +1,1748 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "purpose": "Local conversion parity on the upstream demo; not a generalization or live GUI benchmark",
3
+ "created_utc": "2026-09-19T22:24:56.262849+00:00",
4
+ "model_revision": "f54adbf447f4ca6ec259f529ee3f2e3e09f8cc71",
5
+ "source_revision": "83f142c4290a0f7d9ed545ae8532858c6e4f8145",
6
+ "dataset_revision": "8273f34778b99ac2e12d9f6e7d57dad99ae20845",
7
+ "dataset_file": "demo.jsonl",
8
+ "dataset_sha256": "4f43b442e79ba2e2ce731e27e9b8e340c2b5dfcaffc92d8ff564c34f115ff1ca",
9
+ "conversion": {
10
+ "model": "cua_s1_forms_fp16_options32.mlpackage",
11
+ "precision": "float16",
12
+ "minimum_target": "iOS18/macOS15",
13
+ "limits": {
14
+ "context_bytes": 224,
15
+ "option_bytes": 96,
16
+ "max_options": 32
17
+ },
18
+ "model_config": {
19
+ "context_tokens": 224,
20
+ "encoder": "tinyx",
21
+ "heads": 4,
22
+ "hf_model": "Qwen/Qwen2.5-0.5B",
23
+ "layers": 2,
24
+ "option_tokens": 96,
25
+ "rank": 128,
26
+ "width": 128
27
+ },
28
+ "parameters": 706048,
29
+ "assets_lock_sha256": "8e65ad70af6bb814b571cdcfe828ba4bc339147da2d2211cbeac416163ef18ba",
30
+ "model_revision": "f54adbf447f4ca6ec259f529ee3f2e3e09f8cc71",
31
+ "source_revision": "83f142c4290a0f7d9ed545ae8532858c6e4f8145",
32
+ "trace_row": 0,
33
+ "trace_dataset_revision": "8273f34778b99ac2e12d9f6e7d57dad99ae20845",
34
+ "export_seconds": 0.5374167499830946,
35
+ "python": "3.11.11",
36
+ "torch": "2.7.0",
37
+ "coremltools": "9.0",
38
+ "package_files": {
39
+ "Data/com.apple.CoreML/model.mlmodel": "6ab2df320df7081480b76876df0f4bfd2c841592d93f354c568ba504f7269627",
40
+ "Data/com.apple.CoreML/weights/weight.bin": "4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895",
41
+ "Manifest.json": "e5b1c7dc66b2014b3985c180a75548a709788c6e314d9d2ae14e4e6d441c3c68"
42
+ },
43
+ "target_upgrade": {
44
+ "source_conversion_sha256": "ac94239751ceb7e19602eb7276940ff53446b1776d4900405af9be0382fe4a94",
45
+ "source_package_files": {
46
+ "Data/com.apple.CoreML/model.mlmodel": "70485fc18cbb21785df833cbddddc0b5b59acb00d22394b76e55307e2c135dd0",
47
+ "Data/com.apple.CoreML/weights/weight.bin": "4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895",
48
+ "Manifest.json": "2bc0f5f62337b27fb6b0ecde248f1e3dc269e1ba4b65516aaeede2a60e293dcc"
49
+ },
50
+ "method": "Load original MIL at specification 9; empty pass pipeline; retain decomposed attention",
51
+ "operation_counts": {
52
+ "add": 13,
53
+ "cast": 11,
54
+ "concat": 2,
55
+ "const": 239,
56
+ "equal": 2,
57
+ "expand_dims": 5,
58
+ "fill_like": 3,
59
+ "gather": 2,
60
+ "greater_equal": 2,
61
+ "layer_norm": 8,
62
+ "linear": 15,
63
+ "logical_not": 2,
64
+ "matmul": 8,
65
+ "maximum": 1,
66
+ "mul": 7,
67
+ "not_equal": 3,
68
+ "real_div": 1,
69
+ "reduce_sum": 3,
70
+ "relu": 3,
71
+ "reshape": 31,
72
+ "select": 7,
73
+ "slice_by_index": 13,
74
+ "softmax": 5,
75
+ "squeeze": 3,
76
+ "tile": 2,
77
+ "transpose": 21
78
+ },
79
+ "script_sha256": "33db3295450428d90c1de5a804ab47bf3507c686fbbdef67cd276ce116758b5f"
80
+ }
81
+ },
82
+ "environment": {
83
+ "machine": "Apple M5 Pro",
84
+ "os": "27.0",
85
+ "python": "3.11.11",
86
+ "torch": "2.7.0",
87
+ "coremltools": "9.0",
88
+ "torch_cpu_threads": 2
89
+ },
90
+ "rows": 196,
91
+ "upstream": {
92
+ "correct": 196,
93
+ "accuracy": 1.0,
94
+ "inference_latency_ms": {
95
+ "count": 196,
96
+ "median_ms": 2.572771001723595,
97
+ "p95_ms": 3.2190517595154233,
98
+ "min_ms": 1.7389580025337636,
99
+ "max_ms": 4.086540982825682
100
+ }
101
+ },
102
+ "export_adapter_fp32": {
103
+ "argmax_agreement": 196,
104
+ "max_abs_probability_error": 1.1324882507324219e-06
105
+ },
106
+ "host_preprocessing_latency_ms": {
107
+ "count": 196,
108
+ "median_ms": 0.041624996811151505,
109
+ "p95_ms": 0.052635499741882086,
110
+ "min_ms": 0.029125018045306206,
111
+ "max_ms": 0.08079098188318312
112
+ },
113
+ "thresholds": {
114
+ "argmax_agreement": 1.0,
115
+ "max_abs_probability_error": 0.005,
116
+ "export_adapter_max_abs_probability_error": 0.0001,
117
+ "allow_accuracy_loss": false
118
+ },
119
+ "backends": {
120
+ "CPU_AND_NE": {
121
+ "passed": true,
122
+ "correct": 196,
123
+ "accuracy": 1.0,
124
+ "argmax_agreement": 196,
125
+ "max_abs_probability_error": 0.00233614444732666,
126
+ "mean_row_max_abs_probability_error": 2.934475840582507e-05,
127
+ "max_abs_logit_error": 0.07230281829833984,
128
+ "load_seconds": 0.6436757920018863,
129
+ "warm_inference_latency_ms": {
130
+ "count": 196,
131
+ "median_ms": 0.9285830019507557,
132
+ "p95_ms": 0.9653437373344786,
133
+ "min_ms": 0.8930829935707152,
134
+ "max_ms": 1.0020830086432397
135
+ },
136
+ "reversed_option_order": {
137
+ "rows": 6,
138
+ "max_abs_probability_error": 3.1828880310058594e-05
139
+ },
140
+ "per_action": {
141
+ "fill": {
142
+ "rows": 36,
143
+ "correct": 36
144
+ },
145
+ "skip": {
146
+ "rows": 150,
147
+ "correct": 150
148
+ },
149
+ "check": {
150
+ "rows": 4,
151
+ "correct": 4
152
+ },
153
+ "click": {
154
+ "rows": 6,
155
+ "correct": 6
156
+ }
157
+ },
158
+ "decisions": [
159
+ {
160
+ "row": 0,
161
+ "label": 22,
162
+ "upstream": 22,
163
+ "coreml": 22,
164
+ "max_abs_probability_error": 3.1828880310058594e-05,
165
+ "max_abs_logit_error": 0.03086566925048828
166
+ },
167
+ {
168
+ "row": 1,
169
+ "label": 23,
170
+ "upstream": 23,
171
+ "coreml": 23,
172
+ "max_abs_probability_error": 3.814697265625e-05,
173
+ "max_abs_logit_error": 0.020841598510742188
174
+ },
175
+ {
176
+ "row": 2,
177
+ "label": 2,
178
+ "upstream": 2,
179
+ "coreml": 2,
180
+ "max_abs_probability_error": 1.1920928955078125e-07,
181
+ "max_abs_logit_error": 0.024377822875976562
182
+ },
183
+ {
184
+ "row": 3,
185
+ "label": 5,
186
+ "upstream": 5,
187
+ "coreml": 5,
188
+ "max_abs_probability_error": 3.218650817871094e-05,
189
+ "max_abs_logit_error": 0.030775785446166992
190
+ },
191
+ {
192
+ "row": 4,
193
+ "label": 4,
194
+ "upstream": 4,
195
+ "coreml": 4,
196
+ "max_abs_probability_error": 2.944469451904297e-05,
197
+ "max_abs_logit_error": 0.03573417663574219
198
+ },
199
+ {
200
+ "row": 5,
201
+ "label": 6,
202
+ "upstream": 6,
203
+ "coreml": 6,
204
+ "max_abs_probability_error": 1.2636184692382812e-05,
205
+ "max_abs_logit_error": 0.026729822158813477
206
+ },
207
+ {
208
+ "row": 6,
209
+ "label": 7,
210
+ "upstream": 7,
211
+ "coreml": 7,
212
+ "max_abs_probability_error": 2.3365020751953125e-05,
213
+ "max_abs_logit_error": 0.023685455322265625
214
+ },
215
+ {
216
+ "row": 7,
217
+ "label": 8,
218
+ "upstream": 8,
219
+ "coreml": 8,
220
+ "max_abs_probability_error": 0.00014638900756835938,
221
+ "max_abs_logit_error": 0.04038810729980469
222
+ },
223
+ {
224
+ "row": 8,
225
+ "label": 9,
226
+ "upstream": 9,
227
+ "coreml": 9,
228
+ "max_abs_probability_error": 1.1920928955078125e-06,
229
+ "max_abs_logit_error": 0.02460002899169922
230
+ },
231
+ {
232
+ "row": 9,
233
+ "label": 10,
234
+ "upstream": 10,
235
+ "coreml": 10,
236
+ "max_abs_probability_error": 2.1457672119140625e-05,
237
+ "max_abs_logit_error": 0.018064022064208984
238
+ },
239
+ {
240
+ "row": 10,
241
+ "label": 11,
242
+ "upstream": 11,
243
+ "coreml": 11,
244
+ "max_abs_probability_error": 5.960464477539062e-07,
245
+ "max_abs_logit_error": 0.047691673040390015
246
+ },
247
+ {
248
+ "row": 11,
249
+ "label": 13,
250
+ "upstream": 13,
251
+ "coreml": 13,
252
+ "max_abs_probability_error": 3.2186508178710938e-06,
253
+ "max_abs_logit_error": 0.03340768814086914
254
+ },
255
+ {
256
+ "row": 12,
257
+ "label": 15,
258
+ "upstream": 15,
259
+ "coreml": 15,
260
+ "max_abs_probability_error": 2.384185791015625e-06,
261
+ "max_abs_logit_error": 0.053191184997558594
262
+ },
263
+ {
264
+ "row": 13,
265
+ "label": 16,
266
+ "upstream": 16,
267
+ "coreml": 16,
268
+ "max_abs_probability_error": 0.0005360841751098633,
269
+ "max_abs_logit_error": 0.03362560272216797
270
+ },
271
+ {
272
+ "row": 14,
273
+ "label": 26,
274
+ "upstream": 26,
275
+ "coreml": 26,
276
+ "max_abs_probability_error": 1.8596649169921875e-05,
277
+ "max_abs_logit_error": 0.024669170379638672
278
+ },
279
+ {
280
+ "row": 15,
281
+ "label": 24,
282
+ "upstream": 24,
283
+ "coreml": 24,
284
+ "max_abs_probability_error": 1.6689300537109375e-05,
285
+ "max_abs_logit_error": 0.034501075744628906
286
+ },
287
+ {
288
+ "row": 16,
289
+ "label": 26,
290
+ "upstream": 26,
291
+ "coreml": 26,
292
+ "max_abs_probability_error": 1.440092489701783e-08,
293
+ "max_abs_logit_error": 0.033290743827819824
294
+ },
295
+ {
296
+ "row": 17,
297
+ "label": 25,
298
+ "upstream": 25,
299
+ "coreml": 25,
300
+ "max_abs_probability_error": 1.1920928955078125e-07,
301
+ "max_abs_logit_error": 0.03323173522949219
302
+ },
303
+ {
304
+ "row": 18,
305
+ "label": 26,
306
+ "upstream": 26,
307
+ "coreml": 26,
308
+ "max_abs_probability_error": 8.430758313693332e-09,
309
+ "max_abs_logit_error": 0.022179126739501953
310
+ },
311
+ {
312
+ "row": 19,
313
+ "label": 26,
314
+ "upstream": 26,
315
+ "coreml": 26,
316
+ "max_abs_probability_error": 3.0266471551243512e-09,
317
+ "max_abs_logit_error": 0.029880523681640625
318
+ },
319
+ {
320
+ "row": 20,
321
+ "label": 26,
322
+ "upstream": 26,
323
+ "coreml": 26,
324
+ "max_abs_probability_error": 2.4500966588902884e-08,
325
+ "max_abs_logit_error": 0.031145095825195312
326
+ },
327
+ {
328
+ "row": 21,
329
+ "label": 26,
330
+ "upstream": 26,
331
+ "coreml": 26,
332
+ "max_abs_probability_error": 1.647379281599637e-11,
333
+ "max_abs_logit_error": 0.03861522674560547
334
+ },
335
+ {
336
+ "row": 22,
337
+ "label": 26,
338
+ "upstream": 26,
339
+ "coreml": 26,
340
+ "max_abs_probability_error": 7.152557373046875e-07,
341
+ "max_abs_logit_error": 0.027164459228515625
342
+ },
343
+ {
344
+ "row": 23,
345
+ "label": 26,
346
+ "upstream": 26,
347
+ "coreml": 26,
348
+ "max_abs_probability_error": 5.960464477539062e-07,
349
+ "max_abs_logit_error": 0.058716535568237305
350
+ },
351
+ {
352
+ "row": 24,
353
+ "label": 26,
354
+ "upstream": 26,
355
+ "coreml": 26,
356
+ "max_abs_probability_error": 2.5055844551924444e-11,
357
+ "max_abs_logit_error": 0.035381317138671875
358
+ },
359
+ {
360
+ "row": 25,
361
+ "label": 26,
362
+ "upstream": 26,
363
+ "coreml": 26,
364
+ "max_abs_probability_error": 6.995705792434137e-09,
365
+ "max_abs_logit_error": 0.04862499237060547
366
+ },
367
+ {
368
+ "row": 26,
369
+ "label": 26,
370
+ "upstream": 26,
371
+ "coreml": 26,
372
+ "max_abs_probability_error": 6.470584068551943e-10,
373
+ "max_abs_logit_error": 0.029034733772277832
374
+ },
375
+ {
376
+ "row": 27,
377
+ "label": 26,
378
+ "upstream": 26,
379
+ "coreml": 26,
380
+ "max_abs_probability_error": 6.973024935241767e-11,
381
+ "max_abs_logit_error": 0.03808116912841797
382
+ },
383
+ {
384
+ "row": 28,
385
+ "label": 26,
386
+ "upstream": 26,
387
+ "coreml": 26,
388
+ "max_abs_probability_error": 5.994321927715873e-09,
389
+ "max_abs_logit_error": 0.03319191932678223
390
+ },
391
+ {
392
+ "row": 29,
393
+ "label": 26,
394
+ "upstream": 26,
395
+ "coreml": 26,
396
+ "max_abs_probability_error": 2.4426039316183257e-11,
397
+ "max_abs_logit_error": 0.030045509338378906
398
+ },
399
+ {
400
+ "row": 30,
401
+ "label": 26,
402
+ "upstream": 26,
403
+ "coreml": 26,
404
+ "max_abs_probability_error": 2.384185791015625e-07,
405
+ "max_abs_logit_error": 0.026231765747070312
406
+ },
407
+ {
408
+ "row": 31,
409
+ "label": 26,
410
+ "upstream": 26,
411
+ "coreml": 26,
412
+ "max_abs_probability_error": 7.78299757975276e-10,
413
+ "max_abs_logit_error": 0.033112093806266785
414
+ },
415
+ {
416
+ "row": 32,
417
+ "label": 26,
418
+ "upstream": 26,
419
+ "coreml": 26,
420
+ "max_abs_probability_error": 6.185003176284454e-09,
421
+ "max_abs_logit_error": 0.022128582000732422
422
+ },
423
+ {
424
+ "row": 33,
425
+ "label": 26,
426
+ "upstream": 26,
427
+ "coreml": 26,
428
+ "max_abs_probability_error": 3.4556297823229443e-09,
429
+ "max_abs_logit_error": 0.038306236267089844
430
+ },
431
+ {
432
+ "row": 34,
433
+ "label": 26,
434
+ "upstream": 26,
435
+ "coreml": 26,
436
+ "max_abs_probability_error": 0.0004820823669433594,
437
+ "max_abs_logit_error": 0.032683372497558594
438
+ },
439
+ {
440
+ "row": 35,
441
+ "label": 26,
442
+ "upstream": 26,
443
+ "coreml": 26,
444
+ "max_abs_probability_error": 1.462750809366753e-09,
445
+ "max_abs_logit_error": 0.029730796813964844
446
+ },
447
+ {
448
+ "row": 36,
449
+ "label": 26,
450
+ "upstream": 26,
451
+ "coreml": 26,
452
+ "max_abs_probability_error": 2.7510341227277024e-10,
453
+ "max_abs_logit_error": 0.02333354949951172
454
+ },
455
+ {
456
+ "row": 37,
457
+ "label": 26,
458
+ "upstream": 26,
459
+ "coreml": 26,
460
+ "max_abs_probability_error": 2.657592190757896e-08,
461
+ "max_abs_logit_error": 0.022855758666992188
462
+ },
463
+ {
464
+ "row": 38,
465
+ "label": 26,
466
+ "upstream": 26,
467
+ "coreml": 26,
468
+ "max_abs_probability_error": 9.552543478452691e-11,
469
+ "max_abs_logit_error": 0.023164749145507812
470
+ },
471
+ {
472
+ "row": 39,
473
+ "label": 26,
474
+ "upstream": 26,
475
+ "coreml": 26,
476
+ "max_abs_probability_error": 4.04716482549361e-10,
477
+ "max_abs_logit_error": 0.02880859375
478
+ },
479
+ {
480
+ "row": 40,
481
+ "label": 26,
482
+ "upstream": 26,
483
+ "coreml": 26,
484
+ "max_abs_probability_error": 0.00021719932556152344,
485
+ "max_abs_logit_error": 0.04735088348388672
486
+ },
487
+ {
488
+ "row": 41,
489
+ "label": 26,
490
+ "upstream": 26,
491
+ "coreml": 26,
492
+ "max_abs_probability_error": 6.146233744175333e-09,
493
+ "max_abs_logit_error": 0.03671276569366455
494
+ },
495
+ {
496
+ "row": 42,
497
+ "label": 26,
498
+ "upstream": 26,
499
+ "coreml": 26,
500
+ "max_abs_probability_error": 1.8819494851385343e-09,
501
+ "max_abs_logit_error": 0.023815155029296875
502
+ },
503
+ {
504
+ "row": 43,
505
+ "label": 26,
506
+ "upstream": 26,
507
+ "coreml": 26,
508
+ "max_abs_probability_error": 7.152557373046875e-07,
509
+ "max_abs_logit_error": 0.02039623260498047
510
+ },
511
+ {
512
+ "row": 44,
513
+ "label": 26,
514
+ "upstream": 26,
515
+ "coreml": 26,
516
+ "max_abs_probability_error": 1.780525865635596e-10,
517
+ "max_abs_logit_error": 0.022927284240722656
518
+ },
519
+ {
520
+ "row": 45,
521
+ "label": 26,
522
+ "upstream": 26,
523
+ "coreml": 26,
524
+ "max_abs_probability_error": 3.414331317674879e-11,
525
+ "max_abs_logit_error": 0.030417919158935547
526
+ },
527
+ {
528
+ "row": 46,
529
+ "label": 26,
530
+ "upstream": 26,
531
+ "coreml": 26,
532
+ "max_abs_probability_error": 5.599257724142603e-10,
533
+ "max_abs_logit_error": 0.025608062744140625
534
+ },
535
+ {
536
+ "row": 47,
537
+ "label": 26,
538
+ "upstream": 26,
539
+ "coreml": 26,
540
+ "max_abs_probability_error": 5.212314607705437e-11,
541
+ "max_abs_logit_error": 0.022733211517333984
542
+ },
543
+ {
544
+ "row": 48,
545
+ "label": 26,
546
+ "upstream": 26,
547
+ "coreml": 26,
548
+ "max_abs_probability_error": 1.8596649169921875e-05,
549
+ "max_abs_logit_error": 0.024669170379638672
550
+ },
551
+ {
552
+ "row": 49,
553
+ "label": 26,
554
+ "upstream": 26,
555
+ "coreml": 26,
556
+ "max_abs_probability_error": 1.932842080831776e-10,
557
+ "max_abs_logit_error": 0.030317306518554688
558
+ },
559
+ {
560
+ "row": 50,
561
+ "label": 26,
562
+ "upstream": 26,
563
+ "coreml": 26,
564
+ "max_abs_probability_error": 1.440092489701783e-08,
565
+ "max_abs_logit_error": 0.033290743827819824
566
+ },
567
+ {
568
+ "row": 51,
569
+ "label": 25,
570
+ "upstream": 25,
571
+ "coreml": 25,
572
+ "max_abs_probability_error": 1.1920928955078125e-07,
573
+ "max_abs_logit_error": 0.03323173522949219
574
+ },
575
+ {
576
+ "row": 52,
577
+ "label": 26,
578
+ "upstream": 26,
579
+ "coreml": 26,
580
+ "max_abs_probability_error": 8.430758313693332e-09,
581
+ "max_abs_logit_error": 0.022179126739501953
582
+ },
583
+ {
584
+ "row": 53,
585
+ "label": 26,
586
+ "upstream": 26,
587
+ "coreml": 26,
588
+ "max_abs_probability_error": 3.0266471551243512e-09,
589
+ "max_abs_logit_error": 0.029880523681640625
590
+ },
591
+ {
592
+ "row": 54,
593
+ "label": 26,
594
+ "upstream": 26,
595
+ "coreml": 26,
596
+ "max_abs_probability_error": 2.4500966588902884e-08,
597
+ "max_abs_logit_error": 0.031145095825195312
598
+ },
599
+ {
600
+ "row": 55,
601
+ "label": 26,
602
+ "upstream": 26,
603
+ "coreml": 26,
604
+ "max_abs_probability_error": 1.647379281599637e-11,
605
+ "max_abs_logit_error": 0.03861522674560547
606
+ },
607
+ {
608
+ "row": 56,
609
+ "label": 26,
610
+ "upstream": 26,
611
+ "coreml": 26,
612
+ "max_abs_probability_error": 7.152557373046875e-07,
613
+ "max_abs_logit_error": 0.027164459228515625
614
+ },
615
+ {
616
+ "row": 57,
617
+ "label": 26,
618
+ "upstream": 26,
619
+ "coreml": 26,
620
+ "max_abs_probability_error": 5.960464477539062e-07,
621
+ "max_abs_logit_error": 0.058716535568237305
622
+ },
623
+ {
624
+ "row": 58,
625
+ "label": 26,
626
+ "upstream": 26,
627
+ "coreml": 26,
628
+ "max_abs_probability_error": 2.5055844551924444e-11,
629
+ "max_abs_logit_error": 0.035381317138671875
630
+ },
631
+ {
632
+ "row": 59,
633
+ "label": 26,
634
+ "upstream": 26,
635
+ "coreml": 26,
636
+ "max_abs_probability_error": 6.995705792434137e-09,
637
+ "max_abs_logit_error": 0.04862499237060547
638
+ },
639
+ {
640
+ "row": 60,
641
+ "label": 26,
642
+ "upstream": 26,
643
+ "coreml": 26,
644
+ "max_abs_probability_error": 6.470584068551943e-10,
645
+ "max_abs_logit_error": 0.029034733772277832
646
+ },
647
+ {
648
+ "row": 61,
649
+ "label": 26,
650
+ "upstream": 26,
651
+ "coreml": 26,
652
+ "max_abs_probability_error": 6.973024935241767e-11,
653
+ "max_abs_logit_error": 0.03808116912841797
654
+ },
655
+ {
656
+ "row": 62,
657
+ "label": 26,
658
+ "upstream": 26,
659
+ "coreml": 26,
660
+ "max_abs_probability_error": 5.994321927715873e-09,
661
+ "max_abs_logit_error": 0.03319191932678223
662
+ },
663
+ {
664
+ "row": 63,
665
+ "label": 26,
666
+ "upstream": 26,
667
+ "coreml": 26,
668
+ "max_abs_probability_error": 2.4426039316183257e-11,
669
+ "max_abs_logit_error": 0.030045509338378906
670
+ },
671
+ {
672
+ "row": 64,
673
+ "label": 26,
674
+ "upstream": 26,
675
+ "coreml": 26,
676
+ "max_abs_probability_error": 2.384185791015625e-07,
677
+ "max_abs_logit_error": 0.026231765747070312
678
+ },
679
+ {
680
+ "row": 65,
681
+ "label": 26,
682
+ "upstream": 26,
683
+ "coreml": 26,
684
+ "max_abs_probability_error": 7.78299757975276e-10,
685
+ "max_abs_logit_error": 0.033112093806266785
686
+ },
687
+ {
688
+ "row": 66,
689
+ "label": 26,
690
+ "upstream": 26,
691
+ "coreml": 26,
692
+ "max_abs_probability_error": 6.185003176284454e-09,
693
+ "max_abs_logit_error": 0.022128582000732422
694
+ },
695
+ {
696
+ "row": 67,
697
+ "label": 26,
698
+ "upstream": 26,
699
+ "coreml": 26,
700
+ "max_abs_probability_error": 3.4556297823229443e-09,
701
+ "max_abs_logit_error": 0.038306236267089844
702
+ },
703
+ {
704
+ "row": 68,
705
+ "label": 0,
706
+ "upstream": 0,
707
+ "coreml": 0,
708
+ "max_abs_probability_error": 3.147125244140625e-05,
709
+ "max_abs_logit_error": 0.03265953063964844
710
+ },
711
+ {
712
+ "row": 69,
713
+ "label": 1,
714
+ "upstream": 1,
715
+ "coreml": 1,
716
+ "max_abs_probability_error": 5.030632019042969e-05,
717
+ "max_abs_logit_error": 0.038794517517089844
718
+ },
719
+ {
720
+ "row": 70,
721
+ "label": 2,
722
+ "upstream": 2,
723
+ "coreml": 2,
724
+ "max_abs_probability_error": 1.7881393432617188e-06,
725
+ "max_abs_logit_error": 0.040470123291015625
726
+ },
727
+ {
728
+ "row": 71,
729
+ "label": 3,
730
+ "upstream": 3,
731
+ "coreml": 3,
732
+ "max_abs_probability_error": 5.2928924560546875e-05,
733
+ "max_abs_logit_error": 0.040035247802734375
734
+ },
735
+ {
736
+ "row": 72,
737
+ "label": 5,
738
+ "upstream": 5,
739
+ "coreml": 5,
740
+ "max_abs_probability_error": 4.649162292480469e-06,
741
+ "max_abs_logit_error": 0.042186737060546875
742
+ },
743
+ {
744
+ "row": 73,
745
+ "label": 6,
746
+ "upstream": 6,
747
+ "coreml": 6,
748
+ "max_abs_probability_error": 2.1576881408691406e-05,
749
+ "max_abs_logit_error": 0.033161163330078125
750
+ },
751
+ {
752
+ "row": 74,
753
+ "label": 7,
754
+ "upstream": 7,
755
+ "coreml": 7,
756
+ "max_abs_probability_error": 4.470348358154297e-05,
757
+ "max_abs_logit_error": 0.0293731689453125
758
+ },
759
+ {
760
+ "row": 75,
761
+ "label": 8,
762
+ "upstream": 8,
763
+ "coreml": 8,
764
+ "max_abs_probability_error": 1.1563301086425781e-05,
765
+ "max_abs_logit_error": 0.03249359130859375
766
+ },
767
+ {
768
+ "row": 76,
769
+ "label": 9,
770
+ "upstream": 9,
771
+ "coreml": 9,
772
+ "max_abs_probability_error": 2.86102294921875e-06,
773
+ "max_abs_logit_error": 0.03498554229736328
774
+ },
775
+ {
776
+ "row": 77,
777
+ "label": 13,
778
+ "upstream": 13,
779
+ "coreml": 13,
780
+ "max_abs_probability_error": 0.0003635883331298828,
781
+ "max_abs_logit_error": 0.023473739624023438
782
+ },
783
+ {
784
+ "row": 78,
785
+ "label": 20,
786
+ "upstream": 20,
787
+ "coreml": 20,
788
+ "max_abs_probability_error": 9.5367431640625e-07,
789
+ "max_abs_logit_error": 0.034421443939208984
790
+ },
791
+ {
792
+ "row": 79,
793
+ "label": 18,
794
+ "upstream": 18,
795
+ "coreml": 18,
796
+ "max_abs_probability_error": 0.0003609657287597656,
797
+ "max_abs_logit_error": 0.03937721252441406
798
+ },
799
+ {
800
+ "row": 80,
801
+ "label": 18,
802
+ "upstream": 18,
803
+ "coreml": 18,
804
+ "max_abs_probability_error": 2.384185791015625e-07,
805
+ "max_abs_logit_error": 0.03752422332763672
806
+ },
807
+ {
808
+ "row": 81,
809
+ "label": 20,
810
+ "upstream": 20,
811
+ "coreml": 20,
812
+ "max_abs_probability_error": 1.7881393432617188e-06,
813
+ "max_abs_logit_error": 0.025417327880859375
814
+ },
815
+ {
816
+ "row": 82,
817
+ "label": 19,
818
+ "upstream": 19,
819
+ "coreml": 19,
820
+ "max_abs_probability_error": 2.384185791015625e-07,
821
+ "max_abs_logit_error": 0.04453086853027344
822
+ },
823
+ {
824
+ "row": 83,
825
+ "label": 20,
826
+ "upstream": 20,
827
+ "coreml": 20,
828
+ "max_abs_probability_error": 5.0942090545902374e-09,
829
+ "max_abs_logit_error": 0.023950576782226562
830
+ },
831
+ {
832
+ "row": 84,
833
+ "label": 20,
834
+ "upstream": 20,
835
+ "coreml": 20,
836
+ "max_abs_probability_error": 2.384185791015625e-07,
837
+ "max_abs_logit_error": 0.022706031799316406
838
+ },
839
+ {
840
+ "row": 85,
841
+ "label": 20,
842
+ "upstream": 20,
843
+ "coreml": 20,
844
+ "max_abs_probability_error": 3.5405053888659666e-10,
845
+ "max_abs_logit_error": 0.035375118255615234
846
+ },
847
+ {
848
+ "row": 86,
849
+ "label": 20,
850
+ "upstream": 20,
851
+ "coreml": 20,
852
+ "max_abs_probability_error": 4.76837158203125e-07,
853
+ "max_abs_logit_error": 0.03717994689941406
854
+ },
855
+ {
856
+ "row": 87,
857
+ "label": 20,
858
+ "upstream": 20,
859
+ "coreml": 20,
860
+ "max_abs_probability_error": 1.1920928955078125e-07,
861
+ "max_abs_logit_error": 0.04058122634887695
862
+ },
863
+ {
864
+ "row": 88,
865
+ "label": 20,
866
+ "upstream": 20,
867
+ "coreml": 20,
868
+ "max_abs_probability_error": 1.3188037328859537e-09,
869
+ "max_abs_logit_error": 0.032048702239990234
870
+ },
871
+ {
872
+ "row": 89,
873
+ "label": 20,
874
+ "upstream": 20,
875
+ "coreml": 20,
876
+ "max_abs_probability_error": 1.9970605169561395e-09,
877
+ "max_abs_logit_error": 0.030427932739257812
878
+ },
879
+ {
880
+ "row": 90,
881
+ "label": 20,
882
+ "upstream": 20,
883
+ "coreml": 20,
884
+ "max_abs_probability_error": 1.7617375336342889e-09,
885
+ "max_abs_logit_error": 0.0281219482421875
886
+ },
887
+ {
888
+ "row": 91,
889
+ "label": 20,
890
+ "upstream": 20,
891
+ "coreml": 20,
892
+ "max_abs_probability_error": 1.612549260787688e-10,
893
+ "max_abs_logit_error": 0.030226707458496094
894
+ },
895
+ {
896
+ "row": 92,
897
+ "label": 20,
898
+ "upstream": 20,
899
+ "coreml": 20,
900
+ "max_abs_probability_error": 6.506330630512425e-12,
901
+ "max_abs_logit_error": 0.04007530212402344
902
+ },
903
+ {
904
+ "row": 93,
905
+ "label": 20,
906
+ "upstream": 20,
907
+ "coreml": 20,
908
+ "max_abs_probability_error": 1.5150824594911683e-08,
909
+ "max_abs_logit_error": 0.02728891372680664
910
+ },
911
+ {
912
+ "row": 94,
913
+ "label": 20,
914
+ "upstream": 20,
915
+ "coreml": 20,
916
+ "max_abs_probability_error": 1.3666674458789885e-09,
917
+ "max_abs_logit_error": 0.0217437744140625
918
+ },
919
+ {
920
+ "row": 95,
921
+ "label": 20,
922
+ "upstream": 20,
923
+ "coreml": 20,
924
+ "max_abs_probability_error": 3.969476136678196e-10,
925
+ "max_abs_logit_error": 0.03214454650878906
926
+ },
927
+ {
928
+ "row": 96,
929
+ "label": 20,
930
+ "upstream": 20,
931
+ "coreml": 20,
932
+ "max_abs_probability_error": 2.657726538846106e-10,
933
+ "max_abs_logit_error": 0.03669023513793945
934
+ },
935
+ {
936
+ "row": 97,
937
+ "label": 20,
938
+ "upstream": 20,
939
+ "coreml": 20,
940
+ "max_abs_probability_error": 1.9073486328125e-06,
941
+ "max_abs_logit_error": 0.019012451171875
942
+ },
943
+ {
944
+ "row": 98,
945
+ "label": 20,
946
+ "upstream": 20,
947
+ "coreml": 20,
948
+ "max_abs_probability_error": 2.384185791015625e-07,
949
+ "max_abs_logit_error": 0.026651382446289062
950
+ },
951
+ {
952
+ "row": 99,
953
+ "label": 20,
954
+ "upstream": 20,
955
+ "coreml": 20,
956
+ "max_abs_probability_error": 2.1457672119140625e-06,
957
+ "max_abs_logit_error": 0.04161381721496582
958
+ },
959
+ {
960
+ "row": 100,
961
+ "label": 20,
962
+ "upstream": 20,
963
+ "coreml": 20,
964
+ "max_abs_probability_error": 9.5367431640625e-07,
965
+ "max_abs_logit_error": 0.04680633544921875
966
+ },
967
+ {
968
+ "row": 101,
969
+ "label": 20,
970
+ "upstream": 20,
971
+ "coreml": 20,
972
+ "max_abs_probability_error": 1.789079107084035e-08,
973
+ "max_abs_logit_error": 0.029542922973632812
974
+ },
975
+ {
976
+ "row": 102,
977
+ "label": 20,
978
+ "upstream": 20,
979
+ "coreml": 20,
980
+ "max_abs_probability_error": 2.5862225694339713e-09,
981
+ "max_abs_logit_error": 0.023795127868652344
982
+ },
983
+ {
984
+ "row": 103,
985
+ "label": 20,
986
+ "upstream": 20,
987
+ "coreml": 20,
988
+ "max_abs_probability_error": 0.00024586915969848633,
989
+ "max_abs_logit_error": 0.030111312866210938
990
+ },
991
+ {
992
+ "row": 104,
993
+ "label": 20,
994
+ "upstream": 20,
995
+ "coreml": 20,
996
+ "max_abs_probability_error": 5.841255187988281e-06,
997
+ "max_abs_logit_error": 0.03126239776611328
998
+ },
999
+ {
1000
+ "row": 105,
1001
+ "label": 20,
1002
+ "upstream": 20,
1003
+ "coreml": 20,
1004
+ "max_abs_probability_error": 4.928799035575082e-10,
1005
+ "max_abs_logit_error": 0.026149272918701172
1006
+ },
1007
+ {
1008
+ "row": 106,
1009
+ "label": 20,
1010
+ "upstream": 20,
1011
+ "coreml": 20,
1012
+ "max_abs_probability_error": 2.4136979082101107e-09,
1013
+ "max_abs_logit_error": 0.024585723876953125
1014
+ },
1015
+ {
1016
+ "row": 107,
1017
+ "label": 20,
1018
+ "upstream": 20,
1019
+ "coreml": 20,
1020
+ "max_abs_probability_error": 6.302839361538304e-10,
1021
+ "max_abs_logit_error": 0.024765491485595703
1022
+ },
1023
+ {
1024
+ "row": 108,
1025
+ "label": 20,
1026
+ "upstream": 20,
1027
+ "coreml": 20,
1028
+ "max_abs_probability_error": 1.1920928955078125e-07,
1029
+ "max_abs_logit_error": 0.03492164611816406
1030
+ },
1031
+ {
1032
+ "row": 109,
1033
+ "label": 20,
1034
+ "upstream": 20,
1035
+ "coreml": 20,
1036
+ "max_abs_probability_error": 9.5367431640625e-07,
1037
+ "max_abs_logit_error": 0.034421443939208984
1038
+ },
1039
+ {
1040
+ "row": 110,
1041
+ "label": 20,
1042
+ "upstream": 20,
1043
+ "coreml": 20,
1044
+ "max_abs_probability_error": 9.5367431640625e-07,
1045
+ "max_abs_logit_error": 0.0320439338684082
1046
+ },
1047
+ {
1048
+ "row": 111,
1049
+ "label": 20,
1050
+ "upstream": 20,
1051
+ "coreml": 20,
1052
+ "max_abs_probability_error": 1.811981201171875e-05,
1053
+ "max_abs_logit_error": 0.032814979553222656
1054
+ },
1055
+ {
1056
+ "row": 112,
1057
+ "label": 20,
1058
+ "upstream": 20,
1059
+ "coreml": 20,
1060
+ "max_abs_probability_error": 1.7881393432617188e-06,
1061
+ "max_abs_logit_error": 0.025417327880859375
1062
+ },
1063
+ {
1064
+ "row": 113,
1065
+ "label": 19,
1066
+ "upstream": 19,
1067
+ "coreml": 19,
1068
+ "max_abs_probability_error": 2.384185791015625e-07,
1069
+ "max_abs_logit_error": 0.04453086853027344
1070
+ },
1071
+ {
1072
+ "row": 114,
1073
+ "label": 20,
1074
+ "upstream": 20,
1075
+ "coreml": 20,
1076
+ "max_abs_probability_error": 5.0942090545902374e-09,
1077
+ "max_abs_logit_error": 0.023950576782226562
1078
+ },
1079
+ {
1080
+ "row": 115,
1081
+ "label": 20,
1082
+ "upstream": 20,
1083
+ "coreml": 20,
1084
+ "max_abs_probability_error": 2.384185791015625e-07,
1085
+ "max_abs_logit_error": 0.022706031799316406
1086
+ },
1087
+ {
1088
+ "row": 116,
1089
+ "label": 20,
1090
+ "upstream": 20,
1091
+ "coreml": 20,
1092
+ "max_abs_probability_error": 3.5405053888659666e-10,
1093
+ "max_abs_logit_error": 0.035375118255615234
1094
+ },
1095
+ {
1096
+ "row": 117,
1097
+ "label": 20,
1098
+ "upstream": 20,
1099
+ "coreml": 20,
1100
+ "max_abs_probability_error": 4.76837158203125e-07,
1101
+ "max_abs_logit_error": 0.03717994689941406
1102
+ },
1103
+ {
1104
+ "row": 118,
1105
+ "label": 20,
1106
+ "upstream": 20,
1107
+ "coreml": 20,
1108
+ "max_abs_probability_error": 1.1920928955078125e-07,
1109
+ "max_abs_logit_error": 0.04058122634887695
1110
+ },
1111
+ {
1112
+ "row": 119,
1113
+ "label": 20,
1114
+ "upstream": 20,
1115
+ "coreml": 20,
1116
+ "max_abs_probability_error": 1.3188037328859537e-09,
1117
+ "max_abs_logit_error": 0.032048702239990234
1118
+ },
1119
+ {
1120
+ "row": 120,
1121
+ "label": 20,
1122
+ "upstream": 20,
1123
+ "coreml": 20,
1124
+ "max_abs_probability_error": 1.9970605169561395e-09,
1125
+ "max_abs_logit_error": 0.030427932739257812
1126
+ },
1127
+ {
1128
+ "row": 121,
1129
+ "label": 20,
1130
+ "upstream": 20,
1131
+ "coreml": 20,
1132
+ "max_abs_probability_error": 1.7617375336342889e-09,
1133
+ "max_abs_logit_error": 0.0281219482421875
1134
+ },
1135
+ {
1136
+ "row": 122,
1137
+ "label": 20,
1138
+ "upstream": 20,
1139
+ "coreml": 20,
1140
+ "max_abs_probability_error": 1.612549260787688e-10,
1141
+ "max_abs_logit_error": 0.030226707458496094
1142
+ },
1143
+ {
1144
+ "row": 123,
1145
+ "label": 20,
1146
+ "upstream": 20,
1147
+ "coreml": 20,
1148
+ "max_abs_probability_error": 6.506330630512425e-12,
1149
+ "max_abs_logit_error": 0.04007530212402344
1150
+ },
1151
+ {
1152
+ "row": 124,
1153
+ "label": 20,
1154
+ "upstream": 20,
1155
+ "coreml": 20,
1156
+ "max_abs_probability_error": 1.5150824594911683e-08,
1157
+ "max_abs_logit_error": 0.02728891372680664
1158
+ },
1159
+ {
1160
+ "row": 125,
1161
+ "label": 20,
1162
+ "upstream": 20,
1163
+ "coreml": 20,
1164
+ "max_abs_probability_error": 1.3666674458789885e-09,
1165
+ "max_abs_logit_error": 0.0217437744140625
1166
+ },
1167
+ {
1168
+ "row": 126,
1169
+ "label": 20,
1170
+ "upstream": 20,
1171
+ "coreml": 20,
1172
+ "max_abs_probability_error": 3.969476136678196e-10,
1173
+ "max_abs_logit_error": 0.03214454650878906
1174
+ },
1175
+ {
1176
+ "row": 127,
1177
+ "label": 20,
1178
+ "upstream": 20,
1179
+ "coreml": 20,
1180
+ "max_abs_probability_error": 2.657726538846106e-10,
1181
+ "max_abs_logit_error": 0.03669023513793945
1182
+ },
1183
+ {
1184
+ "row": 128,
1185
+ "label": 20,
1186
+ "upstream": 20,
1187
+ "coreml": 20,
1188
+ "max_abs_probability_error": 1.9073486328125e-06,
1189
+ "max_abs_logit_error": 0.019012451171875
1190
+ },
1191
+ {
1192
+ "row": 129,
1193
+ "label": 20,
1194
+ "upstream": 20,
1195
+ "coreml": 20,
1196
+ "max_abs_probability_error": 2.384185791015625e-07,
1197
+ "max_abs_logit_error": 0.026651382446289062
1198
+ },
1199
+ {
1200
+ "row": 130,
1201
+ "label": 1,
1202
+ "upstream": 1,
1203
+ "coreml": 1,
1204
+ "max_abs_probability_error": 3.170967102050781e-05,
1205
+ "max_abs_logit_error": 0.071075439453125
1206
+ },
1207
+ {
1208
+ "row": 131,
1209
+ "label": 2,
1210
+ "upstream": 2,
1211
+ "coreml": 2,
1212
+ "max_abs_probability_error": 8.344650268554688e-07,
1213
+ "max_abs_logit_error": 0.051357269287109375
1214
+ },
1215
+ {
1216
+ "row": 132,
1217
+ "label": 3,
1218
+ "upstream": 3,
1219
+ "coreml": 3,
1220
+ "max_abs_probability_error": 2.7894973754882812e-05,
1221
+ "max_abs_logit_error": 0.033801641315221786
1222
+ },
1223
+ {
1224
+ "row": 133,
1225
+ "label": 4,
1226
+ "upstream": 4,
1227
+ "coreml": 4,
1228
+ "max_abs_probability_error": 1.0967254638671875e-05,
1229
+ "max_abs_logit_error": 0.039325714111328125
1230
+ },
1231
+ {
1232
+ "row": 134,
1233
+ "label": 5,
1234
+ "upstream": 5,
1235
+ "coreml": 5,
1236
+ "max_abs_probability_error": 6.258487701416016e-05,
1237
+ "max_abs_logit_error": 0.033056676387786865
1238
+ },
1239
+ {
1240
+ "row": 135,
1241
+ "label": 6,
1242
+ "upstream": 6,
1243
+ "coreml": 6,
1244
+ "max_abs_probability_error": 1.2993812561035156e-05,
1245
+ "max_abs_logit_error": 0.02561807632446289
1246
+ },
1247
+ {
1248
+ "row": 136,
1249
+ "label": 7,
1250
+ "upstream": 7,
1251
+ "coreml": 7,
1252
+ "max_abs_probability_error": 6.198883056640625e-06,
1253
+ "max_abs_logit_error": 0.03448677062988281
1254
+ },
1255
+ {
1256
+ "row": 137,
1257
+ "label": 8,
1258
+ "upstream": 8,
1259
+ "coreml": 8,
1260
+ "max_abs_probability_error": 0.00233614444732666,
1261
+ "max_abs_logit_error": 0.04230833053588867
1262
+ },
1263
+ {
1264
+ "row": 138,
1265
+ "label": 9,
1266
+ "upstream": 9,
1267
+ "coreml": 9,
1268
+ "max_abs_probability_error": 0.00022917985916137695,
1269
+ "max_abs_logit_error": 0.05339241027832031
1270
+ },
1271
+ {
1272
+ "row": 139,
1273
+ "label": 10,
1274
+ "upstream": 10,
1275
+ "coreml": 10,
1276
+ "max_abs_probability_error": 4.851818084716797e-05,
1277
+ "max_abs_logit_error": 0.032756805419921875
1278
+ },
1279
+ {
1280
+ "row": 140,
1281
+ "label": 11,
1282
+ "upstream": 11,
1283
+ "coreml": 11,
1284
+ "max_abs_probability_error": 3.0994415283203125e-06,
1285
+ "max_abs_logit_error": 0.029809951782226562
1286
+ },
1287
+ {
1288
+ "row": 141,
1289
+ "label": 12,
1290
+ "upstream": 12,
1291
+ "coreml": 12,
1292
+ "max_abs_probability_error": 9.34600830078125e-05,
1293
+ "max_abs_logit_error": 0.026587963104248047
1294
+ },
1295
+ {
1296
+ "row": 142,
1297
+ "label": 18,
1298
+ "upstream": 18,
1299
+ "coreml": 18,
1300
+ "max_abs_probability_error": 1.9073486328125e-06,
1301
+ "max_abs_logit_error": 0.03671073913574219
1302
+ },
1303
+ {
1304
+ "row": 143,
1305
+ "label": 16,
1306
+ "upstream": 16,
1307
+ "coreml": 16,
1308
+ "max_abs_probability_error": 7.152557373046875e-07,
1309
+ "max_abs_logit_error": 0.05281543731689453
1310
+ },
1311
+ {
1312
+ "row": 144,
1313
+ "label": 18,
1314
+ "upstream": 18,
1315
+ "coreml": 18,
1316
+ "max_abs_probability_error": 1.1920928955078125e-06,
1317
+ "max_abs_logit_error": 0.04511451721191406
1318
+ },
1319
+ {
1320
+ "row": 145,
1321
+ "label": 18,
1322
+ "upstream": 18,
1323
+ "coreml": 18,
1324
+ "max_abs_probability_error": 3.6954879760742188e-06,
1325
+ "max_abs_logit_error": 0.07230281829833984
1326
+ },
1327
+ {
1328
+ "row": 146,
1329
+ "label": 17,
1330
+ "upstream": 17,
1331
+ "coreml": 17,
1332
+ "max_abs_probability_error": 1.1920928955078125e-07,
1333
+ "max_abs_logit_error": 0.03114461898803711
1334
+ },
1335
+ {
1336
+ "row": 147,
1337
+ "label": 18,
1338
+ "upstream": 18,
1339
+ "coreml": 18,
1340
+ "max_abs_probability_error": 8.429776876539563e-09,
1341
+ "max_abs_logit_error": 0.020772457122802734
1342
+ },
1343
+ {
1344
+ "row": 148,
1345
+ "label": 18,
1346
+ "upstream": 18,
1347
+ "coreml": 18,
1348
+ "max_abs_probability_error": 9.215698426601193e-09,
1349
+ "max_abs_logit_error": 0.03475606441497803
1350
+ },
1351
+ {
1352
+ "row": 149,
1353
+ "label": 18,
1354
+ "upstream": 18,
1355
+ "coreml": 18,
1356
+ "max_abs_probability_error": 3.84208304060607e-10,
1357
+ "max_abs_logit_error": 0.020298004150390625
1358
+ },
1359
+ {
1360
+ "row": 150,
1361
+ "label": 18,
1362
+ "upstream": 18,
1363
+ "coreml": 18,
1364
+ "max_abs_probability_error": 7.947568818333917e-12,
1365
+ "max_abs_logit_error": 0.04283332824707031
1366
+ },
1367
+ {
1368
+ "row": 151,
1369
+ "label": 18,
1370
+ "upstream": 18,
1371
+ "coreml": 18,
1372
+ "max_abs_probability_error": 5.291168614363073e-10,
1373
+ "max_abs_logit_error": 0.028450965881347656
1374
+ },
1375
+ {
1376
+ "row": 152,
1377
+ "label": 18,
1378
+ "upstream": 18,
1379
+ "coreml": 18,
1380
+ "max_abs_probability_error": 7.924417788629512e-10,
1381
+ "max_abs_logit_error": 0.02250051498413086
1382
+ },
1383
+ {
1384
+ "row": 153,
1385
+ "label": 18,
1386
+ "upstream": 18,
1387
+ "coreml": 18,
1388
+ "max_abs_probability_error": 1.837478791344438e-08,
1389
+ "max_abs_logit_error": 0.06335592269897461
1390
+ },
1391
+ {
1392
+ "row": 154,
1393
+ "label": 18,
1394
+ "upstream": 18,
1395
+ "coreml": 18,
1396
+ "max_abs_probability_error": 3.3051329034750054e-11,
1397
+ "max_abs_logit_error": 0.02735137939453125
1398
+ },
1399
+ {
1400
+ "row": 155,
1401
+ "label": 18,
1402
+ "upstream": 18,
1403
+ "coreml": 18,
1404
+ "max_abs_probability_error": 1.650468511860126e-10,
1405
+ "max_abs_logit_error": 0.015047073364257812
1406
+ },
1407
+ {
1408
+ "row": 156,
1409
+ "label": 18,
1410
+ "upstream": 18,
1411
+ "coreml": 18,
1412
+ "max_abs_probability_error": 6.181078218703284e-12,
1413
+ "max_abs_logit_error": 0.04868888854980469
1414
+ },
1415
+ {
1416
+ "row": 157,
1417
+ "label": 18,
1418
+ "upstream": 18,
1419
+ "coreml": 18,
1420
+ "max_abs_probability_error": 1.6455586893115992e-10,
1421
+ "max_abs_logit_error": 0.026497364044189453
1422
+ },
1423
+ {
1424
+ "row": 158,
1425
+ "label": 18,
1426
+ "upstream": 18,
1427
+ "coreml": 18,
1428
+ "max_abs_probability_error": 6.109900363426846e-10,
1429
+ "max_abs_logit_error": 0.022236347198486328
1430
+ },
1431
+ {
1432
+ "row": 159,
1433
+ "label": 18,
1434
+ "upstream": 18,
1435
+ "coreml": 18,
1436
+ "max_abs_probability_error": 6.693580800742893e-09,
1437
+ "max_abs_logit_error": 0.020044326782226562
1438
+ },
1439
+ {
1440
+ "row": 160,
1441
+ "label": 18,
1442
+ "upstream": 18,
1443
+ "coreml": 18,
1444
+ "max_abs_probability_error": 1.3718365998727222e-08,
1445
+ "max_abs_logit_error": 0.05533123016357422
1446
+ },
1447
+ {
1448
+ "row": 161,
1449
+ "label": 18,
1450
+ "upstream": 18,
1451
+ "coreml": 18,
1452
+ "max_abs_probability_error": 8.344650268554688e-07,
1453
+ "max_abs_logit_error": 0.0247042179107666
1454
+ },
1455
+ {
1456
+ "row": 162,
1457
+ "label": 18,
1458
+ "upstream": 18,
1459
+ "coreml": 18,
1460
+ "max_abs_probability_error": 1.042114572413766e-08,
1461
+ "max_abs_logit_error": 0.028873443603515625
1462
+ },
1463
+ {
1464
+ "row": 163,
1465
+ "label": 18,
1466
+ "upstream": 18,
1467
+ "coreml": 18,
1468
+ "max_abs_probability_error": 1.9131388140358752e-10,
1469
+ "max_abs_logit_error": 0.015494346618652344
1470
+ },
1471
+ {
1472
+ "row": 164,
1473
+ "label": 18,
1474
+ "upstream": 18,
1475
+ "coreml": 18,
1476
+ "max_abs_probability_error": 1.0254025184508464e-08,
1477
+ "max_abs_logit_error": 0.02497100830078125
1478
+ },
1479
+ {
1480
+ "row": 165,
1481
+ "label": 18,
1482
+ "upstream": 18,
1483
+ "coreml": 18,
1484
+ "max_abs_probability_error": 5.15840287151903e-11,
1485
+ "max_abs_logit_error": 0.02679443359375
1486
+ },
1487
+ {
1488
+ "row": 166,
1489
+ "label": 18,
1490
+ "upstream": 18,
1491
+ "coreml": 18,
1492
+ "max_abs_probability_error": 2.6797479790729994e-09,
1493
+ "max_abs_logit_error": 0.028203964233398438
1494
+ },
1495
+ {
1496
+ "row": 167,
1497
+ "label": 18,
1498
+ "upstream": 18,
1499
+ "coreml": 18,
1500
+ "max_abs_probability_error": 7.54509399403247e-10,
1501
+ "max_abs_logit_error": 0.03371429443359375
1502
+ },
1503
+ {
1504
+ "row": 168,
1505
+ "label": 18,
1506
+ "upstream": 18,
1507
+ "coreml": 18,
1508
+ "max_abs_probability_error": 8.344650268554688e-07,
1509
+ "max_abs_logit_error": 0.028280355036258698
1510
+ },
1511
+ {
1512
+ "row": 169,
1513
+ "label": 18,
1514
+ "upstream": 18,
1515
+ "coreml": 18,
1516
+ "max_abs_probability_error": 2.4169340140378637e-11,
1517
+ "max_abs_logit_error": 0.038245439529418945
1518
+ },
1519
+ {
1520
+ "row": 170,
1521
+ "label": 18,
1522
+ "upstream": 18,
1523
+ "coreml": 18,
1524
+ "max_abs_probability_error": 3.0329603412093675e-11,
1525
+ "max_abs_logit_error": 0.030043363571166992
1526
+ },
1527
+ {
1528
+ "row": 171,
1529
+ "label": 18,
1530
+ "upstream": 18,
1531
+ "coreml": 18,
1532
+ "max_abs_probability_error": 1.7881393432617188e-06,
1533
+ "max_abs_logit_error": 0.02963542938232422
1534
+ },
1535
+ {
1536
+ "row": 172,
1537
+ "label": 18,
1538
+ "upstream": 18,
1539
+ "coreml": 18,
1540
+ "max_abs_probability_error": 4.66337235494052e-09,
1541
+ "max_abs_logit_error": 0.03510093688964844
1542
+ },
1543
+ {
1544
+ "row": 173,
1545
+ "label": 18,
1546
+ "upstream": 18,
1547
+ "coreml": 18,
1548
+ "max_abs_probability_error": 1.2885730260592254e-09,
1549
+ "max_abs_logit_error": 0.04009199142456055
1550
+ },
1551
+ {
1552
+ "row": 174,
1553
+ "label": 18,
1554
+ "upstream": 18,
1555
+ "coreml": 18,
1556
+ "max_abs_probability_error": 1.1279766010119374e-09,
1557
+ "max_abs_logit_error": 0.031810760498046875
1558
+ },
1559
+ {
1560
+ "row": 175,
1561
+ "label": 18,
1562
+ "upstream": 18,
1563
+ "coreml": 18,
1564
+ "max_abs_probability_error": 1.9073486328125e-06,
1565
+ "max_abs_logit_error": 0.03671073913574219
1566
+ },
1567
+ {
1568
+ "row": 176,
1569
+ "label": 18,
1570
+ "upstream": 18,
1571
+ "coreml": 18,
1572
+ "max_abs_probability_error": 1.0728836059570312e-06,
1573
+ "max_abs_logit_error": 0.05123615264892578
1574
+ },
1575
+ {
1576
+ "row": 177,
1577
+ "label": 18,
1578
+ "upstream": 18,
1579
+ "coreml": 18,
1580
+ "max_abs_probability_error": 1.2799782567185503e-08,
1581
+ "max_abs_logit_error": 0.03157186508178711
1582
+ },
1583
+ {
1584
+ "row": 178,
1585
+ "label": 18,
1586
+ "upstream": 18,
1587
+ "coreml": 18,
1588
+ "max_abs_probability_error": 3.6954879760742188e-06,
1589
+ "max_abs_logit_error": 0.07230281829833984
1590
+ },
1591
+ {
1592
+ "row": 179,
1593
+ "label": 17,
1594
+ "upstream": 17,
1595
+ "coreml": 17,
1596
+ "max_abs_probability_error": 1.1920928955078125e-07,
1597
+ "max_abs_logit_error": 0.03114461898803711
1598
+ },
1599
+ {
1600
+ "row": 180,
1601
+ "label": 18,
1602
+ "upstream": 18,
1603
+ "coreml": 18,
1604
+ "max_abs_probability_error": 8.429776876539563e-09,
1605
+ "max_abs_logit_error": 0.020772457122802734
1606
+ },
1607
+ {
1608
+ "row": 181,
1609
+ "label": 18,
1610
+ "upstream": 18,
1611
+ "coreml": 18,
1612
+ "max_abs_probability_error": 9.215698426601193e-09,
1613
+ "max_abs_logit_error": 0.03475606441497803
1614
+ },
1615
+ {
1616
+ "row": 182,
1617
+ "label": 18,
1618
+ "upstream": 18,
1619
+ "coreml": 18,
1620
+ "max_abs_probability_error": 3.84208304060607e-10,
1621
+ "max_abs_logit_error": 0.020298004150390625
1622
+ },
1623
+ {
1624
+ "row": 183,
1625
+ "label": 18,
1626
+ "upstream": 18,
1627
+ "coreml": 18,
1628
+ "max_abs_probability_error": 7.947568818333917e-12,
1629
+ "max_abs_logit_error": 0.04283332824707031
1630
+ },
1631
+ {
1632
+ "row": 184,
1633
+ "label": 18,
1634
+ "upstream": 18,
1635
+ "coreml": 18,
1636
+ "max_abs_probability_error": 5.291168614363073e-10,
1637
+ "max_abs_logit_error": 0.028450965881347656
1638
+ },
1639
+ {
1640
+ "row": 185,
1641
+ "label": 18,
1642
+ "upstream": 18,
1643
+ "coreml": 18,
1644
+ "max_abs_probability_error": 7.924417788629512e-10,
1645
+ "max_abs_logit_error": 0.02250051498413086
1646
+ },
1647
+ {
1648
+ "row": 186,
1649
+ "label": 18,
1650
+ "upstream": 18,
1651
+ "coreml": 18,
1652
+ "max_abs_probability_error": 1.837478791344438e-08,
1653
+ "max_abs_logit_error": 0.06335592269897461
1654
+ },
1655
+ {
1656
+ "row": 187,
1657
+ "label": 18,
1658
+ "upstream": 18,
1659
+ "coreml": 18,
1660
+ "max_abs_probability_error": 3.3051329034750054e-11,
1661
+ "max_abs_logit_error": 0.02735137939453125
1662
+ },
1663
+ {
1664
+ "row": 188,
1665
+ "label": 18,
1666
+ "upstream": 18,
1667
+ "coreml": 18,
1668
+ "max_abs_probability_error": 1.650468511860126e-10,
1669
+ "max_abs_logit_error": 0.015047073364257812
1670
+ },
1671
+ {
1672
+ "row": 189,
1673
+ "label": 18,
1674
+ "upstream": 18,
1675
+ "coreml": 18,
1676
+ "max_abs_probability_error": 6.181078218703284e-12,
1677
+ "max_abs_logit_error": 0.04868888854980469
1678
+ },
1679
+ {
1680
+ "row": 190,
1681
+ "label": 18,
1682
+ "upstream": 18,
1683
+ "coreml": 18,
1684
+ "max_abs_probability_error": 1.6455586893115992e-10,
1685
+ "max_abs_logit_error": 0.026497364044189453
1686
+ },
1687
+ {
1688
+ "row": 191,
1689
+ "label": 18,
1690
+ "upstream": 18,
1691
+ "coreml": 18,
1692
+ "max_abs_probability_error": 6.109900363426846e-10,
1693
+ "max_abs_logit_error": 0.022236347198486328
1694
+ },
1695
+ {
1696
+ "row": 192,
1697
+ "label": 18,
1698
+ "upstream": 18,
1699
+ "coreml": 18,
1700
+ "max_abs_probability_error": 6.693580800742893e-09,
1701
+ "max_abs_logit_error": 0.020044326782226562
1702
+ },
1703
+ {
1704
+ "row": 193,
1705
+ "label": 18,
1706
+ "upstream": 18,
1707
+ "coreml": 18,
1708
+ "max_abs_probability_error": 1.3718365998727222e-08,
1709
+ "max_abs_logit_error": 0.05533123016357422
1710
+ },
1711
+ {
1712
+ "row": 194,
1713
+ "label": 18,
1714
+ "upstream": 18,
1715
+ "coreml": 18,
1716
+ "max_abs_probability_error": 8.344650268554688e-07,
1717
+ "max_abs_logit_error": 0.0247042179107666
1718
+ },
1719
+ {
1720
+ "row": 195,
1721
+ "label": 18,
1722
+ "upstream": 18,
1723
+ "coreml": 18,
1724
+ "max_abs_probability_error": 1.042114572413766e-08,
1725
+ "max_abs_logit_error": 0.028873443603515625
1726
+ }
1727
+ ]
1728
+ }
1729
+ },
1730
+ "passed": true,
1731
+ "code_sha256": {
1732
+ "ane_gather.py": "c3379a3797041dcfed82eaaea3990771ec91f1dff7ec146b025988ad7a8c9aae",
1733
+ "assets.py": "f7a5bc931075237e00c73bf21fee3575be35531f934f23b5e22627d50a79f92f",
1734
+ "benchmark-synthetic.py": "ba8255fd3f63d87ef340c26c4c251800f2e20878d80858ad1e6557cf59f249a2",
1735
+ "compare-ane.py": "4633df7ad5f90d6aed37d5ef4f7a2d2231fdadd272ef1aa3057c237b2f937df8",
1736
+ "convert-coreml.py": "46fe0194df924033126286e601214b6789f5d667aae38c153cf4dbc1b0e629b0",
1737
+ "export-reference.py": "ff9eab4d6e4e72ffaf074d82610f41fbea1e802da7c0e987ce562a89eb561b99",
1738
+ "export_model.py": "c61da5d678c77030d1e9a78359626063ea31da46fb6434e49517fdeaa7800949",
1739
+ "prepare-int4-source.py": "33db3295450428d90c1de5a804ab47bf3507c686fbbdef67cd276ce116758b5f",
1740
+ "preprocessing.py": "18c74ede43f95f91cd638c7e9631923a353e3a24d3b522ddb8b18b480f9c2846",
1741
+ "profile-coreml.py": "d5e1386f54fc6c482647120e593e7ffbbe4bbb277c2cc6d4949154660fe239fd",
1742
+ "quantize-int4.py": "a91636e539d8934253b5e7628ca706346fbee538fa1aa9e3eaf794f440d49dcc",
1743
+ "quantize-int8.py": "22071babfcb02ef77225203a479d9bb14b9fa35462ba38bcc4bf07d29c125a97",
1744
+ "score-report.py": "c78e45caa86fb59f9a56ef18cc6a35020ea6e281a6a23d23618f56da85a0d95e",
1745
+ "synthetic_test.py": "e2b68725236e6827eb422480c8cc8aa189b2490c1594650d8f2928771d1bc626",
1746
+ "verify.py": "bc20ec9df47708e9b48e411076abe4eab7c18313f67e11334de2d9e3ecb3efa7"
1747
+ }
1748
+ }