| # CelsiusToKelvin Edge Bundle |
|
|
| MatrixAI model exported for edge/production inference. |
| Actions remain `simulate_only`. This bundle only provides predictions. |
|
|
| ## Quick start |
|
|
| This model is self-usable: feed **raw, human-readable values** and get back a single numeric value. |
| Normalization and category encoding are handled for you by `predict.py`. |
|
|
| ```bash |
| python -m venv .venv |
| . .venv/bin/activate # Windows: .venv\Scripts\activate |
| pip install -r requirements.txt |
| python predict.py --input example_input.json |
| ``` |
|
|
| That should reproduce `expected_output.json`. From your own code: |
|
|
| ```python |
| from predict import MatrixAIModel |
| |
| model = MatrixAIModel() # loads inference_spec.json next to predict.py |
| print(model.predict({"celsius": 50.0})) |
| ``` |
|
|
| ## Files |
|
|
| | File | Description | |
| |------|-------------| |
| | `model.mxai` | MatrixAI model definition (source of truth) | |
| | `model.mxtrain` | Training contract: dataset, split, loss, optimizer, epochs | |
| | `params.best.json` | Trained parameter weights | |
| | `model.onnx` | ONNX model, opset 17 | |
| | `model_manifest.json` | Model metadata, hashes and backend contract | |
| | `export_manifest.json` | Export metadata, tolerance and equivalence check | |
| | `data_recipe.txt` | The recipe the training data was generated from | |
| | `reproduce.json` | Whether this model can be rebuilt, and the digest of each artifact that travels | |
| | `inference_spec.json` | How a raw record maps to the model input (the "tokenizer") | |
| | `predict.py` | Standalone wrapper: raw values in, labelled prediction out | |
| | `requirements.txt` | Minimal deps to run predict.py (numpy + onnxruntime) | |
| | `example_input.json` | A ready-to-run raw example | |
| | `expected_output.json` | The output predict.py should produce for that example | |
| | `space/` | A Hugging Face Space template — yours to publish, or to ignore | |
| | `README.md` | This file | |
|
|
| This package is **reproducible**: `reproduce.json` carries the recipe, the training contract, the expected dataset sha256 and the exact environment, all of it taken from the capture the core recorded while training this model — and every artifact here matches it. It proves internal consistency, not authorship. |
|
|
| ## Model info |
|
|
| - Project: `CelsiusToKelvin` |
| - Model hash: `mxai_fdbe5973e98a1123` |
| - Parameter set: `v1_best` |
| - Input: `Reading` shape `[-1, 1]` (float32) |
| - Output: `prediction` shape `[-1]` |
|
|
| Equivalence check: PASS (max_abs_diff=3.57e-08, atol=1e-05, n=20) |
|
|
| ## Advanced: raw onnxruntime access |
|
|
| For most uses prefer `predict.py` above (it handles normalization and labels). |
| The raw ONNX graph expects an already-normalized float32 vector: |
|
|
| ```python |
| import onnxruntime as ort |
| import numpy as np |
| |
| sess = ort.InferenceSession("model.onnx") |
| x = np.array([[...]], dtype=np.float32) # shape [batch, 1] |
| result = sess.run(None, {"Reading": x})[0] # [-1] |
| ``` |
|
|
| ## Reproducing this |
|
|
| Everything needed to rebuild this model's data and check it travels inside the package: |
|
|
| | What | File | sha256 | |
| |---|---|---| |
| | model | `model.mxai` | `a66357a7adab3ce7…` | |
| | training contract | `model.mxtrain` | `b7622635f83c8626…` | |
| | data recipe | `data_recipe.txt` | `7f332dbb7aa59ebf…` | |
|
|
| - **dataset**: 300 rows, sha256 `5827acf2b2b6058d…` |
| - **generation seed**: `20260825` |
| - **generation mode**: `coherent` |
| - **trained with**: environment_sha256 f73756abfe0d07dffabba936f5e66218dd56e5bf3ebc8ee0c507ac69bb3f2f15, matrixai_version 1.6.0, packages {'numpy': '2.4.4', 'onnx': '1.21.0', 'onnxruntime': '1.26.0', 'torch': '2.11.0+cpu'}, platform {'system': 'Linux', 'release': '6.8.0-137-generic', 'machine': 'x86_64', 'platform': 'Linux-6.8.0-137-generic-x86_64-with-glibc2.39'}, python {'version': '3.12.3', 'implementation': 'CPython', 'sys_version': '3.12.3 (main, Jun 19 2026, 12:46:00) [GCC 13.3.0]'} |
| |
| ```bash |
| matrixai verify . # integrity + rebuild the dataset |
| matrixai verify . --retrain # …and train again (slow) |
| matrixai verify . --json # same report, machine readable |
| ``` |
| |
| **What you should see:** `manifest PASS` and `R1 PASS`. With `--retrain`, also `training PASS`. `R3` reports `INCOMPARABLE` unless the package publishes metrics with their tolerance — that is a missing datum, not a failure. |
| |
| Exit codes: `0` nothing failed · `2` something does not match · `3` it could not be checked. |
| |
| ## Verifying integrity |
| |
| ```python |
| import json |
| with open("model_manifest.json") as f: |
| manifest = json.load(f) |
| assert manifest["model_hash"] == "mxai_fdbe5973e98a1123" |
| assert manifest["parameter_schema_hash"] == "params_e0a02353b5d9884e" |
| ``` |
| |