unicorn who dev
Complete FireViewer Android learning SDK, source and verification records
dee7f43 verified Download conversion/check_dfine_final.py from fireviewer/litert-models: direct link, hf CLI and curl.
- Browser
- Download file 1.75 kB
-
https://huggingface.co/fireviewer/litert-models/resolve/main/conversion/check_dfine_final.py
- Command line
-
hf download hf://fireviewer/litert-models/conversion/check_dfine_final.py
-
curl -L -o check_dfine_final.py https://huggingface.co/fireviewer/litert-models/resolve/main/conversion/check_dfine_final.py
1.75 kB
| import json,hashlib | |
| from pathlib import Path | |
| import onnxruntime as ort,numpy as np | |
| from ai_edge_litert.interpreter import Interpreter,OpResolverType | |
| r=Path('/workspace/vds-litert-batch2');d=r/'learning-backbones/fireviewer_dfine_m_strict_v1';p=d/'model-protected.tflite' | |
| options=ort.SessionOptions();options.intra_op_num_threads=6 | |
| ref=ort.InferenceSession(str(d/'raw-onnx/raw-original.onnx'),sess_options=options,providers=['CPUExecutionProvider']) | |
| i=Interpreter(model_path=str(p),num_threads=6,experimental_op_resolver_type=OpResolverType.BUILTIN_WITHOUT_DEFAULT_DELEGATES);i.allocate_tensors();errors=[] | |
| for seed in (842,843,844): | |
| x=np.random.default_rng(seed).uniform(0,1,(1,3,704,704)).astype(np.float32) | |
| reference=ref.run(None,{'images':x});i.set_tensor(i.get_input_details()[0]['index'],x);i.invoke() | |
| for expected,detail in zip(reference,i.get_output_details()): | |
| actual=i.get_tensor(detail['index']);np.testing.assert_allclose(actual,expected,atol=2e-3,rtol=2e-3);errors.append(float(np.max(np.abs(actual-expected)))) | |
| report={'key':'fireviewer_dfine_m_strict_v1','phase':'validated_frozen_component','upstream_onnx_parity_passed':True,'backbone':str(p),'source_sha256':hashlib.sha256((r/'models/upstream/fireviewer_dfine_m_strict_v1/model.onnx').read_bytes()).hexdigest(),'sha256':hashlib.sha256(p.read_bytes()).hexdigest(),'input_shape':[1,3,704,704],'outputs':[{'index':n,'shape':list(map(int,o['shape']))} for n,o in enumerate(i.get_output_details())],'max_abs_errors':errors,'seeds':[842,843,844],'atol':2e-3,'rtol':2e-3,'preserve_all_tensors':False,'arena_protection':json.loads((d/'arena-protection.json').read_text())} | |
| (d/'parity.json').write_text(json.dumps(report,indent=2)+'\n');print(json.dumps(report),flush=True) | |