Add CUA-S1-FORMS FP16 Core ML conversion and verified artifacts
Browse filesAdd the 706,048-parameter CUA-S1-FORMS decision scorer as a portable FP16 Core ML package and compiled FluidAudio bundle, with encoding helper, pinned provenance, licenses, checksums, and conversion reports.
Validation uses the complete pinned 196-row upstream demo, not a new synthetic dataset. PyTorch, Core ML ALL, and Core ML CPU_AND_NE select all 196 labeled options correctly. Maximum probability differences are 0.003099 and 0.002336 respectively, below the preselected 0.005 tolerance. The unmodified Cua evaluator reports zero wrong actions, wrong targets, or unsafe actions on these saved predictions. Seventeen Python regression tests pass.
FluidAudio's Swift runtime independently matches all 196 decisions against the PyTorch probabilities (maximum error 0.002336), including local package loading, shared compiled-model cache loading, UTF-8 encoding, and concurrent/reordered-option checks. The Swift library builds; local XCTest execution is unavailable because this Mac has Command Line Tools without the XCTest framework.
The package is 1,511,163 bytes. Timings and ANE/CPU placement are exploratory measurements on the documented M5 Pro, not general GUI-automation or mobile-device benchmarks. The caller supplies document entities and UI descriptions and owns action validation and execution.
Related code branches:
- https://github.com/FluidInference/mobius/tree/codex/cua-s1-forms
- https://github.com/FluidInference/FluidAudio/tree/codex/cua-s1-forms
Merge this model PR before enabling FluidAudio's default download path. This PR does not merge or release the model automatically.
- LICENSE +21 -0
- NOTICES.md +18 -0
- README.md +172 -0
- UPSTREAM-THIRD-PARTY-NOTICES.md +46 -0
- assets.lock.json +54 -0
- checksums.json +19 -0
- conversion.json +35 -0
- cua_s1_forms_fp16_options32.mlmodelc/analytics/coremldata.bin +3 -0
- cua_s1_forms_fp16_options32.mlmodelc/coremldata.bin +3 -0
- cua_s1_forms_fp16_options32.mlmodelc/model.mil +418 -0
- cua_s1_forms_fp16_options32.mlmodelc/weights/weight.bin +3 -0
- cua_s1_forms_fp16_options32.mlpackage/Data/com.apple.CoreML/model.mlmodel +3 -0
- cua_s1_forms_fp16_options32.mlpackage/Data/com.apple.CoreML/weights/weight.bin +3 -0
- cua_s1_forms_fp16_options32.mlpackage/Manifest.json +18 -0
- preprocessing.py +46 -0
- reports/ane-fallback.json +84 -0
- reports/upstream-metrics.json +128 -0
- reports/verification.json +3309 -0
|
@@ -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.
|
|
@@ -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.
|
|
@@ -0,0 +1,172 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
+
| `checksums.json` | SHA-256 of each distributed file except this checksum file |
|
| 40 |
+
| `reports/` | Per-row parity, original Cua metrics, and compute-placement report |
|
| 41 |
+
|
| 42 |
+
The model targets **iOS 17/macOS 14 or newer**. Runtime validation used an Apple
|
| 43 |
+
silicon Mac. Use the portable package for local compilation on other supported
|
| 44 |
+
systems; iPhone performance and compatibility of the precompiled bundle across
|
| 45 |
+
older OS versions have not been measured.
|
| 46 |
+
|
| 47 |
+
## Python usage
|
| 48 |
+
|
| 49 |
+
Install `coremltools==9.0`, `numpy==1.26.4`, and `huggingface_hub` on macOS.
|
| 50 |
+
Download this repository, then run from its directory:
|
| 51 |
+
|
| 52 |
+
```python
|
| 53 |
+
import coremltools as ct
|
| 54 |
+
from preprocessing import InputLimits, prepare_inputs
|
| 55 |
+
|
| 56 |
+
model = ct.models.MLModel(
|
| 57 |
+
"cua_s1_forms_fp16_options32.mlpackage",
|
| 58 |
+
compute_units=ct.ComputeUnit.CPU_AND_NE,
|
| 59 |
+
)
|
| 60 |
+
options = ["fill E-mail: person@example.com", "check", "click", "skip"]
|
| 61 |
+
inputs = prepare_inputs(
|
| 62 |
+
'TASK fill the form from the document, then submit\n'
|
| 63 |
+
'FORM Contact details\nELEMENT Edit "Email address" value=""',
|
| 64 |
+
options,
|
| 65 |
+
InputLimits(),
|
| 66 |
+
)
|
| 67 |
+
probabilities = model.predict(inputs)["probabilities"][0, :len(options)]
|
| 68 |
+
print(options[int(probabilities.argmax())], probabilities)
|
| 69 |
+
```
|
| 70 |
+
|
| 71 |
+
During review, download the model PR's revision (for example `--revision refs/pr/1`)
|
| 72 |
+
with `hf download FluidInference/cua-s1-forms-coreml --local-dir ./cua-coreml`.
|
| 73 |
+
After merge, the default `main` revision contains the artifacts.
|
| 74 |
+
|
| 75 |
+
## Swift usage
|
| 76 |
+
|
| 77 |
+
The proposed [FluidAudio integration](https://github.com/FluidInference/FluidAudio/tree/codex/cua-s1-forms)
|
| 78 |
+
provides `CuaS1FormsManager`:
|
| 79 |
+
|
| 80 |
+
```swift
|
| 81 |
+
import FluidAudio
|
| 82 |
+
import Foundation
|
| 83 |
+
|
| 84 |
+
let manager = try await CuaS1FormsManager.load(
|
| 85 |
+
from: URL(fileURLWithPath: "/models/cua_s1_forms_fp16_options32.mlpackage"))
|
| 86 |
+
let decision = try await manager.score(
|
| 87 |
+
context: "TASK fill the form from the document, then submit\nFORM Contact details\nELEMENT Edit \"Email address\" value=\"\"",
|
| 88 |
+
options: ["fill E-mail: person@example.com", "check", "click", "skip"])
|
| 89 |
+
print(decision.selectedOption, decision.probabilities)
|
| 90 |
+
```
|
| 91 |
+
|
| 92 |
+
After the model and Swift PRs land, `try await CuaS1FormsManager.load()` downloads
|
| 93 |
+
and caches the compiled artifact automatically.
|
| 94 |
+
|
| 95 |
+
## Tensor interface
|
| 96 |
+
|
| 97 |
+
| Name | Type | Shape |
|
| 98 |
+
| --- | --- | --- |
|
| 99 |
+
| `context_ids` | int32 | `[1, 224]` |
|
| 100 |
+
| `option_ids` | int32 | `[1, 32, 96]` |
|
| 101 |
+
| `option_mask` | int32 | `[1, 32]` |
|
| 102 |
+
| `logits` | float32 output | `[1, 32]` |
|
| 103 |
+
| `probabilities` | float32 output | `[1, 32]` |
|
| 104 |
+
|
| 105 |
+
Encode UTF-8 bytes plus one, pad with zero, and truncate by bytes at 224 for
|
| 106 |
+
context and 96 per option. Supply a nonempty context and 2–32 nonempty options.
|
| 107 |
+
Set option-mask entries to one for supplied options and zero for padding.
|
| 108 |
+
Padded logits are `-10000`; padded probabilities are zero. Inputs above 32
|
| 109 |
+
options must be rejected or use a separately exported larger-capacity model.
|
| 110 |
+
The example helper rejects overflow rather than dropping choices.
|
| 111 |
+
|
| 112 |
+
## Conversion verification
|
| 113 |
+
|
| 114 |
+
On the complete pinned **196-row upstream demo**, PyTorch and Core ML both
|
| 115 |
+
selected **196/196 labeled options correctly**, and matched each other's selected
|
| 116 |
+
option on every row. The unmodified upstream Cua evaluator reports 36 fill,
|
| 117 |
+
4 check, 6 click, and 150 skip decisions, with zero wrong actions, wrong targets,
|
| 118 |
+
or unsafe actions on these saved predictions. It counts `skip` as abstention,
|
| 119 |
+
so its 23.47% coverage corresponds to 46 actionable decisions.
|
| 120 |
+
|
| 121 |
+
| Check | Core ML `ALL` | Core ML `CPU_AND_NE` |
|
| 122 |
+
| --- | ---: | ---: |
|
| 123 |
+
| Selected options matching PyTorch | 196 / 196 | 196 / 196 |
|
| 124 |
+
| Maximum absolute probability error | 0.003099 | 0.002336 |
|
| 125 |
+
| Warm model-call median | 1.85 ms | 0.90 ms |
|
| 126 |
+
| Warm model-call p95 | 2.49 ms | 0.94 ms |
|
| 127 |
+
|
| 128 |
+
Measured September 19, 2026 on Apple M5 Pro, 24 GB, macOS 27.0, using
|
| 129 |
+
Python 3.11.11, PyTorch 2.7.0, and coremltools 9.0. Timing is exploratory and
|
| 130 |
+
includes Python call overhead; model loading, encoding, document extraction,
|
| 131 |
+
UI observation, and action execution are excluded. It is not an optimized
|
| 132 |
+
PyTorch/MPS speed comparison.
|
| 133 |
+
|
| 134 |
+
The conversion gates require 100% selected-option agreement, no accuracy loss,
|
| 135 |
+
maximum absolute probability error ≤ 0.005, finite outputs, normalized live
|
| 136 |
+
probabilities, and zero probability for padding. The FP32 export adapter differs
|
| 137 |
+
from the unmodified PyTorch reference by at most 0.00000113. Six reversed-option
|
| 138 |
+
checks also pass on each Core ML configuration. The checked-in placement report
|
| 139 |
+
counts 149 Neural Engine operations, 24 CPU operations, and zero GPU operations;
|
| 140 |
+
operation counts are not a measurement of time spent on each processor.
|
| 141 |
+
|
| 142 |
+
These results verify conversion on three demo forms and three PDFs. They do not
|
| 143 |
+
establish generalization, live GUI completion rates, or production safety.
|
| 144 |
+
The original demo is not redistributed here; its exact revision and SHA-256 are
|
| 145 |
+
in the asset lock. No training or larger-corpus evaluation was performed for
|
| 146 |
+
this conversion.
|
| 147 |
+
|
| 148 |
+
## Application responsibilities
|
| 149 |
+
|
| 150 |
+
The application must extract document entities, describe UI elements, build
|
| 151 |
+
candidate actions, and validate and order the selected actions. Submission and
|
| 152 |
+
other effects require application authorization. Scores are not calibrated
|
| 153 |
+
confidence guarantees. Text outside the byte limits is truncated, and arbitrary
|
| 154 |
+
new forms and languages require their own evaluation.
|
| 155 |
+
|
| 156 |
+
## Source, reproduction, and license
|
| 157 |
+
|
| 158 |
+
The [Mobius conversion toolkit](https://github.com/FluidInference/mobius/tree/codex/cua-s1-forms/models/computer-use/cua-s1-forms/coreml)
|
| 159 |
+
contains the conversion code, lockfile, original reference implementation and
|
| 160 |
+
evaluator, tests, and full reproduction instructions. Adaptations are limited
|
| 161 |
+
to export-compatible masking, a floating-point clamp constant, finite padded
|
| 162 |
+
logits, and disabling the fused PyTorch Transformer fast path during tracing.
|
| 163 |
+
All trained layers and checkpoint tensors are retained; internal compute and
|
| 164 |
+
weights are converted to FP16.
|
| 165 |
+
|
| 166 |
+
- Model: [`cua-ai/cua-s1-forms` at `f54adbf447f4ca6ec259f529ee3f2e3e09f8cc71`](https://huggingface.co/cua-ai/cua-s1-forms/tree/f54adbf447f4ca6ec259f529ee3f2e3e09f8cc71).
|
| 167 |
+
- Demo: [`cua-ai/cua-s1-forms` at `8273f34778b99ac2e12d9f6e7d57dad99ae20845`](https://huggingface.co/datasets/cua-ai/cua-s1-forms/tree/8273f34778b99ac2e12d9f6e7d57dad99ae20845).
|
| 168 |
+
- Code: [`trycua/cua` at `83f142c4290a0f7d9ed545ae8532858c6e4f8145`](https://github.com/trycua/cua/tree/83f142c4290a0f7d9ed545ae8532858c6e4f8145/libs/cua-s1).
|
| 169 |
+
|
| 170 |
+
The pinned model and dataset cards declare MIT. See [LICENSE](LICENSE),
|
| 171 |
+
[NOTICES.md](NOTICES.md), and the preserved
|
| 172 |
+
[upstream third-party notices](UPSTREAM-THIRD-PARTY-NOTICES.md).
|
|
@@ -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.
|
|
@@ -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 |
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"LICENSE": "c0779290c1d4783169aa3dbfb55feb505e563ef8a004bbf55298ceffcfbda8d9",
|
| 3 |
+
"NOTICES.md": "027c72741eaa695e60d7b6cebd3666372c81d443a96b673b72a897cf432ddfd0",
|
| 4 |
+
"README.md": "4008ae7ef610e44c2d6e019a0fa375b3e1705714d5875a8e0c63aba8541b4c96",
|
| 5 |
+
"UPSTREAM-THIRD-PARTY-NOTICES.md": "4091e69b45c8cc97e30a066fbbd56148dbef66ab716432c048d2333c9c464213",
|
| 6 |
+
"assets.lock.json": "8e65ad70af6bb814b571cdcfe828ba4bc339147da2d2211cbeac416163ef18ba",
|
| 7 |
+
"conversion.json": "ac94239751ceb7e19602eb7276940ff53446b1776d4900405af9be0382fe4a94",
|
| 8 |
+
"cua_s1_forms_fp16_options32.mlmodelc/analytics/coremldata.bin": "a7a11d7772fb6879778e6223d0f3b16a6b2a44df20a7991bf9bcc24042d05542",
|
| 9 |
+
"cua_s1_forms_fp16_options32.mlmodelc/coremldata.bin": "2ddf9edc046a1e66b3d3a0cd57a1d9e25c75df5f8d937249dc02d9806617d884",
|
| 10 |
+
"cua_s1_forms_fp16_options32.mlmodelc/model.mil": "e93676bd4f553ffcf9403ae5049185cb55acdcb63908e39952578db0845e0a12",
|
| 11 |
+
"cua_s1_forms_fp16_options32.mlmodelc/weights/weight.bin": "4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895",
|
| 12 |
+
"cua_s1_forms_fp16_options32.mlpackage/Data/com.apple.CoreML/model.mlmodel": "70485fc18cbb21785df833cbddddc0b5b59acb00d22394b76e55307e2c135dd0",
|
| 13 |
+
"cua_s1_forms_fp16_options32.mlpackage/Data/com.apple.CoreML/weights/weight.bin": "4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895",
|
| 14 |
+
"cua_s1_forms_fp16_options32.mlpackage/Manifest.json": "2bc0f5f62337b27fb6b0ecde248f1e3dc269e1ba4b65516aaeede2a60e293dcc",
|
| 15 |
+
"preprocessing.py": "18c74ede43f95f91cd638c7e9631923a353e3a24d3b522ddb8b18b480f9c2846",
|
| 16 |
+
"reports/ane-fallback.json": "0a5d25b97545bfb2878531f3e409030ae3448a26c3aa3ba7db29f57d7194b2a6",
|
| 17 |
+
"reports/upstream-metrics.json": "7d6207e430504dc0baec96d8180cb03f8aadc5a6e016b53c4cf03a80baf169ab",
|
| 18 |
+
"reports/verification.json": "9a5d22ec4b447f0710c12e03c69d7ed802158bb94e9a3c6b059731730ced9f30"
|
| 19 |
+
}
|
|
@@ -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 |
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a7a11d7772fb6879778e6223d0f3b16a6b2a44df20a7991bf9bcc24042d05542
|
| 3 |
+
size 243
|
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:2ddf9edc046a1e66b3d3a0cd57a1d9e25c75df5f8d937249dc02d9806617d884
|
| 3 |
+
size 909
|
|
@@ -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 |
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895
|
| 3 |
+
size 1446720
|
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:70485fc18cbb21785df833cbddddc0b5b59acb00d22394b76e55307e2c135dd0
|
| 3 |
+
size 63826
|
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895
|
| 3 |
+
size 1446720
|
|
@@ -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 |
+
}
|
|
@@ -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}
|
|
@@ -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-19T16:51:27.323329+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 |
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"verification_report_sha256": "9a5d22ec4b447f0710c12e03c69d7ed802158bb94e9a3c6b059731730ced9f30",
|
| 3 |
+
"evaluator_source_revision": "83f142c4290a0f7d9ed545ae8532858c6e4f8145",
|
| 4 |
+
"evaluator_source_path": "libs/cua-s1/evals/metrics.py",
|
| 5 |
+
"evaluator_sha256": "49dccdeb4e2b456187cdc4491a6d78fabac6a45384272f8e3ec802a58872aa6e",
|
| 6 |
+
"adapter_sha256": "c78e45caa86fb59f9a56ef18cc6a35020ea6e281a6a23d23618f56da85a0d95e",
|
| 7 |
+
"scope": "Offline action/target classification, not GUI execution or task completion",
|
| 8 |
+
"normalization": "Stable row IDs; fill target is entity option index; upstream treats skip as abstention",
|
| 9 |
+
"results": {
|
| 10 |
+
"ALL": {
|
| 11 |
+
"examples": 196,
|
| 12 |
+
"accuracy": 1.0,
|
| 13 |
+
"coverage": 0.23469387755102042,
|
| 14 |
+
"abstention_rate": 0.7653061224489796,
|
| 15 |
+
"selective_accuracy": 1.0,
|
| 16 |
+
"wrong_action_rate": 0.0,
|
| 17 |
+
"wrong_target_rate": 0.0,
|
| 18 |
+
"unsafe_action_rate": 0.0,
|
| 19 |
+
"counts": {
|
| 20 |
+
"total": 196,
|
| 21 |
+
"correct": 196,
|
| 22 |
+
"abstained": 150,
|
| 23 |
+
"acted": 46,
|
| 24 |
+
"acted_correct": 46
|
| 25 |
+
},
|
| 26 |
+
"per_action": {
|
| 27 |
+
"abstain": {
|
| 28 |
+
"accuracy": 1.0,
|
| 29 |
+
"abstention_rate": 1.0,
|
| 30 |
+
"examples": 150
|
| 31 |
+
},
|
| 32 |
+
"check": {
|
| 33 |
+
"accuracy": 1.0,
|
| 34 |
+
"abstention_rate": 0.0,
|
| 35 |
+
"examples": 4
|
| 36 |
+
},
|
| 37 |
+
"click": {
|
| 38 |
+
"accuracy": 1.0,
|
| 39 |
+
"abstention_rate": 0.0,
|
| 40 |
+
"examples": 6
|
| 41 |
+
},
|
| 42 |
+
"fill": {
|
| 43 |
+
"accuracy": 1.0,
|
| 44 |
+
"abstention_rate": 0.0,
|
| 45 |
+
"examples": 36
|
| 46 |
+
}
|
| 47 |
+
}
|
| 48 |
+
},
|
| 49 |
+
"CPU_AND_NE": {
|
| 50 |
+
"examples": 196,
|
| 51 |
+
"accuracy": 1.0,
|
| 52 |
+
"coverage": 0.23469387755102042,
|
| 53 |
+
"abstention_rate": 0.7653061224489796,
|
| 54 |
+
"selective_accuracy": 1.0,
|
| 55 |
+
"wrong_action_rate": 0.0,
|
| 56 |
+
"wrong_target_rate": 0.0,
|
| 57 |
+
"unsafe_action_rate": 0.0,
|
| 58 |
+
"counts": {
|
| 59 |
+
"total": 196,
|
| 60 |
+
"correct": 196,
|
| 61 |
+
"abstained": 150,
|
| 62 |
+
"acted": 46,
|
| 63 |
+
"acted_correct": 46
|
| 64 |
+
},
|
| 65 |
+
"per_action": {
|
| 66 |
+
"abstain": {
|
| 67 |
+
"accuracy": 1.0,
|
| 68 |
+
"abstention_rate": 1.0,
|
| 69 |
+
"examples": 150
|
| 70 |
+
},
|
| 71 |
+
"check": {
|
| 72 |
+
"accuracy": 1.0,
|
| 73 |
+
"abstention_rate": 0.0,
|
| 74 |
+
"examples": 4
|
| 75 |
+
},
|
| 76 |
+
"click": {
|
| 77 |
+
"accuracy": 1.0,
|
| 78 |
+
"abstention_rate": 0.0,
|
| 79 |
+
"examples": 6
|
| 80 |
+
},
|
| 81 |
+
"fill": {
|
| 82 |
+
"accuracy": 1.0,
|
| 83 |
+
"abstention_rate": 0.0,
|
| 84 |
+
"examples": 36
|
| 85 |
+
}
|
| 86 |
+
}
|
| 87 |
+
},
|
| 88 |
+
"upstream_pytorch": {
|
| 89 |
+
"examples": 196,
|
| 90 |
+
"accuracy": 1.0,
|
| 91 |
+
"coverage": 0.23469387755102042,
|
| 92 |
+
"abstention_rate": 0.7653061224489796,
|
| 93 |
+
"selective_accuracy": 1.0,
|
| 94 |
+
"wrong_action_rate": 0.0,
|
| 95 |
+
"wrong_target_rate": 0.0,
|
| 96 |
+
"unsafe_action_rate": 0.0,
|
| 97 |
+
"counts": {
|
| 98 |
+
"total": 196,
|
| 99 |
+
"correct": 196,
|
| 100 |
+
"abstained": 150,
|
| 101 |
+
"acted": 46,
|
| 102 |
+
"acted_correct": 46
|
| 103 |
+
},
|
| 104 |
+
"per_action": {
|
| 105 |
+
"abstain": {
|
| 106 |
+
"accuracy": 1.0,
|
| 107 |
+
"abstention_rate": 1.0,
|
| 108 |
+
"examples": 150
|
| 109 |
+
},
|
| 110 |
+
"check": {
|
| 111 |
+
"accuracy": 1.0,
|
| 112 |
+
"abstention_rate": 0.0,
|
| 113 |
+
"examples": 4
|
| 114 |
+
},
|
| 115 |
+
"click": {
|
| 116 |
+
"accuracy": 1.0,
|
| 117 |
+
"abstention_rate": 0.0,
|
| 118 |
+
"examples": 6
|
| 119 |
+
},
|
| 120 |
+
"fill": {
|
| 121 |
+
"accuracy": 1.0,
|
| 122 |
+
"abstention_rate": 0.0,
|
| 123 |
+
"examples": 36
|
| 124 |
+
}
|
| 125 |
+
}
|
| 126 |
+
}
|
| 127 |
+
}
|
| 128 |
+
}
|
|
@@ -0,0 +1,3309 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"purpose": "Local conversion parity on the upstream demo; not a generalization or live GUI benchmark",
|
| 3 |
+
"created_utc": "2026-09-19T16:49:43.157197+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": "iOS17/macOS14",
|
| 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": "70485fc18cbb21785df833cbddddc0b5b59acb00d22394b76e55307e2c135dd0",
|
| 40 |
+
"Data/com.apple.CoreML/weights/weight.bin": "4da9259f798e44f5a1b50769ee1916fd3747c4d723dd9997b516c7fe238c7895",
|
| 41 |
+
"Manifest.json": "2bc0f5f62337b27fb6b0ecde248f1e3dc269e1ba4b65516aaeede2a60e293dcc"
|
| 42 |
+
}
|
| 43 |
+
},
|
| 44 |
+
"environment": {
|
| 45 |
+
"machine": "Apple M5 Pro",
|
| 46 |
+
"os": "27.0",
|
| 47 |
+
"python": "3.11.11",
|
| 48 |
+
"torch": "2.7.0",
|
| 49 |
+
"coremltools": "9.0",
|
| 50 |
+
"torch_cpu_threads": 2
|
| 51 |
+
},
|
| 52 |
+
"rows": 196,
|
| 53 |
+
"upstream": {
|
| 54 |
+
"correct": 196,
|
| 55 |
+
"accuracy": 1.0,
|
| 56 |
+
"inference_latency_ms": {
|
| 57 |
+
"count": 196,
|
| 58 |
+
"median_ms": 2.4375420034630224,
|
| 59 |
+
"p95_ms": 3.0990312443464063,
|
| 60 |
+
"min_ms": 1.6581250238232315,
|
| 61 |
+
"max_ms": 3.908416983904317
|
| 62 |
+
}
|
| 63 |
+
},
|
| 64 |
+
"export_adapter_fp32": {
|
| 65 |
+
"argmax_agreement": 196,
|
| 66 |
+
"max_abs_probability_error": 1.1324882507324219e-06
|
| 67 |
+
},
|
| 68 |
+
"host_preprocessing_latency_ms": {
|
| 69 |
+
"count": 196,
|
| 70 |
+
"median_ms": 0.03766651207115501,
|
| 71 |
+
"p95_ms": 0.04735450784210116,
|
| 72 |
+
"min_ms": 0.026416993932798505,
|
| 73 |
+
"max_ms": 0.07812498370185494
|
| 74 |
+
},
|
| 75 |
+
"thresholds": {
|
| 76 |
+
"argmax_agreement": 1.0,
|
| 77 |
+
"max_abs_probability_error": 0.005,
|
| 78 |
+
"export_adapter_max_abs_probability_error": 0.0001,
|
| 79 |
+
"allow_accuracy_loss": false
|
| 80 |
+
},
|
| 81 |
+
"backends": {
|
| 82 |
+
"ALL": {
|
| 83 |
+
"passed": true,
|
| 84 |
+
"correct": 196,
|
| 85 |
+
"accuracy": 1.0,
|
| 86 |
+
"argmax_agreement": 196,
|
| 87 |
+
"max_abs_probability_error": 0.0030989646911621094,
|
| 88 |
+
"mean_row_max_abs_probability_error": 1.6251600213152587e-05,
|
| 89 |
+
"max_abs_logit_error": 0.03653383255004883,
|
| 90 |
+
"load_seconds": 0.1422372910019476,
|
| 91 |
+
"warm_inference_latency_ms": {
|
| 92 |
+
"count": 196,
|
| 93 |
+
"median_ms": 1.8487705092411488,
|
| 94 |
+
"p95_ms": 2.4909165003919043,
|
| 95 |
+
"min_ms": 1.7662910104263574,
|
| 96 |
+
"max_ms": 2.893916011089459
|
| 97 |
+
},
|
| 98 |
+
"reversed_option_order": {
|
| 99 |
+
"rows": 6,
|
| 100 |
+
"max_abs_probability_error": 5.26619260199368e-07
|
| 101 |
+
},
|
| 102 |
+
"per_action": {
|
| 103 |
+
"fill": {
|
| 104 |
+
"rows": 36,
|
| 105 |
+
"correct": 36
|
| 106 |
+
},
|
| 107 |
+
"skip": {
|
| 108 |
+
"rows": 150,
|
| 109 |
+
"correct": 150
|
| 110 |
+
},
|
| 111 |
+
"check": {
|
| 112 |
+
"rows": 4,
|
| 113 |
+
"correct": 4
|
| 114 |
+
},
|
| 115 |
+
"click": {
|
| 116 |
+
"rows": 6,
|
| 117 |
+
"correct": 6
|
| 118 |
+
}
|
| 119 |
+
},
|
| 120 |
+
"decisions": [
|
| 121 |
+
{
|
| 122 |
+
"row": 0,
|
| 123 |
+
"label": 22,
|
| 124 |
+
"upstream": 22,
|
| 125 |
+
"coreml": 22,
|
| 126 |
+
"max_abs_probability_error": 5.26619260199368e-07,
|
| 127 |
+
"max_abs_logit_error": 0.017948150634765625
|
| 128 |
+
},
|
| 129 |
+
{
|
| 130 |
+
"row": 1,
|
| 131 |
+
"label": 23,
|
| 132 |
+
"upstream": 23,
|
| 133 |
+
"coreml": 23,
|
| 134 |
+
"max_abs_probability_error": 5.320471245795488e-07,
|
| 135 |
+
"max_abs_logit_error": 0.0173797607421875
|
| 136 |
+
},
|
| 137 |
+
{
|
| 138 |
+
"row": 2,
|
| 139 |
+
"label": 2,
|
| 140 |
+
"upstream": 2,
|
| 141 |
+
"coreml": 2,
|
| 142 |
+
"max_abs_probability_error": 3.134431381113245e-09,
|
| 143 |
+
"max_abs_logit_error": 0.02239227294921875
|
| 144 |
+
},
|
| 145 |
+
{
|
| 146 |
+
"row": 3,
|
| 147 |
+
"label": 5,
|
| 148 |
+
"upstream": 5,
|
| 149 |
+
"coreml": 5,
|
| 150 |
+
"max_abs_probability_error": 2.8436625143513083e-07,
|
| 151 |
+
"max_abs_logit_error": 0.014525413513183594
|
| 152 |
+
},
|
| 153 |
+
{
|
| 154 |
+
"row": 4,
|
| 155 |
+
"label": 4,
|
| 156 |
+
"upstream": 4,
|
| 157 |
+
"coreml": 4,
|
| 158 |
+
"max_abs_probability_error": 4.76837158203125e-07,
|
| 159 |
+
"max_abs_logit_error": 0.013245582580566406
|
| 160 |
+
},
|
| 161 |
+
{
|
| 162 |
+
"row": 5,
|
| 163 |
+
"label": 6,
|
| 164 |
+
"upstream": 6,
|
| 165 |
+
"coreml": 6,
|
| 166 |
+
"max_abs_probability_error": 3.197783371433616e-08,
|
| 167 |
+
"max_abs_logit_error": 0.01342916488647461
|
| 168 |
+
},
|
| 169 |
+
{
|
| 170 |
+
"row": 6,
|
| 171 |
+
"label": 7,
|
| 172 |
+
"upstream": 7,
|
| 173 |
+
"coreml": 7,
|
| 174 |
+
"max_abs_probability_error": 1.7993625078815967e-07,
|
| 175 |
+
"max_abs_logit_error": 0.011149883270263672
|
| 176 |
+
},
|
| 177 |
+
{
|
| 178 |
+
"row": 7,
|
| 179 |
+
"label": 8,
|
| 180 |
+
"upstream": 8,
|
| 181 |
+
"coreml": 8,
|
| 182 |
+
"max_abs_probability_error": 6.677582859992981e-07,
|
| 183 |
+
"max_abs_logit_error": 0.013294458389282227
|
| 184 |
+
},
|
| 185 |
+
{
|
| 186 |
+
"row": 8,
|
| 187 |
+
"label": 9,
|
| 188 |
+
"upstream": 9,
|
| 189 |
+
"coreml": 9,
|
| 190 |
+
"max_abs_probability_error": 4.183561941317748e-09,
|
| 191 |
+
"max_abs_logit_error": 0.013601541519165039
|
| 192 |
+
},
|
| 193 |
+
{
|
| 194 |
+
"row": 9,
|
| 195 |
+
"label": 10,
|
| 196 |
+
"upstream": 10,
|
| 197 |
+
"coreml": 10,
|
| 198 |
+
"max_abs_probability_error": 4.019384505227208e-07,
|
| 199 |
+
"max_abs_logit_error": 0.029033660888671875
|
| 200 |
+
},
|
| 201 |
+
{
|
| 202 |
+
"row": 10,
|
| 203 |
+
"label": 11,
|
| 204 |
+
"upstream": 11,
|
| 205 |
+
"coreml": 11,
|
| 206 |
+
"max_abs_probability_error": 2.5259510039177258e-09,
|
| 207 |
+
"max_abs_logit_error": 0.03653383255004883
|
| 208 |
+
},
|
| 209 |
+
{
|
| 210 |
+
"row": 11,
|
| 211 |
+
"label": 13,
|
| 212 |
+
"upstream": 13,
|
| 213 |
+
"coreml": 13,
|
| 214 |
+
"max_abs_probability_error": 1.1920928955078125e-07,
|
| 215 |
+
"max_abs_logit_error": 0.026096343994140625
|
| 216 |
+
},
|
| 217 |
+
{
|
| 218 |
+
"row": 12,
|
| 219 |
+
"label": 15,
|
| 220 |
+
"upstream": 15,
|
| 221 |
+
"coreml": 15,
|
| 222 |
+
"max_abs_probability_error": 4.578259904519655e-08,
|
| 223 |
+
"max_abs_logit_error": 0.029152870178222656
|
| 224 |
+
},
|
| 225 |
+
{
|
| 226 |
+
"row": 13,
|
| 227 |
+
"label": 16,
|
| 228 |
+
"upstream": 16,
|
| 229 |
+
"coreml": 16,
|
| 230 |
+
"max_abs_probability_error": 8.465372957289219e-06,
|
| 231 |
+
"max_abs_logit_error": 0.01841115951538086
|
| 232 |
+
},
|
| 233 |
+
{
|
| 234 |
+
"row": 14,
|
| 235 |
+
"label": 26,
|
| 236 |
+
"upstream": 26,
|
| 237 |
+
"coreml": 26,
|
| 238 |
+
"max_abs_probability_error": 1.1920928955078125e-07,
|
| 239 |
+
"max_abs_logit_error": 0.020061016082763672
|
| 240 |
+
},
|
| 241 |
+
{
|
| 242 |
+
"row": 15,
|
| 243 |
+
"label": 24,
|
| 244 |
+
"upstream": 24,
|
| 245 |
+
"coreml": 24,
|
| 246 |
+
"max_abs_probability_error": 8.867027645464987e-08,
|
| 247 |
+
"max_abs_logit_error": 0.013807952404022217
|
| 248 |
+
},
|
| 249 |
+
{
|
| 250 |
+
"row": 16,
|
| 251 |
+
"label": 26,
|
| 252 |
+
"upstream": 26,
|
| 253 |
+
"coreml": 26,
|
| 254 |
+
"max_abs_probability_error": 5.60369528557203e-10,
|
| 255 |
+
"max_abs_logit_error": 0.011376380920410156
|
| 256 |
+
},
|
| 257 |
+
{
|
| 258 |
+
"row": 17,
|
| 259 |
+
"label": 25,
|
| 260 |
+
"upstream": 25,
|
| 261 |
+
"coreml": 25,
|
| 262 |
+
"max_abs_probability_error": 3.9392489270539954e-11,
|
| 263 |
+
"max_abs_logit_error": 0.02391815185546875
|
| 264 |
+
},
|
| 265 |
+
{
|
| 266 |
+
"row": 18,
|
| 267 |
+
"label": 26,
|
| 268 |
+
"upstream": 26,
|
| 269 |
+
"coreml": 26,
|
| 270 |
+
"max_abs_probability_error": 5.761169319384862e-11,
|
| 271 |
+
"max_abs_logit_error": 0.008268356323242188
|
| 272 |
+
},
|
| 273 |
+
{
|
| 274 |
+
"row": 19,
|
| 275 |
+
"label": 26,
|
| 276 |
+
"upstream": 26,
|
| 277 |
+
"coreml": 26,
|
| 278 |
+
"max_abs_probability_error": 3.685274307940745e-12,
|
| 279 |
+
"max_abs_logit_error": 0.012112617492675781
|
| 280 |
+
},
|
| 281 |
+
{
|
| 282 |
+
"row": 20,
|
| 283 |
+
"label": 26,
|
| 284 |
+
"upstream": 26,
|
| 285 |
+
"coreml": 26,
|
| 286 |
+
"max_abs_probability_error": 3.197389020215269e-10,
|
| 287 |
+
"max_abs_logit_error": 0.012657880783081055
|
| 288 |
+
},
|
| 289 |
+
{
|
| 290 |
+
"row": 21,
|
| 291 |
+
"label": 26,
|
| 292 |
+
"upstream": 26,
|
| 293 |
+
"coreml": 26,
|
| 294 |
+
"max_abs_probability_error": 1.3100631690576847e-13,
|
| 295 |
+
"max_abs_logit_error": 0.02386617660522461
|
| 296 |
+
},
|
| 297 |
+
{
|
| 298 |
+
"row": 22,
|
| 299 |
+
"label": 26,
|
| 300 |
+
"upstream": 26,
|
| 301 |
+
"coreml": 26,
|
| 302 |
+
"max_abs_probability_error": 2.716319613682572e-09,
|
| 303 |
+
"max_abs_logit_error": 0.027971267700195312
|
| 304 |
+
},
|
| 305 |
+
{
|
| 306 |
+
"row": 23,
|
| 307 |
+
"label": 26,
|
| 308 |
+
"upstream": 26,
|
| 309 |
+
"coreml": 26,
|
| 310 |
+
"max_abs_probability_error": 8.720178357179975e-09,
|
| 311 |
+
"max_abs_logit_error": 0.026054739952087402
|
| 312 |
+
},
|
| 313 |
+
{
|
| 314 |
+
"row": 24,
|
| 315 |
+
"label": 26,
|
| 316 |
+
"upstream": 26,
|
| 317 |
+
"coreml": 26,
|
| 318 |
+
"max_abs_probability_error": 1.5336516778763354e-13,
|
| 319 |
+
"max_abs_logit_error": 0.012665033340454102
|
| 320 |
+
},
|
| 321 |
+
{
|
| 322 |
+
"row": 25,
|
| 323 |
+
"label": 26,
|
| 324 |
+
"upstream": 26,
|
| 325 |
+
"coreml": 26,
|
| 326 |
+
"max_abs_probability_error": 9.446710080851517e-11,
|
| 327 |
+
"max_abs_logit_error": 0.014183402061462402
|
| 328 |
+
},
|
| 329 |
+
{
|
| 330 |
+
"row": 26,
|
| 331 |
+
"label": 26,
|
| 332 |
+
"upstream": 26,
|
| 333 |
+
"coreml": 26,
|
| 334 |
+
"max_abs_probability_error": 4.373890138964498e-12,
|
| 335 |
+
"max_abs_logit_error": 0.009427070617675781
|
| 336 |
+
},
|
| 337 |
+
{
|
| 338 |
+
"row": 27,
|
| 339 |
+
"label": 26,
|
| 340 |
+
"upstream": 26,
|
| 341 |
+
"coreml": 26,
|
| 342 |
+
"max_abs_probability_error": 4.2128106558791956e-13,
|
| 343 |
+
"max_abs_logit_error": 0.016583919525146484
|
| 344 |
+
},
|
| 345 |
+
{
|
| 346 |
+
"row": 28,
|
| 347 |
+
"label": 26,
|
| 348 |
+
"upstream": 26,
|
| 349 |
+
"coreml": 26,
|
| 350 |
+
"max_abs_probability_error": 1.1457235160605705e-10,
|
| 351 |
+
"max_abs_logit_error": 0.012380242347717285
|
| 352 |
+
},
|
| 353 |
+
{
|
| 354 |
+
"row": 29,
|
| 355 |
+
"label": 26,
|
| 356 |
+
"upstream": 26,
|
| 357 |
+
"coreml": 26,
|
| 358 |
+
"max_abs_probability_error": 1.6885971787505838e-13,
|
| 359 |
+
"max_abs_logit_error": 0.01409292221069336
|
| 360 |
+
},
|
| 361 |
+
{
|
| 362 |
+
"row": 30,
|
| 363 |
+
"label": 26,
|
| 364 |
+
"upstream": 26,
|
| 365 |
+
"coreml": 26,
|
| 366 |
+
"max_abs_probability_error": 3.038820750589366e-09,
|
| 367 |
+
"max_abs_logit_error": 0.023344039916992188
|
| 368 |
+
},
|
| 369 |
+
{
|
| 370 |
+
"row": 31,
|
| 371 |
+
"label": 26,
|
| 372 |
+
"upstream": 26,
|
| 373 |
+
"coreml": 26,
|
| 374 |
+
"max_abs_probability_error": 2.535194276731545e-12,
|
| 375 |
+
"max_abs_logit_error": 0.019451618194580078
|
| 376 |
+
},
|
| 377 |
+
{
|
| 378 |
+
"row": 32,
|
| 379 |
+
"label": 26,
|
| 380 |
+
"upstream": 26,
|
| 381 |
+
"coreml": 26,
|
| 382 |
+
"max_abs_probability_error": 1.1524559084818975e-11,
|
| 383 |
+
"max_abs_logit_error": 0.016178369522094727
|
| 384 |
+
},
|
| 385 |
+
{
|
| 386 |
+
"row": 33,
|
| 387 |
+
"label": 26,
|
| 388 |
+
"upstream": 26,
|
| 389 |
+
"coreml": 26,
|
| 390 |
+
"max_abs_probability_error": 7.133360568900571e-11,
|
| 391 |
+
"max_abs_logit_error": 0.016007661819458008
|
| 392 |
+
},
|
| 393 |
+
{
|
| 394 |
+
"row": 34,
|
| 395 |
+
"label": 26,
|
| 396 |
+
"upstream": 26,
|
| 397 |
+
"coreml": 26,
|
| 398 |
+
"max_abs_probability_error": 8.463859558105469e-06,
|
| 399 |
+
"max_abs_logit_error": 0.021859407424926758
|
| 400 |
+
},
|
| 401 |
+
{
|
| 402 |
+
"row": 35,
|
| 403 |
+
"label": 26,
|
| 404 |
+
"upstream": 26,
|
| 405 |
+
"coreml": 26,
|
| 406 |
+
"max_abs_probability_error": 6.966427434917932e-12,
|
| 407 |
+
"max_abs_logit_error": 0.012809276580810547
|
| 408 |
+
},
|
| 409 |
+
{
|
| 410 |
+
"row": 36,
|
| 411 |
+
"label": 26,
|
| 412 |
+
"upstream": 26,
|
| 413 |
+
"coreml": 26,
|
| 414 |
+
"max_abs_probability_error": 3.978734008924789e-12,
|
| 415 |
+
"max_abs_logit_error": 0.011217594146728516
|
| 416 |
+
},
|
| 417 |
+
{
|
| 418 |
+
"row": 37,
|
| 419 |
+
"label": 26,
|
| 420 |
+
"upstream": 26,
|
| 421 |
+
"coreml": 26,
|
| 422 |
+
"max_abs_probability_error": 3.058104880437895e-10,
|
| 423 |
+
"max_abs_logit_error": 0.015135049819946289
|
| 424 |
+
},
|
| 425 |
+
{
|
| 426 |
+
"row": 38,
|
| 427 |
+
"label": 26,
|
| 428 |
+
"upstream": 26,
|
| 429 |
+
"coreml": 26,
|
| 430 |
+
"max_abs_probability_error": 1.1240661179634515e-12,
|
| 431 |
+
"max_abs_logit_error": 0.013502120971679688
|
| 432 |
+
},
|
| 433 |
+
{
|
| 434 |
+
"row": 39,
|
| 435 |
+
"label": 26,
|
| 436 |
+
"upstream": 26,
|
| 437 |
+
"coreml": 26,
|
| 438 |
+
"max_abs_probability_error": 3.3960612100258913e-12,
|
| 439 |
+
"max_abs_logit_error": 0.015411376953125
|
| 440 |
+
},
|
| 441 |
+
{
|
| 442 |
+
"row": 40,
|
| 443 |
+
"label": 26,
|
| 444 |
+
"upstream": 26,
|
| 445 |
+
"coreml": 26,
|
| 446 |
+
"max_abs_probability_error": 3.713369369506836e-05,
|
| 447 |
+
"max_abs_logit_error": 0.02988719940185547
|
| 448 |
+
},
|
| 449 |
+
{
|
| 450 |
+
"row": 41,
|
| 451 |
+
"label": 26,
|
| 452 |
+
"upstream": 26,
|
| 453 |
+
"coreml": 26,
|
| 454 |
+
"max_abs_probability_error": 1.836255592024827e-10,
|
| 455 |
+
"max_abs_logit_error": 0.017060812562704086
|
| 456 |
+
},
|
| 457 |
+
{
|
| 458 |
+
"row": 42,
|
| 459 |
+
"label": 26,
|
| 460 |
+
"upstream": 26,
|
| 461 |
+
"coreml": 26,
|
| 462 |
+
"max_abs_probability_error": 2.5000002068509275e-12,
|
| 463 |
+
"max_abs_logit_error": 0.009338855743408203
|
| 464 |
+
},
|
| 465 |
+
{
|
| 466 |
+
"row": 43,
|
| 467 |
+
"label": 26,
|
| 468 |
+
"upstream": 26,
|
| 469 |
+
"coreml": 26,
|
| 470 |
+
"max_abs_probability_error": 1.031253304972779e-08,
|
| 471 |
+
"max_abs_logit_error": 0.013645172119140625
|
| 472 |
+
},
|
| 473 |
+
{
|
| 474 |
+
"row": 44,
|
| 475 |
+
"label": 26,
|
| 476 |
+
"upstream": 26,
|
| 477 |
+
"coreml": 26,
|
| 478 |
+
"max_abs_probability_error": 3.2869124089174306e-12,
|
| 479 |
+
"max_abs_logit_error": 0.014712810516357422
|
| 480 |
+
},
|
| 481 |
+
{
|
| 482 |
+
"row": 45,
|
| 483 |
+
"label": 26,
|
| 484 |
+
"upstream": 26,
|
| 485 |
+
"coreml": 26,
|
| 486 |
+
"max_abs_probability_error": 2.582760394442829e-13,
|
| 487 |
+
"max_abs_logit_error": 0.01000899076461792
|
| 488 |
+
},
|
| 489 |
+
{
|
| 490 |
+
"row": 46,
|
| 491 |
+
"label": 26,
|
| 492 |
+
"upstream": 26,
|
| 493 |
+
"coreml": 26,
|
| 494 |
+
"max_abs_probability_error": 3.987421504092481e-12,
|
| 495 |
+
"max_abs_logit_error": 0.008915901184082031
|
| 496 |
+
},
|
| 497 |
+
{
|
| 498 |
+
"row": 47,
|
| 499 |
+
"label": 26,
|
| 500 |
+
"upstream": 26,
|
| 501 |
+
"coreml": 26,
|
| 502 |
+
"max_abs_probability_error": 3.5084782301630923e-13,
|
| 503 |
+
"max_abs_logit_error": 0.012367963790893555
|
| 504 |
+
},
|
| 505 |
+
{
|
| 506 |
+
"row": 48,
|
| 507 |
+
"label": 26,
|
| 508 |
+
"upstream": 26,
|
| 509 |
+
"coreml": 26,
|
| 510 |
+
"max_abs_probability_error": 1.1920928955078125e-07,
|
| 511 |
+
"max_abs_logit_error": 0.020061016082763672
|
| 512 |
+
},
|
| 513 |
+
{
|
| 514 |
+
"row": 49,
|
| 515 |
+
"label": 26,
|
| 516 |
+
"upstream": 26,
|
| 517 |
+
"coreml": 26,
|
| 518 |
+
"max_abs_probability_error": 1.312366881833782e-12,
|
| 519 |
+
"max_abs_logit_error": 0.02675628662109375
|
| 520 |
+
},
|
| 521 |
+
{
|
| 522 |
+
"row": 50,
|
| 523 |
+
"label": 26,
|
| 524 |
+
"upstream": 26,
|
| 525 |
+
"coreml": 26,
|
| 526 |
+
"max_abs_probability_error": 5.60369528557203e-10,
|
| 527 |
+
"max_abs_logit_error": 0.011376380920410156
|
| 528 |
+
},
|
| 529 |
+
{
|
| 530 |
+
"row": 51,
|
| 531 |
+
"label": 25,
|
| 532 |
+
"upstream": 25,
|
| 533 |
+
"coreml": 25,
|
| 534 |
+
"max_abs_probability_error": 3.9392489270539954e-11,
|
| 535 |
+
"max_abs_logit_error": 0.02391815185546875
|
| 536 |
+
},
|
| 537 |
+
{
|
| 538 |
+
"row": 52,
|
| 539 |
+
"label": 26,
|
| 540 |
+
"upstream": 26,
|
| 541 |
+
"coreml": 26,
|
| 542 |
+
"max_abs_probability_error": 5.761169319384862e-11,
|
| 543 |
+
"max_abs_logit_error": 0.008268356323242188
|
| 544 |
+
},
|
| 545 |
+
{
|
| 546 |
+
"row": 53,
|
| 547 |
+
"label": 26,
|
| 548 |
+
"upstream": 26,
|
| 549 |
+
"coreml": 26,
|
| 550 |
+
"max_abs_probability_error": 3.685274307940745e-12,
|
| 551 |
+
"max_abs_logit_error": 0.012112617492675781
|
| 552 |
+
},
|
| 553 |
+
{
|
| 554 |
+
"row": 54,
|
| 555 |
+
"label": 26,
|
| 556 |
+
"upstream": 26,
|
| 557 |
+
"coreml": 26,
|
| 558 |
+
"max_abs_probability_error": 3.197389020215269e-10,
|
| 559 |
+
"max_abs_logit_error": 0.012657880783081055
|
| 560 |
+
},
|
| 561 |
+
{
|
| 562 |
+
"row": 55,
|
| 563 |
+
"label": 26,
|
| 564 |
+
"upstream": 26,
|
| 565 |
+
"coreml": 26,
|
| 566 |
+
"max_abs_probability_error": 1.3100631690576847e-13,
|
| 567 |
+
"max_abs_logit_error": 0.02386617660522461
|
| 568 |
+
},
|
| 569 |
+
{
|
| 570 |
+
"row": 56,
|
| 571 |
+
"label": 26,
|
| 572 |
+
"upstream": 26,
|
| 573 |
+
"coreml": 26,
|
| 574 |
+
"max_abs_probability_error": 2.716319613682572e-09,
|
| 575 |
+
"max_abs_logit_error": 0.027971267700195312
|
| 576 |
+
},
|
| 577 |
+
{
|
| 578 |
+
"row": 57,
|
| 579 |
+
"label": 26,
|
| 580 |
+
"upstream": 26,
|
| 581 |
+
"coreml": 26,
|
| 582 |
+
"max_abs_probability_error": 8.720178357179975e-09,
|
| 583 |
+
"max_abs_logit_error": 0.026054739952087402
|
| 584 |
+
},
|
| 585 |
+
{
|
| 586 |
+
"row": 58,
|
| 587 |
+
"label": 26,
|
| 588 |
+
"upstream": 26,
|
| 589 |
+
"coreml": 26,
|
| 590 |
+
"max_abs_probability_error": 1.5336516778763354e-13,
|
| 591 |
+
"max_abs_logit_error": 0.012665033340454102
|
| 592 |
+
},
|
| 593 |
+
{
|
| 594 |
+
"row": 59,
|
| 595 |
+
"label": 26,
|
| 596 |
+
"upstream": 26,
|
| 597 |
+
"coreml": 26,
|
| 598 |
+
"max_abs_probability_error": 9.446710080851517e-11,
|
| 599 |
+
"max_abs_logit_error": 0.014183402061462402
|
| 600 |
+
},
|
| 601 |
+
{
|
| 602 |
+
"row": 60,
|
| 603 |
+
"label": 26,
|
| 604 |
+
"upstream": 26,
|
| 605 |
+
"coreml": 26,
|
| 606 |
+
"max_abs_probability_error": 4.373890138964498e-12,
|
| 607 |
+
"max_abs_logit_error": 0.009427070617675781
|
| 608 |
+
},
|
| 609 |
+
{
|
| 610 |
+
"row": 61,
|
| 611 |
+
"label": 26,
|
| 612 |
+
"upstream": 26,
|
| 613 |
+
"coreml": 26,
|
| 614 |
+
"max_abs_probability_error": 4.2128106558791956e-13,
|
| 615 |
+
"max_abs_logit_error": 0.016583919525146484
|
| 616 |
+
},
|
| 617 |
+
{
|
| 618 |
+
"row": 62,
|
| 619 |
+
"label": 26,
|
| 620 |
+
"upstream": 26,
|
| 621 |
+
"coreml": 26,
|
| 622 |
+
"max_abs_probability_error": 1.1457235160605705e-10,
|
| 623 |
+
"max_abs_logit_error": 0.012380242347717285
|
| 624 |
+
},
|
| 625 |
+
{
|
| 626 |
+
"row": 63,
|
| 627 |
+
"label": 26,
|
| 628 |
+
"upstream": 26,
|
| 629 |
+
"coreml": 26,
|
| 630 |
+
"max_abs_probability_error": 1.6885971787505838e-13,
|
| 631 |
+
"max_abs_logit_error": 0.01409292221069336
|
| 632 |
+
},
|
| 633 |
+
{
|
| 634 |
+
"row": 64,
|
| 635 |
+
"label": 26,
|
| 636 |
+
"upstream": 26,
|
| 637 |
+
"coreml": 26,
|
| 638 |
+
"max_abs_probability_error": 3.038820750589366e-09,
|
| 639 |
+
"max_abs_logit_error": 0.023344039916992188
|
| 640 |
+
},
|
| 641 |
+
{
|
| 642 |
+
"row": 65,
|
| 643 |
+
"label": 26,
|
| 644 |
+
"upstream": 26,
|
| 645 |
+
"coreml": 26,
|
| 646 |
+
"max_abs_probability_error": 2.535194276731545e-12,
|
| 647 |
+
"max_abs_logit_error": 0.019451618194580078
|
| 648 |
+
},
|
| 649 |
+
{
|
| 650 |
+
"row": 66,
|
| 651 |
+
"label": 26,
|
| 652 |
+
"upstream": 26,
|
| 653 |
+
"coreml": 26,
|
| 654 |
+
"max_abs_probability_error": 1.1524559084818975e-11,
|
| 655 |
+
"max_abs_logit_error": 0.016178369522094727
|
| 656 |
+
},
|
| 657 |
+
{
|
| 658 |
+
"row": 67,
|
| 659 |
+
"label": 26,
|
| 660 |
+
"upstream": 26,
|
| 661 |
+
"coreml": 26,
|
| 662 |
+
"max_abs_probability_error": 7.133360568900571e-11,
|
| 663 |
+
"max_abs_logit_error": 0.016007661819458008
|
| 664 |
+
},
|
| 665 |
+
{
|
| 666 |
+
"row": 68,
|
| 667 |
+
"label": 0,
|
| 668 |
+
"upstream": 0,
|
| 669 |
+
"coreml": 0,
|
| 670 |
+
"max_abs_probability_error": 5.960464477539062e-07,
|
| 671 |
+
"max_abs_logit_error": 0.02204132080078125
|
| 672 |
+
},
|
| 673 |
+
{
|
| 674 |
+
"row": 69,
|
| 675 |
+
"label": 1,
|
| 676 |
+
"upstream": 1,
|
| 677 |
+
"coreml": 1,
|
| 678 |
+
"max_abs_probability_error": 5.992624210193753e-07,
|
| 679 |
+
"max_abs_logit_error": 0.01074361801147461
|
| 680 |
+
},
|
| 681 |
+
{
|
| 682 |
+
"row": 70,
|
| 683 |
+
"label": 2,
|
| 684 |
+
"upstream": 2,
|
| 685 |
+
"coreml": 2,
|
| 686 |
+
"max_abs_probability_error": 1.6200374375330284e-09,
|
| 687 |
+
"max_abs_logit_error": 0.012182235717773438
|
| 688 |
+
},
|
| 689 |
+
{
|
| 690 |
+
"row": 71,
|
| 691 |
+
"label": 3,
|
| 692 |
+
"upstream": 3,
|
| 693 |
+
"coreml": 3,
|
| 694 |
+
"max_abs_probability_error": 7.649177860002965e-07,
|
| 695 |
+
"max_abs_logit_error": 0.021416664123535156
|
| 696 |
+
},
|
| 697 |
+
{
|
| 698 |
+
"row": 72,
|
| 699 |
+
"label": 5,
|
| 700 |
+
"upstream": 5,
|
| 701 |
+
"coreml": 5,
|
| 702 |
+
"max_abs_probability_error": 1.716807673801668e-08,
|
| 703 |
+
"max_abs_logit_error": 0.015079259872436523
|
| 704 |
+
},
|
| 705 |
+
{
|
| 706 |
+
"row": 73,
|
| 707 |
+
"label": 6,
|
| 708 |
+
"upstream": 6,
|
| 709 |
+
"coreml": 6,
|
| 710 |
+
"max_abs_probability_error": 2.384185791015625e-07,
|
| 711 |
+
"max_abs_logit_error": 0.022822856903076172
|
| 712 |
+
},
|
| 713 |
+
{
|
| 714 |
+
"row": 74,
|
| 715 |
+
"label": 7,
|
| 716 |
+
"upstream": 7,
|
| 717 |
+
"coreml": 7,
|
| 718 |
+
"max_abs_probability_error": 1.3113021850585938e-06,
|
| 719 |
+
"max_abs_logit_error": 0.02725982666015625
|
| 720 |
+
},
|
| 721 |
+
{
|
| 722 |
+
"row": 75,
|
| 723 |
+
"label": 8,
|
| 724 |
+
"upstream": 8,
|
| 725 |
+
"coreml": 8,
|
| 726 |
+
"max_abs_probability_error": 8.482402336085215e-08,
|
| 727 |
+
"max_abs_logit_error": 0.01822662353515625
|
| 728 |
+
},
|
| 729 |
+
{
|
| 730 |
+
"row": 76,
|
| 731 |
+
"label": 9,
|
| 732 |
+
"upstream": 9,
|
| 733 |
+
"coreml": 9,
|
| 734 |
+
"max_abs_probability_error": 4.19224761571968e-08,
|
| 735 |
+
"max_abs_logit_error": 0.027760028839111328
|
| 736 |
+
},
|
| 737 |
+
{
|
| 738 |
+
"row": 77,
|
| 739 |
+
"label": 13,
|
| 740 |
+
"upstream": 13,
|
| 741 |
+
"coreml": 13,
|
| 742 |
+
"max_abs_probability_error": 6.794929504394531e-06,
|
| 743 |
+
"max_abs_logit_error": 0.02509307861328125
|
| 744 |
+
},
|
| 745 |
+
{
|
| 746 |
+
"row": 78,
|
| 747 |
+
"label": 20,
|
| 748 |
+
"upstream": 20,
|
| 749 |
+
"coreml": 20,
|
| 750 |
+
"max_abs_probability_error": 1.1920928955078125e-07,
|
| 751 |
+
"max_abs_logit_error": 0.013262271881103516
|
| 752 |
+
},
|
| 753 |
+
{
|
| 754 |
+
"row": 79,
|
| 755 |
+
"label": 18,
|
| 756 |
+
"upstream": 18,
|
| 757 |
+
"coreml": 18,
|
| 758 |
+
"max_abs_probability_error": 7.902155630290508e-06,
|
| 759 |
+
"max_abs_logit_error": 0.019384384155273438
|
| 760 |
+
},
|
| 761 |
+
{
|
| 762 |
+
"row": 80,
|
| 763 |
+
"label": 18,
|
| 764 |
+
"upstream": 18,
|
| 765 |
+
"coreml": 18,
|
| 766 |
+
"max_abs_probability_error": 4.386720320326276e-09,
|
| 767 |
+
"max_abs_logit_error": 0.020812511444091797
|
| 768 |
+
},
|
| 769 |
+
{
|
| 770 |
+
"row": 81,
|
| 771 |
+
"label": 20,
|
| 772 |
+
"upstream": 20,
|
| 773 |
+
"coreml": 20,
|
| 774 |
+
"max_abs_probability_error": 3.5509287954482716e-08,
|
| 775 |
+
"max_abs_logit_error": 0.033596038818359375
|
| 776 |
+
},
|
| 777 |
+
{
|
| 778 |
+
"row": 82,
|
| 779 |
+
"label": 19,
|
| 780 |
+
"upstream": 19,
|
| 781 |
+
"coreml": 19,
|
| 782 |
+
"max_abs_probability_error": 1.1210374850634253e-09,
|
| 783 |
+
"max_abs_logit_error": 0.021764755249023438
|
| 784 |
+
},
|
| 785 |
+
{
|
| 786 |
+
"row": 83,
|
| 787 |
+
"label": 20,
|
| 788 |
+
"upstream": 20,
|
| 789 |
+
"coreml": 20,
|
| 790 |
+
"max_abs_probability_error": 2.9104718635153404e-11,
|
| 791 |
+
"max_abs_logit_error": 0.017470359802246094
|
| 792 |
+
},
|
| 793 |
+
{
|
| 794 |
+
"row": 84,
|
| 795 |
+
"label": 20,
|
| 796 |
+
"upstream": 20,
|
| 797 |
+
"coreml": 20,
|
| 798 |
+
"max_abs_probability_error": 3.615042487581377e-09,
|
| 799 |
+
"max_abs_logit_error": 0.011733055114746094
|
| 800 |
+
},
|
| 801 |
+
{
|
| 802 |
+
"row": 85,
|
| 803 |
+
"label": 20,
|
| 804 |
+
"upstream": 20,
|
| 805 |
+
"coreml": 20,
|
| 806 |
+
"max_abs_probability_error": 2.5568436257117355e-12,
|
| 807 |
+
"max_abs_logit_error": 0.018376827239990234
|
| 808 |
+
},
|
| 809 |
+
{
|
| 810 |
+
"row": 86,
|
| 811 |
+
"label": 20,
|
| 812 |
+
"upstream": 20,
|
| 813 |
+
"coreml": 20,
|
| 814 |
+
"max_abs_probability_error": 3.652814939414384e-09,
|
| 815 |
+
"max_abs_logit_error": 0.013185739517211914
|
| 816 |
+
},
|
| 817 |
+
{
|
| 818 |
+
"row": 87,
|
| 819 |
+
"label": 20,
|
| 820 |
+
"upstream": 20,
|
| 821 |
+
"coreml": 20,
|
| 822 |
+
"max_abs_probability_error": 8.637570658720506e-10,
|
| 823 |
+
"max_abs_logit_error": 0.010789871215820312
|
| 824 |
+
},
|
| 825 |
+
{
|
| 826 |
+
"row": 88,
|
| 827 |
+
"label": 20,
|
| 828 |
+
"upstream": 20,
|
| 829 |
+
"coreml": 20,
|
| 830 |
+
"max_abs_probability_error": 2.6595947666407938e-11,
|
| 831 |
+
"max_abs_logit_error": 0.022840499877929688
|
| 832 |
+
},
|
| 833 |
+
{
|
| 834 |
+
"row": 89,
|
| 835 |
+
"label": 20,
|
| 836 |
+
"upstream": 20,
|
| 837 |
+
"coreml": 20,
|
| 838 |
+
"max_abs_probability_error": 1.6561418902938385e-11,
|
| 839 |
+
"max_abs_logit_error": 0.009737014770507812
|
| 840 |
+
},
|
| 841 |
+
{
|
| 842 |
+
"row": 90,
|
| 843 |
+
"label": 20,
|
| 844 |
+
"upstream": 20,
|
| 845 |
+
"coreml": 20,
|
| 846 |
+
"max_abs_probability_error": 1.1621037465658901e-11,
|
| 847 |
+
"max_abs_logit_error": 0.01908111572265625
|
| 848 |
+
},
|
| 849 |
+
{
|
| 850 |
+
"row": 91,
|
| 851 |
+
"label": 20,
|
| 852 |
+
"upstream": 20,
|
| 853 |
+
"coreml": 20,
|
| 854 |
+
"max_abs_probability_error": 8.295308884243013e-13,
|
| 855 |
+
"max_abs_logit_error": 0.016066551208496094
|
| 856 |
+
},
|
| 857 |
+
{
|
| 858 |
+
"row": 92,
|
| 859 |
+
"label": 20,
|
| 860 |
+
"upstream": 20,
|
| 861 |
+
"coreml": 20,
|
| 862 |
+
"max_abs_probability_error": 2.485815372987865e-14,
|
| 863 |
+
"max_abs_logit_error": 0.01638507843017578
|
| 864 |
+
},
|
| 865 |
+
{
|
| 866 |
+
"row": 93,
|
| 867 |
+
"label": 20,
|
| 868 |
+
"upstream": 20,
|
| 869 |
+
"coreml": 20,
|
| 870 |
+
"max_abs_probability_error": 2.78640222006743e-10,
|
| 871 |
+
"max_abs_logit_error": 0.024122238159179688
|
| 872 |
+
},
|
| 873 |
+
{
|
| 874 |
+
"row": 94,
|
| 875 |
+
"label": 20,
|
| 876 |
+
"upstream": 20,
|
| 877 |
+
"coreml": 20,
|
| 878 |
+
"max_abs_probability_error": 3.6049052631881295e-11,
|
| 879 |
+
"max_abs_logit_error": 0.0227203369140625
|
| 880 |
+
},
|
| 881 |
+
{
|
| 882 |
+
"row": 95,
|
| 883 |
+
"label": 20,
|
| 884 |
+
"upstream": 20,
|
| 885 |
+
"coreml": 20,
|
| 886 |
+
"max_abs_probability_error": 7.636086207796211e-12,
|
| 887 |
+
"max_abs_logit_error": 0.021586894989013672
|
| 888 |
+
},
|
| 889 |
+
{
|
| 890 |
+
"row": 96,
|
| 891 |
+
"label": 20,
|
| 892 |
+
"upstream": 20,
|
| 893 |
+
"coreml": 20,
|
| 894 |
+
"max_abs_probability_error": 2.5383029012004954e-12,
|
| 895 |
+
"max_abs_logit_error": 0.019191741943359375
|
| 896 |
+
},
|
| 897 |
+
{
|
| 898 |
+
"row": 97,
|
| 899 |
+
"label": 20,
|
| 900 |
+
"upstream": 20,
|
| 901 |
+
"coreml": 20,
|
| 902 |
+
"max_abs_probability_error": 3.6573055695043877e-09,
|
| 903 |
+
"max_abs_logit_error": 0.016190528869628906
|
| 904 |
+
},
|
| 905 |
+
{
|
| 906 |
+
"row": 98,
|
| 907 |
+
"label": 20,
|
| 908 |
+
"upstream": 20,
|
| 909 |
+
"coreml": 20,
|
| 910 |
+
"max_abs_probability_error": 3.6824872040597256e-09,
|
| 911 |
+
"max_abs_logit_error": 0.016640663146972656
|
| 912 |
+
},
|
| 913 |
+
{
|
| 914 |
+
"row": 99,
|
| 915 |
+
"label": 20,
|
| 916 |
+
"upstream": 20,
|
| 917 |
+
"coreml": 20,
|
| 918 |
+
"max_abs_probability_error": 7.239464139274787e-09,
|
| 919 |
+
"max_abs_logit_error": 0.012330055236816406
|
| 920 |
+
},
|
| 921 |
+
{
|
| 922 |
+
"row": 100,
|
| 923 |
+
"label": 20,
|
| 924 |
+
"upstream": 20,
|
| 925 |
+
"coreml": 20,
|
| 926 |
+
"max_abs_probability_error": 9.094208053284092e-09,
|
| 927 |
+
"max_abs_logit_error": 0.024295806884765625
|
| 928 |
+
},
|
| 929 |
+
{
|
| 930 |
+
"row": 101,
|
| 931 |
+
"label": 20,
|
| 932 |
+
"upstream": 20,
|
| 933 |
+
"coreml": 20,
|
| 934 |
+
"max_abs_probability_error": 4.488498461796553e-11,
|
| 935 |
+
"max_abs_logit_error": 0.010948657989501953
|
| 936 |
+
},
|
| 937 |
+
{
|
| 938 |
+
"row": 102,
|
| 939 |
+
"label": 20,
|
| 940 |
+
"upstream": 20,
|
| 941 |
+
"coreml": 20,
|
| 942 |
+
"max_abs_probability_error": 6.78730405212491e-11,
|
| 943 |
+
"max_abs_logit_error": 0.0258026123046875
|
| 944 |
+
},
|
| 945 |
+
{
|
| 946 |
+
"row": 103,
|
| 947 |
+
"label": 20,
|
| 948 |
+
"upstream": 20,
|
| 949 |
+
"coreml": 20,
|
| 950 |
+
"max_abs_probability_error": 4.291534423828125e-06,
|
| 951 |
+
"max_abs_logit_error": 0.013744831085205078
|
| 952 |
+
},
|
| 953 |
+
{
|
| 954 |
+
"row": 104,
|
| 955 |
+
"label": 20,
|
| 956 |
+
"upstream": 20,
|
| 957 |
+
"coreml": 20,
|
| 958 |
+
"max_abs_probability_error": 4.948583409714047e-08,
|
| 959 |
+
"max_abs_logit_error": 0.02979755401611328
|
| 960 |
+
},
|
| 961 |
+
{
|
| 962 |
+
"row": 105,
|
| 963 |
+
"label": 20,
|
| 964 |
+
"upstream": 20,
|
| 965 |
+
"coreml": 20,
|
| 966 |
+
"max_abs_probability_error": 9.98279237052202e-12,
|
| 967 |
+
"max_abs_logit_error": 0.012142181396484375
|
| 968 |
+
},
|
| 969 |
+
{
|
| 970 |
+
"row": 106,
|
| 971 |
+
"label": 20,
|
| 972 |
+
"upstream": 20,
|
| 973 |
+
"coreml": 20,
|
| 974 |
+
"max_abs_probability_error": 2.4030777368011513e-11,
|
| 975 |
+
"max_abs_logit_error": 0.013262748718261719
|
| 976 |
+
},
|
| 977 |
+
{
|
| 978 |
+
"row": 107,
|
| 979 |
+
"label": 20,
|
| 980 |
+
"upstream": 20,
|
| 981 |
+
"coreml": 20,
|
| 982 |
+
"max_abs_probability_error": 2.511102437097179e-12,
|
| 983 |
+
"max_abs_logit_error": 0.018053054809570312
|
| 984 |
+
},
|
| 985 |
+
{
|
| 986 |
+
"row": 108,
|
| 987 |
+
"label": 20,
|
| 988 |
+
"upstream": 20,
|
| 989 |
+
"coreml": 20,
|
| 990 |
+
"max_abs_probability_error": 2.8072548730051494e-09,
|
| 991 |
+
"max_abs_logit_error": 0.024975299835205078
|
| 992 |
+
},
|
| 993 |
+
{
|
| 994 |
+
"row": 109,
|
| 995 |
+
"label": 20,
|
| 996 |
+
"upstream": 20,
|
| 997 |
+
"coreml": 20,
|
| 998 |
+
"max_abs_probability_error": 1.1920928955078125e-07,
|
| 999 |
+
"max_abs_logit_error": 0.013262271881103516
|
| 1000 |
+
},
|
| 1001 |
+
{
|
| 1002 |
+
"row": 110,
|
| 1003 |
+
"label": 20,
|
| 1004 |
+
"upstream": 20,
|
| 1005 |
+
"coreml": 20,
|
| 1006 |
+
"max_abs_probability_error": 2.9665898182429373e-08,
|
| 1007 |
+
"max_abs_logit_error": 0.02109050750732422
|
| 1008 |
+
},
|
| 1009 |
+
{
|
| 1010 |
+
"row": 111,
|
| 1011 |
+
"label": 20,
|
| 1012 |
+
"upstream": 20,
|
| 1013 |
+
"coreml": 20,
|
| 1014 |
+
"max_abs_probability_error": 1.1920928955078125e-07,
|
| 1015 |
+
"max_abs_logit_error": 0.0117645263671875
|
| 1016 |
+
},
|
| 1017 |
+
{
|
| 1018 |
+
"row": 112,
|
| 1019 |
+
"label": 20,
|
| 1020 |
+
"upstream": 20,
|
| 1021 |
+
"coreml": 20,
|
| 1022 |
+
"max_abs_probability_error": 3.5509287954482716e-08,
|
| 1023 |
+
"max_abs_logit_error": 0.033596038818359375
|
| 1024 |
+
},
|
| 1025 |
+
{
|
| 1026 |
+
"row": 113,
|
| 1027 |
+
"label": 19,
|
| 1028 |
+
"upstream": 19,
|
| 1029 |
+
"coreml": 19,
|
| 1030 |
+
"max_abs_probability_error": 1.1210374850634253e-09,
|
| 1031 |
+
"max_abs_logit_error": 0.021764755249023438
|
| 1032 |
+
},
|
| 1033 |
+
{
|
| 1034 |
+
"row": 114,
|
| 1035 |
+
"label": 20,
|
| 1036 |
+
"upstream": 20,
|
| 1037 |
+
"coreml": 20,
|
| 1038 |
+
"max_abs_probability_error": 2.9104718635153404e-11,
|
| 1039 |
+
"max_abs_logit_error": 0.017470359802246094
|
| 1040 |
+
},
|
| 1041 |
+
{
|
| 1042 |
+
"row": 115,
|
| 1043 |
+
"label": 20,
|
| 1044 |
+
"upstream": 20,
|
| 1045 |
+
"coreml": 20,
|
| 1046 |
+
"max_abs_probability_error": 3.615042487581377e-09,
|
| 1047 |
+
"max_abs_logit_error": 0.011733055114746094
|
| 1048 |
+
},
|
| 1049 |
+
{
|
| 1050 |
+
"row": 116,
|
| 1051 |
+
"label": 20,
|
| 1052 |
+
"upstream": 20,
|
| 1053 |
+
"coreml": 20,
|
| 1054 |
+
"max_abs_probability_error": 2.5568436257117355e-12,
|
| 1055 |
+
"max_abs_logit_error": 0.018376827239990234
|
| 1056 |
+
},
|
| 1057 |
+
{
|
| 1058 |
+
"row": 117,
|
| 1059 |
+
"label": 20,
|
| 1060 |
+
"upstream": 20,
|
| 1061 |
+
"coreml": 20,
|
| 1062 |
+
"max_abs_probability_error": 3.652814939414384e-09,
|
| 1063 |
+
"max_abs_logit_error": 0.013185739517211914
|
| 1064 |
+
},
|
| 1065 |
+
{
|
| 1066 |
+
"row": 118,
|
| 1067 |
+
"label": 20,
|
| 1068 |
+
"upstream": 20,
|
| 1069 |
+
"coreml": 20,
|
| 1070 |
+
"max_abs_probability_error": 8.637570658720506e-10,
|
| 1071 |
+
"max_abs_logit_error": 0.010789871215820312
|
| 1072 |
+
},
|
| 1073 |
+
{
|
| 1074 |
+
"row": 119,
|
| 1075 |
+
"label": 20,
|
| 1076 |
+
"upstream": 20,
|
| 1077 |
+
"coreml": 20,
|
| 1078 |
+
"max_abs_probability_error": 2.6595947666407938e-11,
|
| 1079 |
+
"max_abs_logit_error": 0.022840499877929688
|
| 1080 |
+
},
|
| 1081 |
+
{
|
| 1082 |
+
"row": 120,
|
| 1083 |
+
"label": 20,
|
| 1084 |
+
"upstream": 20,
|
| 1085 |
+
"coreml": 20,
|
| 1086 |
+
"max_abs_probability_error": 1.6561418902938385e-11,
|
| 1087 |
+
"max_abs_logit_error": 0.009737014770507812
|
| 1088 |
+
},
|
| 1089 |
+
{
|
| 1090 |
+
"row": 121,
|
| 1091 |
+
"label": 20,
|
| 1092 |
+
"upstream": 20,
|
| 1093 |
+
"coreml": 20,
|
| 1094 |
+
"max_abs_probability_error": 1.1621037465658901e-11,
|
| 1095 |
+
"max_abs_logit_error": 0.01908111572265625
|
| 1096 |
+
},
|
| 1097 |
+
{
|
| 1098 |
+
"row": 122,
|
| 1099 |
+
"label": 20,
|
| 1100 |
+
"upstream": 20,
|
| 1101 |
+
"coreml": 20,
|
| 1102 |
+
"max_abs_probability_error": 8.295308884243013e-13,
|
| 1103 |
+
"max_abs_logit_error": 0.016066551208496094
|
| 1104 |
+
},
|
| 1105 |
+
{
|
| 1106 |
+
"row": 123,
|
| 1107 |
+
"label": 20,
|
| 1108 |
+
"upstream": 20,
|
| 1109 |
+
"coreml": 20,
|
| 1110 |
+
"max_abs_probability_error": 2.485815372987865e-14,
|
| 1111 |
+
"max_abs_logit_error": 0.01638507843017578
|
| 1112 |
+
},
|
| 1113 |
+
{
|
| 1114 |
+
"row": 124,
|
| 1115 |
+
"label": 20,
|
| 1116 |
+
"upstream": 20,
|
| 1117 |
+
"coreml": 20,
|
| 1118 |
+
"max_abs_probability_error": 2.78640222006743e-10,
|
| 1119 |
+
"max_abs_logit_error": 0.024122238159179688
|
| 1120 |
+
},
|
| 1121 |
+
{
|
| 1122 |
+
"row": 125,
|
| 1123 |
+
"label": 20,
|
| 1124 |
+
"upstream": 20,
|
| 1125 |
+
"coreml": 20,
|
| 1126 |
+
"max_abs_probability_error": 3.6049052631881295e-11,
|
| 1127 |
+
"max_abs_logit_error": 0.0227203369140625
|
| 1128 |
+
},
|
| 1129 |
+
{
|
| 1130 |
+
"row": 126,
|
| 1131 |
+
"label": 20,
|
| 1132 |
+
"upstream": 20,
|
| 1133 |
+
"coreml": 20,
|
| 1134 |
+
"max_abs_probability_error": 7.636086207796211e-12,
|
| 1135 |
+
"max_abs_logit_error": 0.021586894989013672
|
| 1136 |
+
},
|
| 1137 |
+
{
|
| 1138 |
+
"row": 127,
|
| 1139 |
+
"label": 20,
|
| 1140 |
+
"upstream": 20,
|
| 1141 |
+
"coreml": 20,
|
| 1142 |
+
"max_abs_probability_error": 2.5383029012004954e-12,
|
| 1143 |
+
"max_abs_logit_error": 0.019191741943359375
|
| 1144 |
+
},
|
| 1145 |
+
{
|
| 1146 |
+
"row": 128,
|
| 1147 |
+
"label": 20,
|
| 1148 |
+
"upstream": 20,
|
| 1149 |
+
"coreml": 20,
|
| 1150 |
+
"max_abs_probability_error": 3.6573055695043877e-09,
|
| 1151 |
+
"max_abs_logit_error": 0.016190528869628906
|
| 1152 |
+
},
|
| 1153 |
+
{
|
| 1154 |
+
"row": 129,
|
| 1155 |
+
"label": 20,
|
| 1156 |
+
"upstream": 20,
|
| 1157 |
+
"coreml": 20,
|
| 1158 |
+
"max_abs_probability_error": 3.6824872040597256e-09,
|
| 1159 |
+
"max_abs_logit_error": 0.016640663146972656
|
| 1160 |
+
},
|
| 1161 |
+
{
|
| 1162 |
+
"row": 130,
|
| 1163 |
+
"label": 1,
|
| 1164 |
+
"upstream": 1,
|
| 1165 |
+
"coreml": 1,
|
| 1166 |
+
"max_abs_probability_error": 4.76837158203125e-07,
|
| 1167 |
+
"max_abs_logit_error": 0.027278900146484375
|
| 1168 |
+
},
|
| 1169 |
+
{
|
| 1170 |
+
"row": 131,
|
| 1171 |
+
"label": 2,
|
| 1172 |
+
"upstream": 2,
|
| 1173 |
+
"coreml": 2,
|
| 1174 |
+
"max_abs_probability_error": 1.3382816632656613e-08,
|
| 1175 |
+
"max_abs_logit_error": 0.016567230224609375
|
| 1176 |
+
},
|
| 1177 |
+
{
|
| 1178 |
+
"row": 132,
|
| 1179 |
+
"label": 3,
|
| 1180 |
+
"upstream": 3,
|
| 1181 |
+
"coreml": 3,
|
| 1182 |
+
"max_abs_probability_error": 4.5742126530967653e-07,
|
| 1183 |
+
"max_abs_logit_error": 0.025929927825927734
|
| 1184 |
+
},
|
| 1185 |
+
{
|
| 1186 |
+
"row": 133,
|
| 1187 |
+
"label": 4,
|
| 1188 |
+
"upstream": 4,
|
| 1189 |
+
"coreml": 4,
|
| 1190 |
+
"max_abs_probability_error": 1.1920928955078125e-07,
|
| 1191 |
+
"max_abs_logit_error": 0.017045140266418457
|
| 1192 |
+
},
|
| 1193 |
+
{
|
| 1194 |
+
"row": 134,
|
| 1195 |
+
"label": 5,
|
| 1196 |
+
"upstream": 5,
|
| 1197 |
+
"coreml": 5,
|
| 1198 |
+
"max_abs_probability_error": 8.344650268554688e-07,
|
| 1199 |
+
"max_abs_logit_error": 0.017194747924804688
|
| 1200 |
+
},
|
| 1201 |
+
{
|
| 1202 |
+
"row": 135,
|
| 1203 |
+
"label": 6,
|
| 1204 |
+
"upstream": 6,
|
| 1205 |
+
"coreml": 6,
|
| 1206 |
+
"max_abs_probability_error": 3.5762786865234375e-07,
|
| 1207 |
+
"max_abs_logit_error": 0.026395797729492188
|
| 1208 |
+
},
|
| 1209 |
+
{
|
| 1210 |
+
"row": 136,
|
| 1211 |
+
"label": 7,
|
| 1212 |
+
"upstream": 7,
|
| 1213 |
+
"coreml": 7,
|
| 1214 |
+
"max_abs_probability_error": 2.384185791015625e-07,
|
| 1215 |
+
"max_abs_logit_error": 0.020420074462890625
|
| 1216 |
+
},
|
| 1217 |
+
{
|
| 1218 |
+
"row": 137,
|
| 1219 |
+
"label": 8,
|
| 1220 |
+
"upstream": 8,
|
| 1221 |
+
"coreml": 8,
|
| 1222 |
+
"max_abs_probability_error": 0.0030989646911621094,
|
| 1223 |
+
"max_abs_logit_error": 0.021968841552734375
|
| 1224 |
+
},
|
| 1225 |
+
{
|
| 1226 |
+
"row": 138,
|
| 1227 |
+
"label": 9,
|
| 1228 |
+
"upstream": 9,
|
| 1229 |
+
"coreml": 9,
|
| 1230 |
+
"max_abs_probability_error": 1.7425772966817021e-06,
|
| 1231 |
+
"max_abs_logit_error": 0.010594367980957031
|
| 1232 |
+
},
|
| 1233 |
+
{
|
| 1234 |
+
"row": 139,
|
| 1235 |
+
"label": 10,
|
| 1236 |
+
"upstream": 10,
|
| 1237 |
+
"coreml": 10,
|
| 1238 |
+
"max_abs_probability_error": 1.1920928955078125e-07,
|
| 1239 |
+
"max_abs_logit_error": 0.015566825866699219
|
| 1240 |
+
},
|
| 1241 |
+
{
|
| 1242 |
+
"row": 140,
|
| 1243 |
+
"label": 11,
|
| 1244 |
+
"upstream": 11,
|
| 1245 |
+
"coreml": 11,
|
| 1246 |
+
"max_abs_probability_error": 2.733497694862308e-08,
|
| 1247 |
+
"max_abs_logit_error": 0.020360946655273438
|
| 1248 |
+
},
|
| 1249 |
+
{
|
| 1250 |
+
"row": 141,
|
| 1251 |
+
"label": 12,
|
| 1252 |
+
"upstream": 12,
|
| 1253 |
+
"coreml": 12,
|
| 1254 |
+
"max_abs_probability_error": 8.882998372428119e-07,
|
| 1255 |
+
"max_abs_logit_error": 0.01713848114013672
|
| 1256 |
+
},
|
| 1257 |
+
{
|
| 1258 |
+
"row": 142,
|
| 1259 |
+
"label": 18,
|
| 1260 |
+
"upstream": 18,
|
| 1261 |
+
"coreml": 18,
|
| 1262 |
+
"max_abs_probability_error": 7.821654435247183e-11,
|
| 1263 |
+
"max_abs_logit_error": 0.016475677490234375
|
| 1264 |
+
},
|
| 1265 |
+
{
|
| 1266 |
+
"row": 143,
|
| 1267 |
+
"label": 16,
|
| 1268 |
+
"upstream": 16,
|
| 1269 |
+
"coreml": 16,
|
| 1270 |
+
"max_abs_probability_error": 6.903178473294247e-09,
|
| 1271 |
+
"max_abs_logit_error": 0.02091217041015625
|
| 1272 |
+
},
|
| 1273 |
+
{
|
| 1274 |
+
"row": 144,
|
| 1275 |
+
"label": 18,
|
| 1276 |
+
"upstream": 18,
|
| 1277 |
+
"coreml": 18,
|
| 1278 |
+
"max_abs_probability_error": 1.9354274627403356e-08,
|
| 1279 |
+
"max_abs_logit_error": 0.014428257942199707
|
| 1280 |
+
},
|
| 1281 |
+
{
|
| 1282 |
+
"row": 145,
|
| 1283 |
+
"label": 18,
|
| 1284 |
+
"upstream": 18,
|
| 1285 |
+
"coreml": 18,
|
| 1286 |
+
"max_abs_probability_error": 3.937020665034652e-08,
|
| 1287 |
+
"max_abs_logit_error": 0.013593673706054688
|
| 1288 |
+
},
|
| 1289 |
+
{
|
| 1290 |
+
"row": 146,
|
| 1291 |
+
"label": 17,
|
| 1292 |
+
"upstream": 17,
|
| 1293 |
+
"coreml": 17,
|
| 1294 |
+
"max_abs_probability_error": 1.295774154641549e-09,
|
| 1295 |
+
"max_abs_logit_error": 0.03515338897705078
|
| 1296 |
+
},
|
| 1297 |
+
{
|
| 1298 |
+
"row": 147,
|
| 1299 |
+
"label": 18,
|
| 1300 |
+
"upstream": 18,
|
| 1301 |
+
"coreml": 18,
|
| 1302 |
+
"max_abs_probability_error": 3.638334078459593e-11,
|
| 1303 |
+
"max_abs_logit_error": 0.016902923583984375
|
| 1304 |
+
},
|
| 1305 |
+
{
|
| 1306 |
+
"row": 148,
|
| 1307 |
+
"label": 18,
|
| 1308 |
+
"upstream": 18,
|
| 1309 |
+
"coreml": 18,
|
| 1310 |
+
"max_abs_probability_error": 1.354898415684147e-10,
|
| 1311 |
+
"max_abs_logit_error": 0.007921218872070312
|
| 1312 |
+
},
|
| 1313 |
+
{
|
| 1314 |
+
"row": 149,
|
| 1315 |
+
"label": 18,
|
| 1316 |
+
"upstream": 18,
|
| 1317 |
+
"coreml": 18,
|
| 1318 |
+
"max_abs_probability_error": 4.4544090638254374e-12,
|
| 1319 |
+
"max_abs_logit_error": 0.018396615982055664
|
| 1320 |
+
},
|
| 1321 |
+
{
|
| 1322 |
+
"row": 150,
|
| 1323 |
+
"label": 18,
|
| 1324 |
+
"upstream": 18,
|
| 1325 |
+
"coreml": 18,
|
| 1326 |
+
"max_abs_probability_error": 2.2619059403261588e-14,
|
| 1327 |
+
"max_abs_logit_error": 0.019584178924560547
|
| 1328 |
+
},
|
| 1329 |
+
{
|
| 1330 |
+
"row": 151,
|
| 1331 |
+
"label": 18,
|
| 1332 |
+
"upstream": 18,
|
| 1333 |
+
"coreml": 18,
|
| 1334 |
+
"max_abs_probability_error": 5.77121683775772e-12,
|
| 1335 |
+
"max_abs_logit_error": 0.01009368896484375
|
| 1336 |
+
},
|
| 1337 |
+
{
|
| 1338 |
+
"row": 152,
|
| 1339 |
+
"label": 18,
|
| 1340 |
+
"upstream": 18,
|
| 1341 |
+
"coreml": 18,
|
| 1342 |
+
"max_abs_probability_error": 1.4402368186949843e-12,
|
| 1343 |
+
"max_abs_logit_error": 0.016597270965576172
|
| 1344 |
+
},
|
| 1345 |
+
{
|
| 1346 |
+
"row": 153,
|
| 1347 |
+
"label": 18,
|
| 1348 |
+
"upstream": 18,
|
| 1349 |
+
"coreml": 18,
|
| 1350 |
+
"max_abs_probability_error": 2.3069191001923173e-10,
|
| 1351 |
+
"max_abs_logit_error": 0.023260116577148438
|
| 1352 |
+
},
|
| 1353 |
+
{
|
| 1354 |
+
"row": 154,
|
| 1355 |
+
"label": 18,
|
| 1356 |
+
"upstream": 18,
|
| 1357 |
+
"coreml": 18,
|
| 1358 |
+
"max_abs_probability_error": 4.5346018606728933e-13,
|
| 1359 |
+
"max_abs_logit_error": 0.023482322692871094
|
| 1360 |
+
},
|
| 1361 |
+
{
|
| 1362 |
+
"row": 155,
|
| 1363 |
+
"label": 18,
|
| 1364 |
+
"upstream": 18,
|
| 1365 |
+
"coreml": 18,
|
| 1366 |
+
"max_abs_probability_error": 1.2430889650971721e-12,
|
| 1367 |
+
"max_abs_logit_error": 0.013761520385742188
|
| 1368 |
+
},
|
| 1369 |
+
{
|
| 1370 |
+
"row": 156,
|
| 1371 |
+
"label": 18,
|
| 1372 |
+
"upstream": 18,
|
| 1373 |
+
"coreml": 18,
|
| 1374 |
+
"max_abs_probability_error": 3.12792326762068e-14,
|
| 1375 |
+
"max_abs_logit_error": 0.013568401336669922
|
| 1376 |
+
},
|
| 1377 |
+
{
|
| 1378 |
+
"row": 157,
|
| 1379 |
+
"label": 18,
|
| 1380 |
+
"upstream": 18,
|
| 1381 |
+
"coreml": 18,
|
| 1382 |
+
"max_abs_probability_error": 1.5832196664788967e-12,
|
| 1383 |
+
"max_abs_logit_error": 0.013137876987457275
|
| 1384 |
+
},
|
| 1385 |
+
{
|
| 1386 |
+
"row": 158,
|
| 1387 |
+
"label": 18,
|
| 1388 |
+
"upstream": 18,
|
| 1389 |
+
"coreml": 18,
|
| 1390 |
+
"max_abs_probability_error": 3.681888127715638e-12,
|
| 1391 |
+
"max_abs_logit_error": 0.026842832565307617
|
| 1392 |
+
},
|
| 1393 |
+
{
|
| 1394 |
+
"row": 159,
|
| 1395 |
+
"label": 18,
|
| 1396 |
+
"upstream": 18,
|
| 1397 |
+
"coreml": 18,
|
| 1398 |
+
"max_abs_probability_error": 1.731503829205394e-11,
|
| 1399 |
+
"max_abs_logit_error": 0.015740394592285156
|
| 1400 |
+
},
|
| 1401 |
+
{
|
| 1402 |
+
"row": 160,
|
| 1403 |
+
"label": 18,
|
| 1404 |
+
"upstream": 18,
|
| 1405 |
+
"coreml": 18,
|
| 1406 |
+
"max_abs_probability_error": 1.0416112417033219e-10,
|
| 1407 |
+
"max_abs_logit_error": 0.01055908203125
|
| 1408 |
+
},
|
| 1409 |
+
{
|
| 1410 |
+
"row": 161,
|
| 1411 |
+
"label": 18,
|
| 1412 |
+
"upstream": 18,
|
| 1413 |
+
"coreml": 18,
|
| 1414 |
+
"max_abs_probability_error": 4.944752163282828e-09,
|
| 1415 |
+
"max_abs_logit_error": 0.01996326446533203
|
| 1416 |
+
},
|
| 1417 |
+
{
|
| 1418 |
+
"row": 162,
|
| 1419 |
+
"label": 18,
|
| 1420 |
+
"upstream": 18,
|
| 1421 |
+
"coreml": 18,
|
| 1422 |
+
"max_abs_probability_error": 3.288525007860699e-11,
|
| 1423 |
+
"max_abs_logit_error": 0.011535167694091797
|
| 1424 |
+
},
|
| 1425 |
+
{
|
| 1426 |
+
"row": 163,
|
| 1427 |
+
"label": 18,
|
| 1428 |
+
"upstream": 18,
|
| 1429 |
+
"coreml": 18,
|
| 1430 |
+
"max_abs_probability_error": 6.579597977562912e-13,
|
| 1431 |
+
"max_abs_logit_error": 0.010066986083984375
|
| 1432 |
+
},
|
| 1433 |
+
{
|
| 1434 |
+
"row": 164,
|
| 1435 |
+
"label": 18,
|
| 1436 |
+
"upstream": 18,
|
| 1437 |
+
"coreml": 18,
|
| 1438 |
+
"max_abs_probability_error": 3.8768099841490766e-11,
|
| 1439 |
+
"max_abs_logit_error": 0.014286994934082031
|
| 1440 |
+
},
|
| 1441 |
+
{
|
| 1442 |
+
"row": 165,
|
| 1443 |
+
"label": 18,
|
| 1444 |
+
"upstream": 18,
|
| 1445 |
+
"coreml": 18,
|
| 1446 |
+
"max_abs_probability_error": 1.6796633528493032e-13,
|
| 1447 |
+
"max_abs_logit_error": 0.014059066772460938
|
| 1448 |
+
},
|
| 1449 |
+
{
|
| 1450 |
+
"row": 166,
|
| 1451 |
+
"label": 18,
|
| 1452 |
+
"upstream": 18,
|
| 1453 |
+
"coreml": 18,
|
| 1454 |
+
"max_abs_probability_error": 1.0951239914902544e-11,
|
| 1455 |
+
"max_abs_logit_error": 0.012742996215820312
|
| 1456 |
+
},
|
| 1457 |
+
{
|
| 1458 |
+
"row": 167,
|
| 1459 |
+
"label": 18,
|
| 1460 |
+
"upstream": 18,
|
| 1461 |
+
"coreml": 18,
|
| 1462 |
+
"max_abs_probability_error": 5.0552340091769565e-12,
|
| 1463 |
+
"max_abs_logit_error": 0.017006397247314453
|
| 1464 |
+
},
|
| 1465 |
+
{
|
| 1466 |
+
"row": 168,
|
| 1467 |
+
"label": 18,
|
| 1468 |
+
"upstream": 18,
|
| 1469 |
+
"coreml": 18,
|
| 1470 |
+
"max_abs_probability_error": 4.349431037553586e-09,
|
| 1471 |
+
"max_abs_logit_error": 0.02781963348388672
|
| 1472 |
+
},
|
| 1473 |
+
{
|
| 1474 |
+
"row": 169,
|
| 1475 |
+
"label": 18,
|
| 1476 |
+
"upstream": 18,
|
| 1477 |
+
"coreml": 18,
|
| 1478 |
+
"max_abs_probability_error": 1.7824977605052084e-13,
|
| 1479 |
+
"max_abs_logit_error": 0.022431373596191406
|
| 1480 |
+
},
|
| 1481 |
+
{
|
| 1482 |
+
"row": 170,
|
| 1483 |
+
"label": 18,
|
| 1484 |
+
"upstream": 18,
|
| 1485 |
+
"coreml": 18,
|
| 1486 |
+
"max_abs_probability_error": 3.2377225900326323e-13,
|
| 1487 |
+
"max_abs_logit_error": 0.006749153137207031
|
| 1488 |
+
},
|
| 1489 |
+
{
|
| 1490 |
+
"row": 171,
|
| 1491 |
+
"label": 18,
|
| 1492 |
+
"upstream": 18,
|
| 1493 |
+
"coreml": 18,
|
| 1494 |
+
"max_abs_probability_error": 3.13179953081999e-08,
|
| 1495 |
+
"max_abs_logit_error": 0.015783309936523438
|
| 1496 |
+
},
|
| 1497 |
+
{
|
| 1498 |
+
"row": 172,
|
| 1499 |
+
"label": 18,
|
| 1500 |
+
"upstream": 18,
|
| 1501 |
+
"coreml": 18,
|
| 1502 |
+
"max_abs_probability_error": 4.681899312686255e-11,
|
| 1503 |
+
"max_abs_logit_error": 0.013919830322265625
|
| 1504 |
+
},
|
| 1505 |
+
{
|
| 1506 |
+
"row": 173,
|
| 1507 |
+
"label": 18,
|
| 1508 |
+
"upstream": 18,
|
| 1509 |
+
"coreml": 18,
|
| 1510 |
+
"max_abs_probability_error": 2.2486568163060383e-11,
|
| 1511 |
+
"max_abs_logit_error": 0.016487598419189453
|
| 1512 |
+
},
|
| 1513 |
+
{
|
| 1514 |
+
"row": 174,
|
| 1515 |
+
"label": 18,
|
| 1516 |
+
"upstream": 18,
|
| 1517 |
+
"coreml": 18,
|
| 1518 |
+
"max_abs_probability_error": 3.743627630115043e-11,
|
| 1519 |
+
"max_abs_logit_error": 0.02295398712158203
|
| 1520 |
+
},
|
| 1521 |
+
{
|
| 1522 |
+
"row": 175,
|
| 1523 |
+
"label": 18,
|
| 1524 |
+
"upstream": 18,
|
| 1525 |
+
"coreml": 18,
|
| 1526 |
+
"max_abs_probability_error": 7.821654435247183e-11,
|
| 1527 |
+
"max_abs_logit_error": 0.016475677490234375
|
| 1528 |
+
},
|
| 1529 |
+
{
|
| 1530 |
+
"row": 176,
|
| 1531 |
+
"label": 18,
|
| 1532 |
+
"upstream": 18,
|
| 1533 |
+
"coreml": 18,
|
| 1534 |
+
"max_abs_probability_error": 1.1420979717513546e-09,
|
| 1535 |
+
"max_abs_logit_error": 0.028388500213623047
|
| 1536 |
+
},
|
| 1537 |
+
{
|
| 1538 |
+
"row": 177,
|
| 1539 |
+
"label": 18,
|
| 1540 |
+
"upstream": 18,
|
| 1541 |
+
"coreml": 18,
|
| 1542 |
+
"max_abs_probability_error": 1.5013057463875157e-10,
|
| 1543 |
+
"max_abs_logit_error": 0.015703678131103516
|
| 1544 |
+
},
|
| 1545 |
+
{
|
| 1546 |
+
"row": 178,
|
| 1547 |
+
"label": 18,
|
| 1548 |
+
"upstream": 18,
|
| 1549 |
+
"coreml": 18,
|
| 1550 |
+
"max_abs_probability_error": 3.937020665034652e-08,
|
| 1551 |
+
"max_abs_logit_error": 0.013593673706054688
|
| 1552 |
+
},
|
| 1553 |
+
{
|
| 1554 |
+
"row": 179,
|
| 1555 |
+
"label": 17,
|
| 1556 |
+
"upstream": 17,
|
| 1557 |
+
"coreml": 17,
|
| 1558 |
+
"max_abs_probability_error": 1.295774154641549e-09,
|
| 1559 |
+
"max_abs_logit_error": 0.03515338897705078
|
| 1560 |
+
},
|
| 1561 |
+
{
|
| 1562 |
+
"row": 180,
|
| 1563 |
+
"label": 18,
|
| 1564 |
+
"upstream": 18,
|
| 1565 |
+
"coreml": 18,
|
| 1566 |
+
"max_abs_probability_error": 3.638334078459593e-11,
|
| 1567 |
+
"max_abs_logit_error": 0.016902923583984375
|
| 1568 |
+
},
|
| 1569 |
+
{
|
| 1570 |
+
"row": 181,
|
| 1571 |
+
"label": 18,
|
| 1572 |
+
"upstream": 18,
|
| 1573 |
+
"coreml": 18,
|
| 1574 |
+
"max_abs_probability_error": 1.354898415684147e-10,
|
| 1575 |
+
"max_abs_logit_error": 0.007921218872070312
|
| 1576 |
+
},
|
| 1577 |
+
{
|
| 1578 |
+
"row": 182,
|
| 1579 |
+
"label": 18,
|
| 1580 |
+
"upstream": 18,
|
| 1581 |
+
"coreml": 18,
|
| 1582 |
+
"max_abs_probability_error": 4.4544090638254374e-12,
|
| 1583 |
+
"max_abs_logit_error": 0.018396615982055664
|
| 1584 |
+
},
|
| 1585 |
+
{
|
| 1586 |
+
"row": 183,
|
| 1587 |
+
"label": 18,
|
| 1588 |
+
"upstream": 18,
|
| 1589 |
+
"coreml": 18,
|
| 1590 |
+
"max_abs_probability_error": 2.2619059403261588e-14,
|
| 1591 |
+
"max_abs_logit_error": 0.019584178924560547
|
| 1592 |
+
},
|
| 1593 |
+
{
|
| 1594 |
+
"row": 184,
|
| 1595 |
+
"label": 18,
|
| 1596 |
+
"upstream": 18,
|
| 1597 |
+
"coreml": 18,
|
| 1598 |
+
"max_abs_probability_error": 5.77121683775772e-12,
|
| 1599 |
+
"max_abs_logit_error": 0.01009368896484375
|
| 1600 |
+
},
|
| 1601 |
+
{
|
| 1602 |
+
"row": 185,
|
| 1603 |
+
"label": 18,
|
| 1604 |
+
"upstream": 18,
|
| 1605 |
+
"coreml": 18,
|
| 1606 |
+
"max_abs_probability_error": 1.4402368186949843e-12,
|
| 1607 |
+
"max_abs_logit_error": 0.016597270965576172
|
| 1608 |
+
},
|
| 1609 |
+
{
|
| 1610 |
+
"row": 186,
|
| 1611 |
+
"label": 18,
|
| 1612 |
+
"upstream": 18,
|
| 1613 |
+
"coreml": 18,
|
| 1614 |
+
"max_abs_probability_error": 2.3069191001923173e-10,
|
| 1615 |
+
"max_abs_logit_error": 0.023260116577148438
|
| 1616 |
+
},
|
| 1617 |
+
{
|
| 1618 |
+
"row": 187,
|
| 1619 |
+
"label": 18,
|
| 1620 |
+
"upstream": 18,
|
| 1621 |
+
"coreml": 18,
|
| 1622 |
+
"max_abs_probability_error": 4.5346018606728933e-13,
|
| 1623 |
+
"max_abs_logit_error": 0.023482322692871094
|
| 1624 |
+
},
|
| 1625 |
+
{
|
| 1626 |
+
"row": 188,
|
| 1627 |
+
"label": 18,
|
| 1628 |
+
"upstream": 18,
|
| 1629 |
+
"coreml": 18,
|
| 1630 |
+
"max_abs_probability_error": 1.2430889650971721e-12,
|
| 1631 |
+
"max_abs_logit_error": 0.013761520385742188
|
| 1632 |
+
},
|
| 1633 |
+
{
|
| 1634 |
+
"row": 189,
|
| 1635 |
+
"label": 18,
|
| 1636 |
+
"upstream": 18,
|
| 1637 |
+
"coreml": 18,
|
| 1638 |
+
"max_abs_probability_error": 3.12792326762068e-14,
|
| 1639 |
+
"max_abs_logit_error": 0.013568401336669922
|
| 1640 |
+
},
|
| 1641 |
+
{
|
| 1642 |
+
"row": 190,
|
| 1643 |
+
"label": 18,
|
| 1644 |
+
"upstream": 18,
|
| 1645 |
+
"coreml": 18,
|
| 1646 |
+
"max_abs_probability_error": 1.5832196664788967e-12,
|
| 1647 |
+
"max_abs_logit_error": 0.013137876987457275
|
| 1648 |
+
},
|
| 1649 |
+
{
|
| 1650 |
+
"row": 191,
|
| 1651 |
+
"label": 18,
|
| 1652 |
+
"upstream": 18,
|
| 1653 |
+
"coreml": 18,
|
| 1654 |
+
"max_abs_probability_error": 3.681888127715638e-12,
|
| 1655 |
+
"max_abs_logit_error": 0.026842832565307617
|
| 1656 |
+
},
|
| 1657 |
+
{
|
| 1658 |
+
"row": 192,
|
| 1659 |
+
"label": 18,
|
| 1660 |
+
"upstream": 18,
|
| 1661 |
+
"coreml": 18,
|
| 1662 |
+
"max_abs_probability_error": 1.731503829205394e-11,
|
| 1663 |
+
"max_abs_logit_error": 0.015740394592285156
|
| 1664 |
+
},
|
| 1665 |
+
{
|
| 1666 |
+
"row": 193,
|
| 1667 |
+
"label": 18,
|
| 1668 |
+
"upstream": 18,
|
| 1669 |
+
"coreml": 18,
|
| 1670 |
+
"max_abs_probability_error": 1.0416112417033219e-10,
|
| 1671 |
+
"max_abs_logit_error": 0.01055908203125
|
| 1672 |
+
},
|
| 1673 |
+
{
|
| 1674 |
+
"row": 194,
|
| 1675 |
+
"label": 18,
|
| 1676 |
+
"upstream": 18,
|
| 1677 |
+
"coreml": 18,
|
| 1678 |
+
"max_abs_probability_error": 4.944752163282828e-09,
|
| 1679 |
+
"max_abs_logit_error": 0.01996326446533203
|
| 1680 |
+
},
|
| 1681 |
+
{
|
| 1682 |
+
"row": 195,
|
| 1683 |
+
"label": 18,
|
| 1684 |
+
"upstream": 18,
|
| 1685 |
+
"coreml": 18,
|
| 1686 |
+
"max_abs_probability_error": 3.288525007860699e-11,
|
| 1687 |
+
"max_abs_logit_error": 0.011535167694091797
|
| 1688 |
+
}
|
| 1689 |
+
]
|
| 1690 |
+
},
|
| 1691 |
+
"CPU_AND_NE": {
|
| 1692 |
+
"passed": true,
|
| 1693 |
+
"correct": 196,
|
| 1694 |
+
"accuracy": 1.0,
|
| 1695 |
+
"argmax_agreement": 196,
|
| 1696 |
+
"max_abs_probability_error": 0.00233614444732666,
|
| 1697 |
+
"mean_row_max_abs_probability_error": 2.934475840582507e-05,
|
| 1698 |
+
"max_abs_logit_error": 0.07230281829833984,
|
| 1699 |
+
"load_seconds": 0.578660333994776,
|
| 1700 |
+
"warm_inference_latency_ms": {
|
| 1701 |
+
"count": 196,
|
| 1702 |
+
"median_ms": 0.9031249937834218,
|
| 1703 |
+
"p95_ms": 0.9396872410434298,
|
| 1704 |
+
"min_ms": 0.8796670008450747,
|
| 1705 |
+
"max_ms": 0.9663329983595759
|
| 1706 |
+
},
|
| 1707 |
+
"reversed_option_order": {
|
| 1708 |
+
"rows": 6,
|
| 1709 |
+
"max_abs_probability_error": 3.1828880310058594e-05
|
| 1710 |
+
},
|
| 1711 |
+
"per_action": {
|
| 1712 |
+
"fill": {
|
| 1713 |
+
"rows": 36,
|
| 1714 |
+
"correct": 36
|
| 1715 |
+
},
|
| 1716 |
+
"skip": {
|
| 1717 |
+
"rows": 150,
|
| 1718 |
+
"correct": 150
|
| 1719 |
+
},
|
| 1720 |
+
"check": {
|
| 1721 |
+
"rows": 4,
|
| 1722 |
+
"correct": 4
|
| 1723 |
+
},
|
| 1724 |
+
"click": {
|
| 1725 |
+
"rows": 6,
|
| 1726 |
+
"correct": 6
|
| 1727 |
+
}
|
| 1728 |
+
},
|
| 1729 |
+
"decisions": [
|
| 1730 |
+
{
|
| 1731 |
+
"row": 0,
|
| 1732 |
+
"label": 22,
|
| 1733 |
+
"upstream": 22,
|
| 1734 |
+
"coreml": 22,
|
| 1735 |
+
"max_abs_probability_error": 3.1828880310058594e-05,
|
| 1736 |
+
"max_abs_logit_error": 0.03086566925048828
|
| 1737 |
+
},
|
| 1738 |
+
{
|
| 1739 |
+
"row": 1,
|
| 1740 |
+
"label": 23,
|
| 1741 |
+
"upstream": 23,
|
| 1742 |
+
"coreml": 23,
|
| 1743 |
+
"max_abs_probability_error": 3.814697265625e-05,
|
| 1744 |
+
"max_abs_logit_error": 0.020841598510742188
|
| 1745 |
+
},
|
| 1746 |
+
{
|
| 1747 |
+
"row": 2,
|
| 1748 |
+
"label": 2,
|
| 1749 |
+
"upstream": 2,
|
| 1750 |
+
"coreml": 2,
|
| 1751 |
+
"max_abs_probability_error": 1.1920928955078125e-07,
|
| 1752 |
+
"max_abs_logit_error": 0.024377822875976562
|
| 1753 |
+
},
|
| 1754 |
+
{
|
| 1755 |
+
"row": 3,
|
| 1756 |
+
"label": 5,
|
| 1757 |
+
"upstream": 5,
|
| 1758 |
+
"coreml": 5,
|
| 1759 |
+
"max_abs_probability_error": 3.218650817871094e-05,
|
| 1760 |
+
"max_abs_logit_error": 0.030775785446166992
|
| 1761 |
+
},
|
| 1762 |
+
{
|
| 1763 |
+
"row": 4,
|
| 1764 |
+
"label": 4,
|
| 1765 |
+
"upstream": 4,
|
| 1766 |
+
"coreml": 4,
|
| 1767 |
+
"max_abs_probability_error": 2.944469451904297e-05,
|
| 1768 |
+
"max_abs_logit_error": 0.03573417663574219
|
| 1769 |
+
},
|
| 1770 |
+
{
|
| 1771 |
+
"row": 5,
|
| 1772 |
+
"label": 6,
|
| 1773 |
+
"upstream": 6,
|
| 1774 |
+
"coreml": 6,
|
| 1775 |
+
"max_abs_probability_error": 1.2636184692382812e-05,
|
| 1776 |
+
"max_abs_logit_error": 0.026729822158813477
|
| 1777 |
+
},
|
| 1778 |
+
{
|
| 1779 |
+
"row": 6,
|
| 1780 |
+
"label": 7,
|
| 1781 |
+
"upstream": 7,
|
| 1782 |
+
"coreml": 7,
|
| 1783 |
+
"max_abs_probability_error": 2.3365020751953125e-05,
|
| 1784 |
+
"max_abs_logit_error": 0.023685455322265625
|
| 1785 |
+
},
|
| 1786 |
+
{
|
| 1787 |
+
"row": 7,
|
| 1788 |
+
"label": 8,
|
| 1789 |
+
"upstream": 8,
|
| 1790 |
+
"coreml": 8,
|
| 1791 |
+
"max_abs_probability_error": 0.00014638900756835938,
|
| 1792 |
+
"max_abs_logit_error": 0.04038810729980469
|
| 1793 |
+
},
|
| 1794 |
+
{
|
| 1795 |
+
"row": 8,
|
| 1796 |
+
"label": 9,
|
| 1797 |
+
"upstream": 9,
|
| 1798 |
+
"coreml": 9,
|
| 1799 |
+
"max_abs_probability_error": 1.1920928955078125e-06,
|
| 1800 |
+
"max_abs_logit_error": 0.02460002899169922
|
| 1801 |
+
},
|
| 1802 |
+
{
|
| 1803 |
+
"row": 9,
|
| 1804 |
+
"label": 10,
|
| 1805 |
+
"upstream": 10,
|
| 1806 |
+
"coreml": 10,
|
| 1807 |
+
"max_abs_probability_error": 2.1457672119140625e-05,
|
| 1808 |
+
"max_abs_logit_error": 0.018064022064208984
|
| 1809 |
+
},
|
| 1810 |
+
{
|
| 1811 |
+
"row": 10,
|
| 1812 |
+
"label": 11,
|
| 1813 |
+
"upstream": 11,
|
| 1814 |
+
"coreml": 11,
|
| 1815 |
+
"max_abs_probability_error": 5.960464477539062e-07,
|
| 1816 |
+
"max_abs_logit_error": 0.047691673040390015
|
| 1817 |
+
},
|
| 1818 |
+
{
|
| 1819 |
+
"row": 11,
|
| 1820 |
+
"label": 13,
|
| 1821 |
+
"upstream": 13,
|
| 1822 |
+
"coreml": 13,
|
| 1823 |
+
"max_abs_probability_error": 3.2186508178710938e-06,
|
| 1824 |
+
"max_abs_logit_error": 0.03340768814086914
|
| 1825 |
+
},
|
| 1826 |
+
{
|
| 1827 |
+
"row": 12,
|
| 1828 |
+
"label": 15,
|
| 1829 |
+
"upstream": 15,
|
| 1830 |
+
"coreml": 15,
|
| 1831 |
+
"max_abs_probability_error": 2.384185791015625e-06,
|
| 1832 |
+
"max_abs_logit_error": 0.053191184997558594
|
| 1833 |
+
},
|
| 1834 |
+
{
|
| 1835 |
+
"row": 13,
|
| 1836 |
+
"label": 16,
|
| 1837 |
+
"upstream": 16,
|
| 1838 |
+
"coreml": 16,
|
| 1839 |
+
"max_abs_probability_error": 0.0005360841751098633,
|
| 1840 |
+
"max_abs_logit_error": 0.03362560272216797
|
| 1841 |
+
},
|
| 1842 |
+
{
|
| 1843 |
+
"row": 14,
|
| 1844 |
+
"label": 26,
|
| 1845 |
+
"upstream": 26,
|
| 1846 |
+
"coreml": 26,
|
| 1847 |
+
"max_abs_probability_error": 1.8596649169921875e-05,
|
| 1848 |
+
"max_abs_logit_error": 0.024669170379638672
|
| 1849 |
+
},
|
| 1850 |
+
{
|
| 1851 |
+
"row": 15,
|
| 1852 |
+
"label": 24,
|
| 1853 |
+
"upstream": 24,
|
| 1854 |
+
"coreml": 24,
|
| 1855 |
+
"max_abs_probability_error": 1.6689300537109375e-05,
|
| 1856 |
+
"max_abs_logit_error": 0.034501075744628906
|
| 1857 |
+
},
|
| 1858 |
+
{
|
| 1859 |
+
"row": 16,
|
| 1860 |
+
"label": 26,
|
| 1861 |
+
"upstream": 26,
|
| 1862 |
+
"coreml": 26,
|
| 1863 |
+
"max_abs_probability_error": 1.440092489701783e-08,
|
| 1864 |
+
"max_abs_logit_error": 0.033290743827819824
|
| 1865 |
+
},
|
| 1866 |
+
{
|
| 1867 |
+
"row": 17,
|
| 1868 |
+
"label": 25,
|
| 1869 |
+
"upstream": 25,
|
| 1870 |
+
"coreml": 25,
|
| 1871 |
+
"max_abs_probability_error": 1.1920928955078125e-07,
|
| 1872 |
+
"max_abs_logit_error": 0.03323173522949219
|
| 1873 |
+
},
|
| 1874 |
+
{
|
| 1875 |
+
"row": 18,
|
| 1876 |
+
"label": 26,
|
| 1877 |
+
"upstream": 26,
|
| 1878 |
+
"coreml": 26,
|
| 1879 |
+
"max_abs_probability_error": 8.430758313693332e-09,
|
| 1880 |
+
"max_abs_logit_error": 0.022179126739501953
|
| 1881 |
+
},
|
| 1882 |
+
{
|
| 1883 |
+
"row": 19,
|
| 1884 |
+
"label": 26,
|
| 1885 |
+
"upstream": 26,
|
| 1886 |
+
"coreml": 26,
|
| 1887 |
+
"max_abs_probability_error": 3.0266471551243512e-09,
|
| 1888 |
+
"max_abs_logit_error": 0.029880523681640625
|
| 1889 |
+
},
|
| 1890 |
+
{
|
| 1891 |
+
"row": 20,
|
| 1892 |
+
"label": 26,
|
| 1893 |
+
"upstream": 26,
|
| 1894 |
+
"coreml": 26,
|
| 1895 |
+
"max_abs_probability_error": 2.4500966588902884e-08,
|
| 1896 |
+
"max_abs_logit_error": 0.031145095825195312
|
| 1897 |
+
},
|
| 1898 |
+
{
|
| 1899 |
+
"row": 21,
|
| 1900 |
+
"label": 26,
|
| 1901 |
+
"upstream": 26,
|
| 1902 |
+
"coreml": 26,
|
| 1903 |
+
"max_abs_probability_error": 1.647379281599637e-11,
|
| 1904 |
+
"max_abs_logit_error": 0.03861522674560547
|
| 1905 |
+
},
|
| 1906 |
+
{
|
| 1907 |
+
"row": 22,
|
| 1908 |
+
"label": 26,
|
| 1909 |
+
"upstream": 26,
|
| 1910 |
+
"coreml": 26,
|
| 1911 |
+
"max_abs_probability_error": 7.152557373046875e-07,
|
| 1912 |
+
"max_abs_logit_error": 0.027164459228515625
|
| 1913 |
+
},
|
| 1914 |
+
{
|
| 1915 |
+
"row": 23,
|
| 1916 |
+
"label": 26,
|
| 1917 |
+
"upstream": 26,
|
| 1918 |
+
"coreml": 26,
|
| 1919 |
+
"max_abs_probability_error": 5.960464477539062e-07,
|
| 1920 |
+
"max_abs_logit_error": 0.058716535568237305
|
| 1921 |
+
},
|
| 1922 |
+
{
|
| 1923 |
+
"row": 24,
|
| 1924 |
+
"label": 26,
|
| 1925 |
+
"upstream": 26,
|
| 1926 |
+
"coreml": 26,
|
| 1927 |
+
"max_abs_probability_error": 2.5055844551924444e-11,
|
| 1928 |
+
"max_abs_logit_error": 0.035381317138671875
|
| 1929 |
+
},
|
| 1930 |
+
{
|
| 1931 |
+
"row": 25,
|
| 1932 |
+
"label": 26,
|
| 1933 |
+
"upstream": 26,
|
| 1934 |
+
"coreml": 26,
|
| 1935 |
+
"max_abs_probability_error": 6.995705792434137e-09,
|
| 1936 |
+
"max_abs_logit_error": 0.04862499237060547
|
| 1937 |
+
},
|
| 1938 |
+
{
|
| 1939 |
+
"row": 26,
|
| 1940 |
+
"label": 26,
|
| 1941 |
+
"upstream": 26,
|
| 1942 |
+
"coreml": 26,
|
| 1943 |
+
"max_abs_probability_error": 6.470584068551943e-10,
|
| 1944 |
+
"max_abs_logit_error": 0.029034733772277832
|
| 1945 |
+
},
|
| 1946 |
+
{
|
| 1947 |
+
"row": 27,
|
| 1948 |
+
"label": 26,
|
| 1949 |
+
"upstream": 26,
|
| 1950 |
+
"coreml": 26,
|
| 1951 |
+
"max_abs_probability_error": 6.973024935241767e-11,
|
| 1952 |
+
"max_abs_logit_error": 0.03808116912841797
|
| 1953 |
+
},
|
| 1954 |
+
{
|
| 1955 |
+
"row": 28,
|
| 1956 |
+
"label": 26,
|
| 1957 |
+
"upstream": 26,
|
| 1958 |
+
"coreml": 26,
|
| 1959 |
+
"max_abs_probability_error": 5.994321927715873e-09,
|
| 1960 |
+
"max_abs_logit_error": 0.03319191932678223
|
| 1961 |
+
},
|
| 1962 |
+
{
|
| 1963 |
+
"row": 29,
|
| 1964 |
+
"label": 26,
|
| 1965 |
+
"upstream": 26,
|
| 1966 |
+
"coreml": 26,
|
| 1967 |
+
"max_abs_probability_error": 2.4426039316183257e-11,
|
| 1968 |
+
"max_abs_logit_error": 0.030045509338378906
|
| 1969 |
+
},
|
| 1970 |
+
{
|
| 1971 |
+
"row": 30,
|
| 1972 |
+
"label": 26,
|
| 1973 |
+
"upstream": 26,
|
| 1974 |
+
"coreml": 26,
|
| 1975 |
+
"max_abs_probability_error": 2.384185791015625e-07,
|
| 1976 |
+
"max_abs_logit_error": 0.026231765747070312
|
| 1977 |
+
},
|
| 1978 |
+
{
|
| 1979 |
+
"row": 31,
|
| 1980 |
+
"label": 26,
|
| 1981 |
+
"upstream": 26,
|
| 1982 |
+
"coreml": 26,
|
| 1983 |
+
"max_abs_probability_error": 7.78299757975276e-10,
|
| 1984 |
+
"max_abs_logit_error": 0.033112093806266785
|
| 1985 |
+
},
|
| 1986 |
+
{
|
| 1987 |
+
"row": 32,
|
| 1988 |
+
"label": 26,
|
| 1989 |
+
"upstream": 26,
|
| 1990 |
+
"coreml": 26,
|
| 1991 |
+
"max_abs_probability_error": 6.185003176284454e-09,
|
| 1992 |
+
"max_abs_logit_error": 0.022128582000732422
|
| 1993 |
+
},
|
| 1994 |
+
{
|
| 1995 |
+
"row": 33,
|
| 1996 |
+
"label": 26,
|
| 1997 |
+
"upstream": 26,
|
| 1998 |
+
"coreml": 26,
|
| 1999 |
+
"max_abs_probability_error": 3.4556297823229443e-09,
|
| 2000 |
+
"max_abs_logit_error": 0.038306236267089844
|
| 2001 |
+
},
|
| 2002 |
+
{
|
| 2003 |
+
"row": 34,
|
| 2004 |
+
"label": 26,
|
| 2005 |
+
"upstream": 26,
|
| 2006 |
+
"coreml": 26,
|
| 2007 |
+
"max_abs_probability_error": 0.0004820823669433594,
|
| 2008 |
+
"max_abs_logit_error": 0.032683372497558594
|
| 2009 |
+
},
|
| 2010 |
+
{
|
| 2011 |
+
"row": 35,
|
| 2012 |
+
"label": 26,
|
| 2013 |
+
"upstream": 26,
|
| 2014 |
+
"coreml": 26,
|
| 2015 |
+
"max_abs_probability_error": 1.462750809366753e-09,
|
| 2016 |
+
"max_abs_logit_error": 0.029730796813964844
|
| 2017 |
+
},
|
| 2018 |
+
{
|
| 2019 |
+
"row": 36,
|
| 2020 |
+
"label": 26,
|
| 2021 |
+
"upstream": 26,
|
| 2022 |
+
"coreml": 26,
|
| 2023 |
+
"max_abs_probability_error": 2.7510341227277024e-10,
|
| 2024 |
+
"max_abs_logit_error": 0.02333354949951172
|
| 2025 |
+
},
|
| 2026 |
+
{
|
| 2027 |
+
"row": 37,
|
| 2028 |
+
"label": 26,
|
| 2029 |
+
"upstream": 26,
|
| 2030 |
+
"coreml": 26,
|
| 2031 |
+
"max_abs_probability_error": 2.657592190757896e-08,
|
| 2032 |
+
"max_abs_logit_error": 0.022855758666992188
|
| 2033 |
+
},
|
| 2034 |
+
{
|
| 2035 |
+
"row": 38,
|
| 2036 |
+
"label": 26,
|
| 2037 |
+
"upstream": 26,
|
| 2038 |
+
"coreml": 26,
|
| 2039 |
+
"max_abs_probability_error": 9.552543478452691e-11,
|
| 2040 |
+
"max_abs_logit_error": 0.023164749145507812
|
| 2041 |
+
},
|
| 2042 |
+
{
|
| 2043 |
+
"row": 39,
|
| 2044 |
+
"label": 26,
|
| 2045 |
+
"upstream": 26,
|
| 2046 |
+
"coreml": 26,
|
| 2047 |
+
"max_abs_probability_error": 4.04716482549361e-10,
|
| 2048 |
+
"max_abs_logit_error": 0.02880859375
|
| 2049 |
+
},
|
| 2050 |
+
{
|
| 2051 |
+
"row": 40,
|
| 2052 |
+
"label": 26,
|
| 2053 |
+
"upstream": 26,
|
| 2054 |
+
"coreml": 26,
|
| 2055 |
+
"max_abs_probability_error": 0.00021719932556152344,
|
| 2056 |
+
"max_abs_logit_error": 0.04735088348388672
|
| 2057 |
+
},
|
| 2058 |
+
{
|
| 2059 |
+
"row": 41,
|
| 2060 |
+
"label": 26,
|
| 2061 |
+
"upstream": 26,
|
| 2062 |
+
"coreml": 26,
|
| 2063 |
+
"max_abs_probability_error": 6.146233744175333e-09,
|
| 2064 |
+
"max_abs_logit_error": 0.03671276569366455
|
| 2065 |
+
},
|
| 2066 |
+
{
|
| 2067 |
+
"row": 42,
|
| 2068 |
+
"label": 26,
|
| 2069 |
+
"upstream": 26,
|
| 2070 |
+
"coreml": 26,
|
| 2071 |
+
"max_abs_probability_error": 1.8819494851385343e-09,
|
| 2072 |
+
"max_abs_logit_error": 0.023815155029296875
|
| 2073 |
+
},
|
| 2074 |
+
{
|
| 2075 |
+
"row": 43,
|
| 2076 |
+
"label": 26,
|
| 2077 |
+
"upstream": 26,
|
| 2078 |
+
"coreml": 26,
|
| 2079 |
+
"max_abs_probability_error": 7.152557373046875e-07,
|
| 2080 |
+
"max_abs_logit_error": 0.02039623260498047
|
| 2081 |
+
},
|
| 2082 |
+
{
|
| 2083 |
+
"row": 44,
|
| 2084 |
+
"label": 26,
|
| 2085 |
+
"upstream": 26,
|
| 2086 |
+
"coreml": 26,
|
| 2087 |
+
"max_abs_probability_error": 1.780525865635596e-10,
|
| 2088 |
+
"max_abs_logit_error": 0.022927284240722656
|
| 2089 |
+
},
|
| 2090 |
+
{
|
| 2091 |
+
"row": 45,
|
| 2092 |
+
"label": 26,
|
| 2093 |
+
"upstream": 26,
|
| 2094 |
+
"coreml": 26,
|
| 2095 |
+
"max_abs_probability_error": 3.414331317674879e-11,
|
| 2096 |
+
"max_abs_logit_error": 0.030417919158935547
|
| 2097 |
+
},
|
| 2098 |
+
{
|
| 2099 |
+
"row": 46,
|
| 2100 |
+
"label": 26,
|
| 2101 |
+
"upstream": 26,
|
| 2102 |
+
"coreml": 26,
|
| 2103 |
+
"max_abs_probability_error": 5.599257724142603e-10,
|
| 2104 |
+
"max_abs_logit_error": 0.025608062744140625
|
| 2105 |
+
},
|
| 2106 |
+
{
|
| 2107 |
+
"row": 47,
|
| 2108 |
+
"label": 26,
|
| 2109 |
+
"upstream": 26,
|
| 2110 |
+
"coreml": 26,
|
| 2111 |
+
"max_abs_probability_error": 5.212314607705437e-11,
|
| 2112 |
+
"max_abs_logit_error": 0.022733211517333984
|
| 2113 |
+
},
|
| 2114 |
+
{
|
| 2115 |
+
"row": 48,
|
| 2116 |
+
"label": 26,
|
| 2117 |
+
"upstream": 26,
|
| 2118 |
+
"coreml": 26,
|
| 2119 |
+
"max_abs_probability_error": 1.8596649169921875e-05,
|
| 2120 |
+
"max_abs_logit_error": 0.024669170379638672
|
| 2121 |
+
},
|
| 2122 |
+
{
|
| 2123 |
+
"row": 49,
|
| 2124 |
+
"label": 26,
|
| 2125 |
+
"upstream": 26,
|
| 2126 |
+
"coreml": 26,
|
| 2127 |
+
"max_abs_probability_error": 1.932842080831776e-10,
|
| 2128 |
+
"max_abs_logit_error": 0.030317306518554688
|
| 2129 |
+
},
|
| 2130 |
+
{
|
| 2131 |
+
"row": 50,
|
| 2132 |
+
"label": 26,
|
| 2133 |
+
"upstream": 26,
|
| 2134 |
+
"coreml": 26,
|
| 2135 |
+
"max_abs_probability_error": 1.440092489701783e-08,
|
| 2136 |
+
"max_abs_logit_error": 0.033290743827819824
|
| 2137 |
+
},
|
| 2138 |
+
{
|
| 2139 |
+
"row": 51,
|
| 2140 |
+
"label": 25,
|
| 2141 |
+
"upstream": 25,
|
| 2142 |
+
"coreml": 25,
|
| 2143 |
+
"max_abs_probability_error": 1.1920928955078125e-07,
|
| 2144 |
+
"max_abs_logit_error": 0.03323173522949219
|
| 2145 |
+
},
|
| 2146 |
+
{
|
| 2147 |
+
"row": 52,
|
| 2148 |
+
"label": 26,
|
| 2149 |
+
"upstream": 26,
|
| 2150 |
+
"coreml": 26,
|
| 2151 |
+
"max_abs_probability_error": 8.430758313693332e-09,
|
| 2152 |
+
"max_abs_logit_error": 0.022179126739501953
|
| 2153 |
+
},
|
| 2154 |
+
{
|
| 2155 |
+
"row": 53,
|
| 2156 |
+
"label": 26,
|
| 2157 |
+
"upstream": 26,
|
| 2158 |
+
"coreml": 26,
|
| 2159 |
+
"max_abs_probability_error": 3.0266471551243512e-09,
|
| 2160 |
+
"max_abs_logit_error": 0.029880523681640625
|
| 2161 |
+
},
|
| 2162 |
+
{
|
| 2163 |
+
"row": 54,
|
| 2164 |
+
"label": 26,
|
| 2165 |
+
"upstream": 26,
|
| 2166 |
+
"coreml": 26,
|
| 2167 |
+
"max_abs_probability_error": 2.4500966588902884e-08,
|
| 2168 |
+
"max_abs_logit_error": 0.031145095825195312
|
| 2169 |
+
},
|
| 2170 |
+
{
|
| 2171 |
+
"row": 55,
|
| 2172 |
+
"label": 26,
|
| 2173 |
+
"upstream": 26,
|
| 2174 |
+
"coreml": 26,
|
| 2175 |
+
"max_abs_probability_error": 1.647379281599637e-11,
|
| 2176 |
+
"max_abs_logit_error": 0.03861522674560547
|
| 2177 |
+
},
|
| 2178 |
+
{
|
| 2179 |
+
"row": 56,
|
| 2180 |
+
"label": 26,
|
| 2181 |
+
"upstream": 26,
|
| 2182 |
+
"coreml": 26,
|
| 2183 |
+
"max_abs_probability_error": 7.152557373046875e-07,
|
| 2184 |
+
"max_abs_logit_error": 0.027164459228515625
|
| 2185 |
+
},
|
| 2186 |
+
{
|
| 2187 |
+
"row": 57,
|
| 2188 |
+
"label": 26,
|
| 2189 |
+
"upstream": 26,
|
| 2190 |
+
"coreml": 26,
|
| 2191 |
+
"max_abs_probability_error": 5.960464477539062e-07,
|
| 2192 |
+
"max_abs_logit_error": 0.058716535568237305
|
| 2193 |
+
},
|
| 2194 |
+
{
|
| 2195 |
+
"row": 58,
|
| 2196 |
+
"label": 26,
|
| 2197 |
+
"upstream": 26,
|
| 2198 |
+
"coreml": 26,
|
| 2199 |
+
"max_abs_probability_error": 2.5055844551924444e-11,
|
| 2200 |
+
"max_abs_logit_error": 0.035381317138671875
|
| 2201 |
+
},
|
| 2202 |
+
{
|
| 2203 |
+
"row": 59,
|
| 2204 |
+
"label": 26,
|
| 2205 |
+
"upstream": 26,
|
| 2206 |
+
"coreml": 26,
|
| 2207 |
+
"max_abs_probability_error": 6.995705792434137e-09,
|
| 2208 |
+
"max_abs_logit_error": 0.04862499237060547
|
| 2209 |
+
},
|
| 2210 |
+
{
|
| 2211 |
+
"row": 60,
|
| 2212 |
+
"label": 26,
|
| 2213 |
+
"upstream": 26,
|
| 2214 |
+
"coreml": 26,
|
| 2215 |
+
"max_abs_probability_error": 6.470584068551943e-10,
|
| 2216 |
+
"max_abs_logit_error": 0.029034733772277832
|
| 2217 |
+
},
|
| 2218 |
+
{
|
| 2219 |
+
"row": 61,
|
| 2220 |
+
"label": 26,
|
| 2221 |
+
"upstream": 26,
|
| 2222 |
+
"coreml": 26,
|
| 2223 |
+
"max_abs_probability_error": 6.973024935241767e-11,
|
| 2224 |
+
"max_abs_logit_error": 0.03808116912841797
|
| 2225 |
+
},
|
| 2226 |
+
{
|
| 2227 |
+
"row": 62,
|
| 2228 |
+
"label": 26,
|
| 2229 |
+
"upstream": 26,
|
| 2230 |
+
"coreml": 26,
|
| 2231 |
+
"max_abs_probability_error": 5.994321927715873e-09,
|
| 2232 |
+
"max_abs_logit_error": 0.03319191932678223
|
| 2233 |
+
},
|
| 2234 |
+
{
|
| 2235 |
+
"row": 63,
|
| 2236 |
+
"label": 26,
|
| 2237 |
+
"upstream": 26,
|
| 2238 |
+
"coreml": 26,
|
| 2239 |
+
"max_abs_probability_error": 2.4426039316183257e-11,
|
| 2240 |
+
"max_abs_logit_error": 0.030045509338378906
|
| 2241 |
+
},
|
| 2242 |
+
{
|
| 2243 |
+
"row": 64,
|
| 2244 |
+
"label": 26,
|
| 2245 |
+
"upstream": 26,
|
| 2246 |
+
"coreml": 26,
|
| 2247 |
+
"max_abs_probability_error": 2.384185791015625e-07,
|
| 2248 |
+
"max_abs_logit_error": 0.026231765747070312
|
| 2249 |
+
},
|
| 2250 |
+
{
|
| 2251 |
+
"row": 65,
|
| 2252 |
+
"label": 26,
|
| 2253 |
+
"upstream": 26,
|
| 2254 |
+
"coreml": 26,
|
| 2255 |
+
"max_abs_probability_error": 7.78299757975276e-10,
|
| 2256 |
+
"max_abs_logit_error": 0.033112093806266785
|
| 2257 |
+
},
|
| 2258 |
+
{
|
| 2259 |
+
"row": 66,
|
| 2260 |
+
"label": 26,
|
| 2261 |
+
"upstream": 26,
|
| 2262 |
+
"coreml": 26,
|
| 2263 |
+
"max_abs_probability_error": 6.185003176284454e-09,
|
| 2264 |
+
"max_abs_logit_error": 0.022128582000732422
|
| 2265 |
+
},
|
| 2266 |
+
{
|
| 2267 |
+
"row": 67,
|
| 2268 |
+
"label": 26,
|
| 2269 |
+
"upstream": 26,
|
| 2270 |
+
"coreml": 26,
|
| 2271 |
+
"max_abs_probability_error": 3.4556297823229443e-09,
|
| 2272 |
+
"max_abs_logit_error": 0.038306236267089844
|
| 2273 |
+
},
|
| 2274 |
+
{
|
| 2275 |
+
"row": 68,
|
| 2276 |
+
"label": 0,
|
| 2277 |
+
"upstream": 0,
|
| 2278 |
+
"coreml": 0,
|
| 2279 |
+
"max_abs_probability_error": 3.147125244140625e-05,
|
| 2280 |
+
"max_abs_logit_error": 0.03265953063964844
|
| 2281 |
+
},
|
| 2282 |
+
{
|
| 2283 |
+
"row": 69,
|
| 2284 |
+
"label": 1,
|
| 2285 |
+
"upstream": 1,
|
| 2286 |
+
"coreml": 1,
|
| 2287 |
+
"max_abs_probability_error": 5.030632019042969e-05,
|
| 2288 |
+
"max_abs_logit_error": 0.038794517517089844
|
| 2289 |
+
},
|
| 2290 |
+
{
|
| 2291 |
+
"row": 70,
|
| 2292 |
+
"label": 2,
|
| 2293 |
+
"upstream": 2,
|
| 2294 |
+
"coreml": 2,
|
| 2295 |
+
"max_abs_probability_error": 1.7881393432617188e-06,
|
| 2296 |
+
"max_abs_logit_error": 0.040470123291015625
|
| 2297 |
+
},
|
| 2298 |
+
{
|
| 2299 |
+
"row": 71,
|
| 2300 |
+
"label": 3,
|
| 2301 |
+
"upstream": 3,
|
| 2302 |
+
"coreml": 3,
|
| 2303 |
+
"max_abs_probability_error": 5.2928924560546875e-05,
|
| 2304 |
+
"max_abs_logit_error": 0.040035247802734375
|
| 2305 |
+
},
|
| 2306 |
+
{
|
| 2307 |
+
"row": 72,
|
| 2308 |
+
"label": 5,
|
| 2309 |
+
"upstream": 5,
|
| 2310 |
+
"coreml": 5,
|
| 2311 |
+
"max_abs_probability_error": 4.649162292480469e-06,
|
| 2312 |
+
"max_abs_logit_error": 0.042186737060546875
|
| 2313 |
+
},
|
| 2314 |
+
{
|
| 2315 |
+
"row": 73,
|
| 2316 |
+
"label": 6,
|
| 2317 |
+
"upstream": 6,
|
| 2318 |
+
"coreml": 6,
|
| 2319 |
+
"max_abs_probability_error": 2.1576881408691406e-05,
|
| 2320 |
+
"max_abs_logit_error": 0.033161163330078125
|
| 2321 |
+
},
|
| 2322 |
+
{
|
| 2323 |
+
"row": 74,
|
| 2324 |
+
"label": 7,
|
| 2325 |
+
"upstream": 7,
|
| 2326 |
+
"coreml": 7,
|
| 2327 |
+
"max_abs_probability_error": 4.470348358154297e-05,
|
| 2328 |
+
"max_abs_logit_error": 0.0293731689453125
|
| 2329 |
+
},
|
| 2330 |
+
{
|
| 2331 |
+
"row": 75,
|
| 2332 |
+
"label": 8,
|
| 2333 |
+
"upstream": 8,
|
| 2334 |
+
"coreml": 8,
|
| 2335 |
+
"max_abs_probability_error": 1.1563301086425781e-05,
|
| 2336 |
+
"max_abs_logit_error": 0.03249359130859375
|
| 2337 |
+
},
|
| 2338 |
+
{
|
| 2339 |
+
"row": 76,
|
| 2340 |
+
"label": 9,
|
| 2341 |
+
"upstream": 9,
|
| 2342 |
+
"coreml": 9,
|
| 2343 |
+
"max_abs_probability_error": 2.86102294921875e-06,
|
| 2344 |
+
"max_abs_logit_error": 0.03498554229736328
|
| 2345 |
+
},
|
| 2346 |
+
{
|
| 2347 |
+
"row": 77,
|
| 2348 |
+
"label": 13,
|
| 2349 |
+
"upstream": 13,
|
| 2350 |
+
"coreml": 13,
|
| 2351 |
+
"max_abs_probability_error": 0.0003635883331298828,
|
| 2352 |
+
"max_abs_logit_error": 0.023473739624023438
|
| 2353 |
+
},
|
| 2354 |
+
{
|
| 2355 |
+
"row": 78,
|
| 2356 |
+
"label": 20,
|
| 2357 |
+
"upstream": 20,
|
| 2358 |
+
"coreml": 20,
|
| 2359 |
+
"max_abs_probability_error": 9.5367431640625e-07,
|
| 2360 |
+
"max_abs_logit_error": 0.034421443939208984
|
| 2361 |
+
},
|
| 2362 |
+
{
|
| 2363 |
+
"row": 79,
|
| 2364 |
+
"label": 18,
|
| 2365 |
+
"upstream": 18,
|
| 2366 |
+
"coreml": 18,
|
| 2367 |
+
"max_abs_probability_error": 0.0003609657287597656,
|
| 2368 |
+
"max_abs_logit_error": 0.03937721252441406
|
| 2369 |
+
},
|
| 2370 |
+
{
|
| 2371 |
+
"row": 80,
|
| 2372 |
+
"label": 18,
|
| 2373 |
+
"upstream": 18,
|
| 2374 |
+
"coreml": 18,
|
| 2375 |
+
"max_abs_probability_error": 2.384185791015625e-07,
|
| 2376 |
+
"max_abs_logit_error": 0.03752422332763672
|
| 2377 |
+
},
|
| 2378 |
+
{
|
| 2379 |
+
"row": 81,
|
| 2380 |
+
"label": 20,
|
| 2381 |
+
"upstream": 20,
|
| 2382 |
+
"coreml": 20,
|
| 2383 |
+
"max_abs_probability_error": 1.7881393432617188e-06,
|
| 2384 |
+
"max_abs_logit_error": 0.025417327880859375
|
| 2385 |
+
},
|
| 2386 |
+
{
|
| 2387 |
+
"row": 82,
|
| 2388 |
+
"label": 19,
|
| 2389 |
+
"upstream": 19,
|
| 2390 |
+
"coreml": 19,
|
| 2391 |
+
"max_abs_probability_error": 2.384185791015625e-07,
|
| 2392 |
+
"max_abs_logit_error": 0.04453086853027344
|
| 2393 |
+
},
|
| 2394 |
+
{
|
| 2395 |
+
"row": 83,
|
| 2396 |
+
"label": 20,
|
| 2397 |
+
"upstream": 20,
|
| 2398 |
+
"coreml": 20,
|
| 2399 |
+
"max_abs_probability_error": 5.0942090545902374e-09,
|
| 2400 |
+
"max_abs_logit_error": 0.023950576782226562
|
| 2401 |
+
},
|
| 2402 |
+
{
|
| 2403 |
+
"row": 84,
|
| 2404 |
+
"label": 20,
|
| 2405 |
+
"upstream": 20,
|
| 2406 |
+
"coreml": 20,
|
| 2407 |
+
"max_abs_probability_error": 2.384185791015625e-07,
|
| 2408 |
+
"max_abs_logit_error": 0.022706031799316406
|
| 2409 |
+
},
|
| 2410 |
+
{
|
| 2411 |
+
"row": 85,
|
| 2412 |
+
"label": 20,
|
| 2413 |
+
"upstream": 20,
|
| 2414 |
+
"coreml": 20,
|
| 2415 |
+
"max_abs_probability_error": 3.5405053888659666e-10,
|
| 2416 |
+
"max_abs_logit_error": 0.035375118255615234
|
| 2417 |
+
},
|
| 2418 |
+
{
|
| 2419 |
+
"row": 86,
|
| 2420 |
+
"label": 20,
|
| 2421 |
+
"upstream": 20,
|
| 2422 |
+
"coreml": 20,
|
| 2423 |
+
"max_abs_probability_error": 4.76837158203125e-07,
|
| 2424 |
+
"max_abs_logit_error": 0.03717994689941406
|
| 2425 |
+
},
|
| 2426 |
+
{
|
| 2427 |
+
"row": 87,
|
| 2428 |
+
"label": 20,
|
| 2429 |
+
"upstream": 20,
|
| 2430 |
+
"coreml": 20,
|
| 2431 |
+
"max_abs_probability_error": 1.1920928955078125e-07,
|
| 2432 |
+
"max_abs_logit_error": 0.04058122634887695
|
| 2433 |
+
},
|
| 2434 |
+
{
|
| 2435 |
+
"row": 88,
|
| 2436 |
+
"label": 20,
|
| 2437 |
+
"upstream": 20,
|
| 2438 |
+
"coreml": 20,
|
| 2439 |
+
"max_abs_probability_error": 1.3188037328859537e-09,
|
| 2440 |
+
"max_abs_logit_error": 0.032048702239990234
|
| 2441 |
+
},
|
| 2442 |
+
{
|
| 2443 |
+
"row": 89,
|
| 2444 |
+
"label": 20,
|
| 2445 |
+
"upstream": 20,
|
| 2446 |
+
"coreml": 20,
|
| 2447 |
+
"max_abs_probability_error": 1.9970605169561395e-09,
|
| 2448 |
+
"max_abs_logit_error": 0.030427932739257812
|
| 2449 |
+
},
|
| 2450 |
+
{
|
| 2451 |
+
"row": 90,
|
| 2452 |
+
"label": 20,
|
| 2453 |
+
"upstream": 20,
|
| 2454 |
+
"coreml": 20,
|
| 2455 |
+
"max_abs_probability_error": 1.7617375336342889e-09,
|
| 2456 |
+
"max_abs_logit_error": 0.0281219482421875
|
| 2457 |
+
},
|
| 2458 |
+
{
|
| 2459 |
+
"row": 91,
|
| 2460 |
+
"label": 20,
|
| 2461 |
+
"upstream": 20,
|
| 2462 |
+
"coreml": 20,
|
| 2463 |
+
"max_abs_probability_error": 1.612549260787688e-10,
|
| 2464 |
+
"max_abs_logit_error": 0.030226707458496094
|
| 2465 |
+
},
|
| 2466 |
+
{
|
| 2467 |
+
"row": 92,
|
| 2468 |
+
"label": 20,
|
| 2469 |
+
"upstream": 20,
|
| 2470 |
+
"coreml": 20,
|
| 2471 |
+
"max_abs_probability_error": 6.506330630512425e-12,
|
| 2472 |
+
"max_abs_logit_error": 0.04007530212402344
|
| 2473 |
+
},
|
| 2474 |
+
{
|
| 2475 |
+
"row": 93,
|
| 2476 |
+
"label": 20,
|
| 2477 |
+
"upstream": 20,
|
| 2478 |
+
"coreml": 20,
|
| 2479 |
+
"max_abs_probability_error": 1.5150824594911683e-08,
|
| 2480 |
+
"max_abs_logit_error": 0.02728891372680664
|
| 2481 |
+
},
|
| 2482 |
+
{
|
| 2483 |
+
"row": 94,
|
| 2484 |
+
"label": 20,
|
| 2485 |
+
"upstream": 20,
|
| 2486 |
+
"coreml": 20,
|
| 2487 |
+
"max_abs_probability_error": 1.3666674458789885e-09,
|
| 2488 |
+
"max_abs_logit_error": 0.0217437744140625
|
| 2489 |
+
},
|
| 2490 |
+
{
|
| 2491 |
+
"row": 95,
|
| 2492 |
+
"label": 20,
|
| 2493 |
+
"upstream": 20,
|
| 2494 |
+
"coreml": 20,
|
| 2495 |
+
"max_abs_probability_error": 3.969476136678196e-10,
|
| 2496 |
+
"max_abs_logit_error": 0.03214454650878906
|
| 2497 |
+
},
|
| 2498 |
+
{
|
| 2499 |
+
"row": 96,
|
| 2500 |
+
"label": 20,
|
| 2501 |
+
"upstream": 20,
|
| 2502 |
+
"coreml": 20,
|
| 2503 |
+
"max_abs_probability_error": 2.657726538846106e-10,
|
| 2504 |
+
"max_abs_logit_error": 0.03669023513793945
|
| 2505 |
+
},
|
| 2506 |
+
{
|
| 2507 |
+
"row": 97,
|
| 2508 |
+
"label": 20,
|
| 2509 |
+
"upstream": 20,
|
| 2510 |
+
"coreml": 20,
|
| 2511 |
+
"max_abs_probability_error": 1.9073486328125e-06,
|
| 2512 |
+
"max_abs_logit_error": 0.019012451171875
|
| 2513 |
+
},
|
| 2514 |
+
{
|
| 2515 |
+
"row": 98,
|
| 2516 |
+
"label": 20,
|
| 2517 |
+
"upstream": 20,
|
| 2518 |
+
"coreml": 20,
|
| 2519 |
+
"max_abs_probability_error": 2.384185791015625e-07,
|
| 2520 |
+
"max_abs_logit_error": 0.026651382446289062
|
| 2521 |
+
},
|
| 2522 |
+
{
|
| 2523 |
+
"row": 99,
|
| 2524 |
+
"label": 20,
|
| 2525 |
+
"upstream": 20,
|
| 2526 |
+
"coreml": 20,
|
| 2527 |
+
"max_abs_probability_error": 2.1457672119140625e-06,
|
| 2528 |
+
"max_abs_logit_error": 0.04161381721496582
|
| 2529 |
+
},
|
| 2530 |
+
{
|
| 2531 |
+
"row": 100,
|
| 2532 |
+
"label": 20,
|
| 2533 |
+
"upstream": 20,
|
| 2534 |
+
"coreml": 20,
|
| 2535 |
+
"max_abs_probability_error": 9.5367431640625e-07,
|
| 2536 |
+
"max_abs_logit_error": 0.04680633544921875
|
| 2537 |
+
},
|
| 2538 |
+
{
|
| 2539 |
+
"row": 101,
|
| 2540 |
+
"label": 20,
|
| 2541 |
+
"upstream": 20,
|
| 2542 |
+
"coreml": 20,
|
| 2543 |
+
"max_abs_probability_error": 1.789079107084035e-08,
|
| 2544 |
+
"max_abs_logit_error": 0.029542922973632812
|
| 2545 |
+
},
|
| 2546 |
+
{
|
| 2547 |
+
"row": 102,
|
| 2548 |
+
"label": 20,
|
| 2549 |
+
"upstream": 20,
|
| 2550 |
+
"coreml": 20,
|
| 2551 |
+
"max_abs_probability_error": 2.5862225694339713e-09,
|
| 2552 |
+
"max_abs_logit_error": 0.023795127868652344
|
| 2553 |
+
},
|
| 2554 |
+
{
|
| 2555 |
+
"row": 103,
|
| 2556 |
+
"label": 20,
|
| 2557 |
+
"upstream": 20,
|
| 2558 |
+
"coreml": 20,
|
| 2559 |
+
"max_abs_probability_error": 0.00024586915969848633,
|
| 2560 |
+
"max_abs_logit_error": 0.030111312866210938
|
| 2561 |
+
},
|
| 2562 |
+
{
|
| 2563 |
+
"row": 104,
|
| 2564 |
+
"label": 20,
|
| 2565 |
+
"upstream": 20,
|
| 2566 |
+
"coreml": 20,
|
| 2567 |
+
"max_abs_probability_error": 5.841255187988281e-06,
|
| 2568 |
+
"max_abs_logit_error": 0.03126239776611328
|
| 2569 |
+
},
|
| 2570 |
+
{
|
| 2571 |
+
"row": 105,
|
| 2572 |
+
"label": 20,
|
| 2573 |
+
"upstream": 20,
|
| 2574 |
+
"coreml": 20,
|
| 2575 |
+
"max_abs_probability_error": 4.928799035575082e-10,
|
| 2576 |
+
"max_abs_logit_error": 0.026149272918701172
|
| 2577 |
+
},
|
| 2578 |
+
{
|
| 2579 |
+
"row": 106,
|
| 2580 |
+
"label": 20,
|
| 2581 |
+
"upstream": 20,
|
| 2582 |
+
"coreml": 20,
|
| 2583 |
+
"max_abs_probability_error": 2.4136979082101107e-09,
|
| 2584 |
+
"max_abs_logit_error": 0.024585723876953125
|
| 2585 |
+
},
|
| 2586 |
+
{
|
| 2587 |
+
"row": 107,
|
| 2588 |
+
"label": 20,
|
| 2589 |
+
"upstream": 20,
|
| 2590 |
+
"coreml": 20,
|
| 2591 |
+
"max_abs_probability_error": 6.302839361538304e-10,
|
| 2592 |
+
"max_abs_logit_error": 0.024765491485595703
|
| 2593 |
+
},
|
| 2594 |
+
{
|
| 2595 |
+
"row": 108,
|
| 2596 |
+
"label": 20,
|
| 2597 |
+
"upstream": 20,
|
| 2598 |
+
"coreml": 20,
|
| 2599 |
+
"max_abs_probability_error": 1.1920928955078125e-07,
|
| 2600 |
+
"max_abs_logit_error": 0.03492164611816406
|
| 2601 |
+
},
|
| 2602 |
+
{
|
| 2603 |
+
"row": 109,
|
| 2604 |
+
"label": 20,
|
| 2605 |
+
"upstream": 20,
|
| 2606 |
+
"coreml": 20,
|
| 2607 |
+
"max_abs_probability_error": 9.5367431640625e-07,
|
| 2608 |
+
"max_abs_logit_error": 0.034421443939208984
|
| 2609 |
+
},
|
| 2610 |
+
{
|
| 2611 |
+
"row": 110,
|
| 2612 |
+
"label": 20,
|
| 2613 |
+
"upstream": 20,
|
| 2614 |
+
"coreml": 20,
|
| 2615 |
+
"max_abs_probability_error": 9.5367431640625e-07,
|
| 2616 |
+
"max_abs_logit_error": 0.0320439338684082
|
| 2617 |
+
},
|
| 2618 |
+
{
|
| 2619 |
+
"row": 111,
|
| 2620 |
+
"label": 20,
|
| 2621 |
+
"upstream": 20,
|
| 2622 |
+
"coreml": 20,
|
| 2623 |
+
"max_abs_probability_error": 1.811981201171875e-05,
|
| 2624 |
+
"max_abs_logit_error": 0.032814979553222656
|
| 2625 |
+
},
|
| 2626 |
+
{
|
| 2627 |
+
"row": 112,
|
| 2628 |
+
"label": 20,
|
| 2629 |
+
"upstream": 20,
|
| 2630 |
+
"coreml": 20,
|
| 2631 |
+
"max_abs_probability_error": 1.7881393432617188e-06,
|
| 2632 |
+
"max_abs_logit_error": 0.025417327880859375
|
| 2633 |
+
},
|
| 2634 |
+
{
|
| 2635 |
+
"row": 113,
|
| 2636 |
+
"label": 19,
|
| 2637 |
+
"upstream": 19,
|
| 2638 |
+
"coreml": 19,
|
| 2639 |
+
"max_abs_probability_error": 2.384185791015625e-07,
|
| 2640 |
+
"max_abs_logit_error": 0.04453086853027344
|
| 2641 |
+
},
|
| 2642 |
+
{
|
| 2643 |
+
"row": 114,
|
| 2644 |
+
"label": 20,
|
| 2645 |
+
"upstream": 20,
|
| 2646 |
+
"coreml": 20,
|
| 2647 |
+
"max_abs_probability_error": 5.0942090545902374e-09,
|
| 2648 |
+
"max_abs_logit_error": 0.023950576782226562
|
| 2649 |
+
},
|
| 2650 |
+
{
|
| 2651 |
+
"row": 115,
|
| 2652 |
+
"label": 20,
|
| 2653 |
+
"upstream": 20,
|
| 2654 |
+
"coreml": 20,
|
| 2655 |
+
"max_abs_probability_error": 2.384185791015625e-07,
|
| 2656 |
+
"max_abs_logit_error": 0.022706031799316406
|
| 2657 |
+
},
|
| 2658 |
+
{
|
| 2659 |
+
"row": 116,
|
| 2660 |
+
"label": 20,
|
| 2661 |
+
"upstream": 20,
|
| 2662 |
+
"coreml": 20,
|
| 2663 |
+
"max_abs_probability_error": 3.5405053888659666e-10,
|
| 2664 |
+
"max_abs_logit_error": 0.035375118255615234
|
| 2665 |
+
},
|
| 2666 |
+
{
|
| 2667 |
+
"row": 117,
|
| 2668 |
+
"label": 20,
|
| 2669 |
+
"upstream": 20,
|
| 2670 |
+
"coreml": 20,
|
| 2671 |
+
"max_abs_probability_error": 4.76837158203125e-07,
|
| 2672 |
+
"max_abs_logit_error": 0.03717994689941406
|
| 2673 |
+
},
|
| 2674 |
+
{
|
| 2675 |
+
"row": 118,
|
| 2676 |
+
"label": 20,
|
| 2677 |
+
"upstream": 20,
|
| 2678 |
+
"coreml": 20,
|
| 2679 |
+
"max_abs_probability_error": 1.1920928955078125e-07,
|
| 2680 |
+
"max_abs_logit_error": 0.04058122634887695
|
| 2681 |
+
},
|
| 2682 |
+
{
|
| 2683 |
+
"row": 119,
|
| 2684 |
+
"label": 20,
|
| 2685 |
+
"upstream": 20,
|
| 2686 |
+
"coreml": 20,
|
| 2687 |
+
"max_abs_probability_error": 1.3188037328859537e-09,
|
| 2688 |
+
"max_abs_logit_error": 0.032048702239990234
|
| 2689 |
+
},
|
| 2690 |
+
{
|
| 2691 |
+
"row": 120,
|
| 2692 |
+
"label": 20,
|
| 2693 |
+
"upstream": 20,
|
| 2694 |
+
"coreml": 20,
|
| 2695 |
+
"max_abs_probability_error": 1.9970605169561395e-09,
|
| 2696 |
+
"max_abs_logit_error": 0.030427932739257812
|
| 2697 |
+
},
|
| 2698 |
+
{
|
| 2699 |
+
"row": 121,
|
| 2700 |
+
"label": 20,
|
| 2701 |
+
"upstream": 20,
|
| 2702 |
+
"coreml": 20,
|
| 2703 |
+
"max_abs_probability_error": 1.7617375336342889e-09,
|
| 2704 |
+
"max_abs_logit_error": 0.0281219482421875
|
| 2705 |
+
},
|
| 2706 |
+
{
|
| 2707 |
+
"row": 122,
|
| 2708 |
+
"label": 20,
|
| 2709 |
+
"upstream": 20,
|
| 2710 |
+
"coreml": 20,
|
| 2711 |
+
"max_abs_probability_error": 1.612549260787688e-10,
|
| 2712 |
+
"max_abs_logit_error": 0.030226707458496094
|
| 2713 |
+
},
|
| 2714 |
+
{
|
| 2715 |
+
"row": 123,
|
| 2716 |
+
"label": 20,
|
| 2717 |
+
"upstream": 20,
|
| 2718 |
+
"coreml": 20,
|
| 2719 |
+
"max_abs_probability_error": 6.506330630512425e-12,
|
| 2720 |
+
"max_abs_logit_error": 0.04007530212402344
|
| 2721 |
+
},
|
| 2722 |
+
{
|
| 2723 |
+
"row": 124,
|
| 2724 |
+
"label": 20,
|
| 2725 |
+
"upstream": 20,
|
| 2726 |
+
"coreml": 20,
|
| 2727 |
+
"max_abs_probability_error": 1.5150824594911683e-08,
|
| 2728 |
+
"max_abs_logit_error": 0.02728891372680664
|
| 2729 |
+
},
|
| 2730 |
+
{
|
| 2731 |
+
"row": 125,
|
| 2732 |
+
"label": 20,
|
| 2733 |
+
"upstream": 20,
|
| 2734 |
+
"coreml": 20,
|
| 2735 |
+
"max_abs_probability_error": 1.3666674458789885e-09,
|
| 2736 |
+
"max_abs_logit_error": 0.0217437744140625
|
| 2737 |
+
},
|
| 2738 |
+
{
|
| 2739 |
+
"row": 126,
|
| 2740 |
+
"label": 20,
|
| 2741 |
+
"upstream": 20,
|
| 2742 |
+
"coreml": 20,
|
| 2743 |
+
"max_abs_probability_error": 3.969476136678196e-10,
|
| 2744 |
+
"max_abs_logit_error": 0.03214454650878906
|
| 2745 |
+
},
|
| 2746 |
+
{
|
| 2747 |
+
"row": 127,
|
| 2748 |
+
"label": 20,
|
| 2749 |
+
"upstream": 20,
|
| 2750 |
+
"coreml": 20,
|
| 2751 |
+
"max_abs_probability_error": 2.657726538846106e-10,
|
| 2752 |
+
"max_abs_logit_error": 0.03669023513793945
|
| 2753 |
+
},
|
| 2754 |
+
{
|
| 2755 |
+
"row": 128,
|
| 2756 |
+
"label": 20,
|
| 2757 |
+
"upstream": 20,
|
| 2758 |
+
"coreml": 20,
|
| 2759 |
+
"max_abs_probability_error": 1.9073486328125e-06,
|
| 2760 |
+
"max_abs_logit_error": 0.019012451171875
|
| 2761 |
+
},
|
| 2762 |
+
{
|
| 2763 |
+
"row": 129,
|
| 2764 |
+
"label": 20,
|
| 2765 |
+
"upstream": 20,
|
| 2766 |
+
"coreml": 20,
|
| 2767 |
+
"max_abs_probability_error": 2.384185791015625e-07,
|
| 2768 |
+
"max_abs_logit_error": 0.026651382446289062
|
| 2769 |
+
},
|
| 2770 |
+
{
|
| 2771 |
+
"row": 130,
|
| 2772 |
+
"label": 1,
|
| 2773 |
+
"upstream": 1,
|
| 2774 |
+
"coreml": 1,
|
| 2775 |
+
"max_abs_probability_error": 3.170967102050781e-05,
|
| 2776 |
+
"max_abs_logit_error": 0.071075439453125
|
| 2777 |
+
},
|
| 2778 |
+
{
|
| 2779 |
+
"row": 131,
|
| 2780 |
+
"label": 2,
|
| 2781 |
+
"upstream": 2,
|
| 2782 |
+
"coreml": 2,
|
| 2783 |
+
"max_abs_probability_error": 8.344650268554688e-07,
|
| 2784 |
+
"max_abs_logit_error": 0.051357269287109375
|
| 2785 |
+
},
|
| 2786 |
+
{
|
| 2787 |
+
"row": 132,
|
| 2788 |
+
"label": 3,
|
| 2789 |
+
"upstream": 3,
|
| 2790 |
+
"coreml": 3,
|
| 2791 |
+
"max_abs_probability_error": 2.7894973754882812e-05,
|
| 2792 |
+
"max_abs_logit_error": 0.033801641315221786
|
| 2793 |
+
},
|
| 2794 |
+
{
|
| 2795 |
+
"row": 133,
|
| 2796 |
+
"label": 4,
|
| 2797 |
+
"upstream": 4,
|
| 2798 |
+
"coreml": 4,
|
| 2799 |
+
"max_abs_probability_error": 1.0967254638671875e-05,
|
| 2800 |
+
"max_abs_logit_error": 0.039325714111328125
|
| 2801 |
+
},
|
| 2802 |
+
{
|
| 2803 |
+
"row": 134,
|
| 2804 |
+
"label": 5,
|
| 2805 |
+
"upstream": 5,
|
| 2806 |
+
"coreml": 5,
|
| 2807 |
+
"max_abs_probability_error": 6.258487701416016e-05,
|
| 2808 |
+
"max_abs_logit_error": 0.033056676387786865
|
| 2809 |
+
},
|
| 2810 |
+
{
|
| 2811 |
+
"row": 135,
|
| 2812 |
+
"label": 6,
|
| 2813 |
+
"upstream": 6,
|
| 2814 |
+
"coreml": 6,
|
| 2815 |
+
"max_abs_probability_error": 1.2993812561035156e-05,
|
| 2816 |
+
"max_abs_logit_error": 0.02561807632446289
|
| 2817 |
+
},
|
| 2818 |
+
{
|
| 2819 |
+
"row": 136,
|
| 2820 |
+
"label": 7,
|
| 2821 |
+
"upstream": 7,
|
| 2822 |
+
"coreml": 7,
|
| 2823 |
+
"max_abs_probability_error": 6.198883056640625e-06,
|
| 2824 |
+
"max_abs_logit_error": 0.03448677062988281
|
| 2825 |
+
},
|
| 2826 |
+
{
|
| 2827 |
+
"row": 137,
|
| 2828 |
+
"label": 8,
|
| 2829 |
+
"upstream": 8,
|
| 2830 |
+
"coreml": 8,
|
| 2831 |
+
"max_abs_probability_error": 0.00233614444732666,
|
| 2832 |
+
"max_abs_logit_error": 0.04230833053588867
|
| 2833 |
+
},
|
| 2834 |
+
{
|
| 2835 |
+
"row": 138,
|
| 2836 |
+
"label": 9,
|
| 2837 |
+
"upstream": 9,
|
| 2838 |
+
"coreml": 9,
|
| 2839 |
+
"max_abs_probability_error": 0.00022917985916137695,
|
| 2840 |
+
"max_abs_logit_error": 0.05339241027832031
|
| 2841 |
+
},
|
| 2842 |
+
{
|
| 2843 |
+
"row": 139,
|
| 2844 |
+
"label": 10,
|
| 2845 |
+
"upstream": 10,
|
| 2846 |
+
"coreml": 10,
|
| 2847 |
+
"max_abs_probability_error": 4.851818084716797e-05,
|
| 2848 |
+
"max_abs_logit_error": 0.032756805419921875
|
| 2849 |
+
},
|
| 2850 |
+
{
|
| 2851 |
+
"row": 140,
|
| 2852 |
+
"label": 11,
|
| 2853 |
+
"upstream": 11,
|
| 2854 |
+
"coreml": 11,
|
| 2855 |
+
"max_abs_probability_error": 3.0994415283203125e-06,
|
| 2856 |
+
"max_abs_logit_error": 0.029809951782226562
|
| 2857 |
+
},
|
| 2858 |
+
{
|
| 2859 |
+
"row": 141,
|
| 2860 |
+
"label": 12,
|
| 2861 |
+
"upstream": 12,
|
| 2862 |
+
"coreml": 12,
|
| 2863 |
+
"max_abs_probability_error": 9.34600830078125e-05,
|
| 2864 |
+
"max_abs_logit_error": 0.026587963104248047
|
| 2865 |
+
},
|
| 2866 |
+
{
|
| 2867 |
+
"row": 142,
|
| 2868 |
+
"label": 18,
|
| 2869 |
+
"upstream": 18,
|
| 2870 |
+
"coreml": 18,
|
| 2871 |
+
"max_abs_probability_error": 1.9073486328125e-06,
|
| 2872 |
+
"max_abs_logit_error": 0.03671073913574219
|
| 2873 |
+
},
|
| 2874 |
+
{
|
| 2875 |
+
"row": 143,
|
| 2876 |
+
"label": 16,
|
| 2877 |
+
"upstream": 16,
|
| 2878 |
+
"coreml": 16,
|
| 2879 |
+
"max_abs_probability_error": 7.152557373046875e-07,
|
| 2880 |
+
"max_abs_logit_error": 0.05281543731689453
|
| 2881 |
+
},
|
| 2882 |
+
{
|
| 2883 |
+
"row": 144,
|
| 2884 |
+
"label": 18,
|
| 2885 |
+
"upstream": 18,
|
| 2886 |
+
"coreml": 18,
|
| 2887 |
+
"max_abs_probability_error": 1.1920928955078125e-06,
|
| 2888 |
+
"max_abs_logit_error": 0.04511451721191406
|
| 2889 |
+
},
|
| 2890 |
+
{
|
| 2891 |
+
"row": 145,
|
| 2892 |
+
"label": 18,
|
| 2893 |
+
"upstream": 18,
|
| 2894 |
+
"coreml": 18,
|
| 2895 |
+
"max_abs_probability_error": 3.6954879760742188e-06,
|
| 2896 |
+
"max_abs_logit_error": 0.07230281829833984
|
| 2897 |
+
},
|
| 2898 |
+
{
|
| 2899 |
+
"row": 146,
|
| 2900 |
+
"label": 17,
|
| 2901 |
+
"upstream": 17,
|
| 2902 |
+
"coreml": 17,
|
| 2903 |
+
"max_abs_probability_error": 1.1920928955078125e-07,
|
| 2904 |
+
"max_abs_logit_error": 0.03114461898803711
|
| 2905 |
+
},
|
| 2906 |
+
{
|
| 2907 |
+
"row": 147,
|
| 2908 |
+
"label": 18,
|
| 2909 |
+
"upstream": 18,
|
| 2910 |
+
"coreml": 18,
|
| 2911 |
+
"max_abs_probability_error": 8.429776876539563e-09,
|
| 2912 |
+
"max_abs_logit_error": 0.020772457122802734
|
| 2913 |
+
},
|
| 2914 |
+
{
|
| 2915 |
+
"row": 148,
|
| 2916 |
+
"label": 18,
|
| 2917 |
+
"upstream": 18,
|
| 2918 |
+
"coreml": 18,
|
| 2919 |
+
"max_abs_probability_error": 9.215698426601193e-09,
|
| 2920 |
+
"max_abs_logit_error": 0.03475606441497803
|
| 2921 |
+
},
|
| 2922 |
+
{
|
| 2923 |
+
"row": 149,
|
| 2924 |
+
"label": 18,
|
| 2925 |
+
"upstream": 18,
|
| 2926 |
+
"coreml": 18,
|
| 2927 |
+
"max_abs_probability_error": 3.84208304060607e-10,
|
| 2928 |
+
"max_abs_logit_error": 0.020298004150390625
|
| 2929 |
+
},
|
| 2930 |
+
{
|
| 2931 |
+
"row": 150,
|
| 2932 |
+
"label": 18,
|
| 2933 |
+
"upstream": 18,
|
| 2934 |
+
"coreml": 18,
|
| 2935 |
+
"max_abs_probability_error": 7.947568818333917e-12,
|
| 2936 |
+
"max_abs_logit_error": 0.04283332824707031
|
| 2937 |
+
},
|
| 2938 |
+
{
|
| 2939 |
+
"row": 151,
|
| 2940 |
+
"label": 18,
|
| 2941 |
+
"upstream": 18,
|
| 2942 |
+
"coreml": 18,
|
| 2943 |
+
"max_abs_probability_error": 5.291168614363073e-10,
|
| 2944 |
+
"max_abs_logit_error": 0.028450965881347656
|
| 2945 |
+
},
|
| 2946 |
+
{
|
| 2947 |
+
"row": 152,
|
| 2948 |
+
"label": 18,
|
| 2949 |
+
"upstream": 18,
|
| 2950 |
+
"coreml": 18,
|
| 2951 |
+
"max_abs_probability_error": 7.924417788629512e-10,
|
| 2952 |
+
"max_abs_logit_error": 0.02250051498413086
|
| 2953 |
+
},
|
| 2954 |
+
{
|
| 2955 |
+
"row": 153,
|
| 2956 |
+
"label": 18,
|
| 2957 |
+
"upstream": 18,
|
| 2958 |
+
"coreml": 18,
|
| 2959 |
+
"max_abs_probability_error": 1.837478791344438e-08,
|
| 2960 |
+
"max_abs_logit_error": 0.06335592269897461
|
| 2961 |
+
},
|
| 2962 |
+
{
|
| 2963 |
+
"row": 154,
|
| 2964 |
+
"label": 18,
|
| 2965 |
+
"upstream": 18,
|
| 2966 |
+
"coreml": 18,
|
| 2967 |
+
"max_abs_probability_error": 3.3051329034750054e-11,
|
| 2968 |
+
"max_abs_logit_error": 0.02735137939453125
|
| 2969 |
+
},
|
| 2970 |
+
{
|
| 2971 |
+
"row": 155,
|
| 2972 |
+
"label": 18,
|
| 2973 |
+
"upstream": 18,
|
| 2974 |
+
"coreml": 18,
|
| 2975 |
+
"max_abs_probability_error": 1.650468511860126e-10,
|
| 2976 |
+
"max_abs_logit_error": 0.015047073364257812
|
| 2977 |
+
},
|
| 2978 |
+
{
|
| 2979 |
+
"row": 156,
|
| 2980 |
+
"label": 18,
|
| 2981 |
+
"upstream": 18,
|
| 2982 |
+
"coreml": 18,
|
| 2983 |
+
"max_abs_probability_error": 6.181078218703284e-12,
|
| 2984 |
+
"max_abs_logit_error": 0.04868888854980469
|
| 2985 |
+
},
|
| 2986 |
+
{
|
| 2987 |
+
"row": 157,
|
| 2988 |
+
"label": 18,
|
| 2989 |
+
"upstream": 18,
|
| 2990 |
+
"coreml": 18,
|
| 2991 |
+
"max_abs_probability_error": 1.6455586893115992e-10,
|
| 2992 |
+
"max_abs_logit_error": 0.026497364044189453
|
| 2993 |
+
},
|
| 2994 |
+
{
|
| 2995 |
+
"row": 158,
|
| 2996 |
+
"label": 18,
|
| 2997 |
+
"upstream": 18,
|
| 2998 |
+
"coreml": 18,
|
| 2999 |
+
"max_abs_probability_error": 6.109900363426846e-10,
|
| 3000 |
+
"max_abs_logit_error": 0.022236347198486328
|
| 3001 |
+
},
|
| 3002 |
+
{
|
| 3003 |
+
"row": 159,
|
| 3004 |
+
"label": 18,
|
| 3005 |
+
"upstream": 18,
|
| 3006 |
+
"coreml": 18,
|
| 3007 |
+
"max_abs_probability_error": 6.693580800742893e-09,
|
| 3008 |
+
"max_abs_logit_error": 0.020044326782226562
|
| 3009 |
+
},
|
| 3010 |
+
{
|
| 3011 |
+
"row": 160,
|
| 3012 |
+
"label": 18,
|
| 3013 |
+
"upstream": 18,
|
| 3014 |
+
"coreml": 18,
|
| 3015 |
+
"max_abs_probability_error": 1.3718365998727222e-08,
|
| 3016 |
+
"max_abs_logit_error": 0.05533123016357422
|
| 3017 |
+
},
|
| 3018 |
+
{
|
| 3019 |
+
"row": 161,
|
| 3020 |
+
"label": 18,
|
| 3021 |
+
"upstream": 18,
|
| 3022 |
+
"coreml": 18,
|
| 3023 |
+
"max_abs_probability_error": 8.344650268554688e-07,
|
| 3024 |
+
"max_abs_logit_error": 0.0247042179107666
|
| 3025 |
+
},
|
| 3026 |
+
{
|
| 3027 |
+
"row": 162,
|
| 3028 |
+
"label": 18,
|
| 3029 |
+
"upstream": 18,
|
| 3030 |
+
"coreml": 18,
|
| 3031 |
+
"max_abs_probability_error": 1.042114572413766e-08,
|
| 3032 |
+
"max_abs_logit_error": 0.028873443603515625
|
| 3033 |
+
},
|
| 3034 |
+
{
|
| 3035 |
+
"row": 163,
|
| 3036 |
+
"label": 18,
|
| 3037 |
+
"upstream": 18,
|
| 3038 |
+
"coreml": 18,
|
| 3039 |
+
"max_abs_probability_error": 1.9131388140358752e-10,
|
| 3040 |
+
"max_abs_logit_error": 0.015494346618652344
|
| 3041 |
+
},
|
| 3042 |
+
{
|
| 3043 |
+
"row": 164,
|
| 3044 |
+
"label": 18,
|
| 3045 |
+
"upstream": 18,
|
| 3046 |
+
"coreml": 18,
|
| 3047 |
+
"max_abs_probability_error": 1.0254025184508464e-08,
|
| 3048 |
+
"max_abs_logit_error": 0.02497100830078125
|
| 3049 |
+
},
|
| 3050 |
+
{
|
| 3051 |
+
"row": 165,
|
| 3052 |
+
"label": 18,
|
| 3053 |
+
"upstream": 18,
|
| 3054 |
+
"coreml": 18,
|
| 3055 |
+
"max_abs_probability_error": 5.15840287151903e-11,
|
| 3056 |
+
"max_abs_logit_error": 0.02679443359375
|
| 3057 |
+
},
|
| 3058 |
+
{
|
| 3059 |
+
"row": 166,
|
| 3060 |
+
"label": 18,
|
| 3061 |
+
"upstream": 18,
|
| 3062 |
+
"coreml": 18,
|
| 3063 |
+
"max_abs_probability_error": 2.6797479790729994e-09,
|
| 3064 |
+
"max_abs_logit_error": 0.028203964233398438
|
| 3065 |
+
},
|
| 3066 |
+
{
|
| 3067 |
+
"row": 167,
|
| 3068 |
+
"label": 18,
|
| 3069 |
+
"upstream": 18,
|
| 3070 |
+
"coreml": 18,
|
| 3071 |
+
"max_abs_probability_error": 7.54509399403247e-10,
|
| 3072 |
+
"max_abs_logit_error": 0.03371429443359375
|
| 3073 |
+
},
|
| 3074 |
+
{
|
| 3075 |
+
"row": 168,
|
| 3076 |
+
"label": 18,
|
| 3077 |
+
"upstream": 18,
|
| 3078 |
+
"coreml": 18,
|
| 3079 |
+
"max_abs_probability_error": 8.344650268554688e-07,
|
| 3080 |
+
"max_abs_logit_error": 0.028280355036258698
|
| 3081 |
+
},
|
| 3082 |
+
{
|
| 3083 |
+
"row": 169,
|
| 3084 |
+
"label": 18,
|
| 3085 |
+
"upstream": 18,
|
| 3086 |
+
"coreml": 18,
|
| 3087 |
+
"max_abs_probability_error": 2.4169340140378637e-11,
|
| 3088 |
+
"max_abs_logit_error": 0.038245439529418945
|
| 3089 |
+
},
|
| 3090 |
+
{
|
| 3091 |
+
"row": 170,
|
| 3092 |
+
"label": 18,
|
| 3093 |
+
"upstream": 18,
|
| 3094 |
+
"coreml": 18,
|
| 3095 |
+
"max_abs_probability_error": 3.0329603412093675e-11,
|
| 3096 |
+
"max_abs_logit_error": 0.030043363571166992
|
| 3097 |
+
},
|
| 3098 |
+
{
|
| 3099 |
+
"row": 171,
|
| 3100 |
+
"label": 18,
|
| 3101 |
+
"upstream": 18,
|
| 3102 |
+
"coreml": 18,
|
| 3103 |
+
"max_abs_probability_error": 1.7881393432617188e-06,
|
| 3104 |
+
"max_abs_logit_error": 0.02963542938232422
|
| 3105 |
+
},
|
| 3106 |
+
{
|
| 3107 |
+
"row": 172,
|
| 3108 |
+
"label": 18,
|
| 3109 |
+
"upstream": 18,
|
| 3110 |
+
"coreml": 18,
|
| 3111 |
+
"max_abs_probability_error": 4.66337235494052e-09,
|
| 3112 |
+
"max_abs_logit_error": 0.03510093688964844
|
| 3113 |
+
},
|
| 3114 |
+
{
|
| 3115 |
+
"row": 173,
|
| 3116 |
+
"label": 18,
|
| 3117 |
+
"upstream": 18,
|
| 3118 |
+
"coreml": 18,
|
| 3119 |
+
"max_abs_probability_error": 1.2885730260592254e-09,
|
| 3120 |
+
"max_abs_logit_error": 0.04009199142456055
|
| 3121 |
+
},
|
| 3122 |
+
{
|
| 3123 |
+
"row": 174,
|
| 3124 |
+
"label": 18,
|
| 3125 |
+
"upstream": 18,
|
| 3126 |
+
"coreml": 18,
|
| 3127 |
+
"max_abs_probability_error": 1.1279766010119374e-09,
|
| 3128 |
+
"max_abs_logit_error": 0.031810760498046875
|
| 3129 |
+
},
|
| 3130 |
+
{
|
| 3131 |
+
"row": 175,
|
| 3132 |
+
"label": 18,
|
| 3133 |
+
"upstream": 18,
|
| 3134 |
+
"coreml": 18,
|
| 3135 |
+
"max_abs_probability_error": 1.9073486328125e-06,
|
| 3136 |
+
"max_abs_logit_error": 0.03671073913574219
|
| 3137 |
+
},
|
| 3138 |
+
{
|
| 3139 |
+
"row": 176,
|
| 3140 |
+
"label": 18,
|
| 3141 |
+
"upstream": 18,
|
| 3142 |
+
"coreml": 18,
|
| 3143 |
+
"max_abs_probability_error": 1.0728836059570312e-06,
|
| 3144 |
+
"max_abs_logit_error": 0.05123615264892578
|
| 3145 |
+
},
|
| 3146 |
+
{
|
| 3147 |
+
"row": 177,
|
| 3148 |
+
"label": 18,
|
| 3149 |
+
"upstream": 18,
|
| 3150 |
+
"coreml": 18,
|
| 3151 |
+
"max_abs_probability_error": 1.2799782567185503e-08,
|
| 3152 |
+
"max_abs_logit_error": 0.03157186508178711
|
| 3153 |
+
},
|
| 3154 |
+
{
|
| 3155 |
+
"row": 178,
|
| 3156 |
+
"label": 18,
|
| 3157 |
+
"upstream": 18,
|
| 3158 |
+
"coreml": 18,
|
| 3159 |
+
"max_abs_probability_error": 3.6954879760742188e-06,
|
| 3160 |
+
"max_abs_logit_error": 0.07230281829833984
|
| 3161 |
+
},
|
| 3162 |
+
{
|
| 3163 |
+
"row": 179,
|
| 3164 |
+
"label": 17,
|
| 3165 |
+
"upstream": 17,
|
| 3166 |
+
"coreml": 17,
|
| 3167 |
+
"max_abs_probability_error": 1.1920928955078125e-07,
|
| 3168 |
+
"max_abs_logit_error": 0.03114461898803711
|
| 3169 |
+
},
|
| 3170 |
+
{
|
| 3171 |
+
"row": 180,
|
| 3172 |
+
"label": 18,
|
| 3173 |
+
"upstream": 18,
|
| 3174 |
+
"coreml": 18,
|
| 3175 |
+
"max_abs_probability_error": 8.429776876539563e-09,
|
| 3176 |
+
"max_abs_logit_error": 0.020772457122802734
|
| 3177 |
+
},
|
| 3178 |
+
{
|
| 3179 |
+
"row": 181,
|
| 3180 |
+
"label": 18,
|
| 3181 |
+
"upstream": 18,
|
| 3182 |
+
"coreml": 18,
|
| 3183 |
+
"max_abs_probability_error": 9.215698426601193e-09,
|
| 3184 |
+
"max_abs_logit_error": 0.03475606441497803
|
| 3185 |
+
},
|
| 3186 |
+
{
|
| 3187 |
+
"row": 182,
|
| 3188 |
+
"label": 18,
|
| 3189 |
+
"upstream": 18,
|
| 3190 |
+
"coreml": 18,
|
| 3191 |
+
"max_abs_probability_error": 3.84208304060607e-10,
|
| 3192 |
+
"max_abs_logit_error": 0.020298004150390625
|
| 3193 |
+
},
|
| 3194 |
+
{
|
| 3195 |
+
"row": 183,
|
| 3196 |
+
"label": 18,
|
| 3197 |
+
"upstream": 18,
|
| 3198 |
+
"coreml": 18,
|
| 3199 |
+
"max_abs_probability_error": 7.947568818333917e-12,
|
| 3200 |
+
"max_abs_logit_error": 0.04283332824707031
|
| 3201 |
+
},
|
| 3202 |
+
{
|
| 3203 |
+
"row": 184,
|
| 3204 |
+
"label": 18,
|
| 3205 |
+
"upstream": 18,
|
| 3206 |
+
"coreml": 18,
|
| 3207 |
+
"max_abs_probability_error": 5.291168614363073e-10,
|
| 3208 |
+
"max_abs_logit_error": 0.028450965881347656
|
| 3209 |
+
},
|
| 3210 |
+
{
|
| 3211 |
+
"row": 185,
|
| 3212 |
+
"label": 18,
|
| 3213 |
+
"upstream": 18,
|
| 3214 |
+
"coreml": 18,
|
| 3215 |
+
"max_abs_probability_error": 7.924417788629512e-10,
|
| 3216 |
+
"max_abs_logit_error": 0.02250051498413086
|
| 3217 |
+
},
|
| 3218 |
+
{
|
| 3219 |
+
"row": 186,
|
| 3220 |
+
"label": 18,
|
| 3221 |
+
"upstream": 18,
|
| 3222 |
+
"coreml": 18,
|
| 3223 |
+
"max_abs_probability_error": 1.837478791344438e-08,
|
| 3224 |
+
"max_abs_logit_error": 0.06335592269897461
|
| 3225 |
+
},
|
| 3226 |
+
{
|
| 3227 |
+
"row": 187,
|
| 3228 |
+
"label": 18,
|
| 3229 |
+
"upstream": 18,
|
| 3230 |
+
"coreml": 18,
|
| 3231 |
+
"max_abs_probability_error": 3.3051329034750054e-11,
|
| 3232 |
+
"max_abs_logit_error": 0.02735137939453125
|
| 3233 |
+
},
|
| 3234 |
+
{
|
| 3235 |
+
"row": 188,
|
| 3236 |
+
"label": 18,
|
| 3237 |
+
"upstream": 18,
|
| 3238 |
+
"coreml": 18,
|
| 3239 |
+
"max_abs_probability_error": 1.650468511860126e-10,
|
| 3240 |
+
"max_abs_logit_error": 0.015047073364257812
|
| 3241 |
+
},
|
| 3242 |
+
{
|
| 3243 |
+
"row": 189,
|
| 3244 |
+
"label": 18,
|
| 3245 |
+
"upstream": 18,
|
| 3246 |
+
"coreml": 18,
|
| 3247 |
+
"max_abs_probability_error": 6.181078218703284e-12,
|
| 3248 |
+
"max_abs_logit_error": 0.04868888854980469
|
| 3249 |
+
},
|
| 3250 |
+
{
|
| 3251 |
+
"row": 190,
|
| 3252 |
+
"label": 18,
|
| 3253 |
+
"upstream": 18,
|
| 3254 |
+
"coreml": 18,
|
| 3255 |
+
"max_abs_probability_error": 1.6455586893115992e-10,
|
| 3256 |
+
"max_abs_logit_error": 0.026497364044189453
|
| 3257 |
+
},
|
| 3258 |
+
{
|
| 3259 |
+
"row": 191,
|
| 3260 |
+
"label": 18,
|
| 3261 |
+
"upstream": 18,
|
| 3262 |
+
"coreml": 18,
|
| 3263 |
+
"max_abs_probability_error": 6.109900363426846e-10,
|
| 3264 |
+
"max_abs_logit_error": 0.022236347198486328
|
| 3265 |
+
},
|
| 3266 |
+
{
|
| 3267 |
+
"row": 192,
|
| 3268 |
+
"label": 18,
|
| 3269 |
+
"upstream": 18,
|
| 3270 |
+
"coreml": 18,
|
| 3271 |
+
"max_abs_probability_error": 6.693580800742893e-09,
|
| 3272 |
+
"max_abs_logit_error": 0.020044326782226562
|
| 3273 |
+
},
|
| 3274 |
+
{
|
| 3275 |
+
"row": 193,
|
| 3276 |
+
"label": 18,
|
| 3277 |
+
"upstream": 18,
|
| 3278 |
+
"coreml": 18,
|
| 3279 |
+
"max_abs_probability_error": 1.3718365998727222e-08,
|
| 3280 |
+
"max_abs_logit_error": 0.05533123016357422
|
| 3281 |
+
},
|
| 3282 |
+
{
|
| 3283 |
+
"row": 194,
|
| 3284 |
+
"label": 18,
|
| 3285 |
+
"upstream": 18,
|
| 3286 |
+
"coreml": 18,
|
| 3287 |
+
"max_abs_probability_error": 8.344650268554688e-07,
|
| 3288 |
+
"max_abs_logit_error": 0.0247042179107666
|
| 3289 |
+
},
|
| 3290 |
+
{
|
| 3291 |
+
"row": 195,
|
| 3292 |
+
"label": 18,
|
| 3293 |
+
"upstream": 18,
|
| 3294 |
+
"coreml": 18,
|
| 3295 |
+
"max_abs_probability_error": 1.042114572413766e-08,
|
| 3296 |
+
"max_abs_logit_error": 0.028873443603515625
|
| 3297 |
+
}
|
| 3298 |
+
]
|
| 3299 |
+
}
|
| 3300 |
+
},
|
| 3301 |
+
"passed": true,
|
| 3302 |
+
"code_sha256": {
|
| 3303 |
+
"assets.py": "f7a5bc931075237e00c73bf21fee3575be35531f934f23b5e22627d50a79f92f",
|
| 3304 |
+
"convert-coreml.py": "e1e9cc20277515fc750940e97d75f9db7c15f0443e23c26fe65815cef4e23bb7",
|
| 3305 |
+
"export_model.py": "803b909577fe7c38968c5438b27fff7c07bb095a7c341c1b0430d91256649113",
|
| 3306 |
+
"preprocessing.py": "18c74ede43f95f91cd638c7e9631923a353e3a24d3b522ddb8b18b480f9c2846",
|
| 3307 |
+
"verify.py": "31425c5f0081b07725ce94c611664151ed02678f25ca93774497cfca8f46ceeb"
|
| 3308 |
+
}
|
| 3309 |
+
}
|