File size: 1,752 Bytes
dee7f43
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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)