python3 -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install -r requirements.txt
Case: case_03140_seed45116679 (ORT graph optimizations disabled)
output[14]: max_abs=4.022e+04, max_rel=4.022e+12, shape=(1, 21, 24)
output[15]: max_abs=5.190e+02, max_rel=5.120e+10, shape=(32, 21, 24)
Overall: max_abs=4.022e+04, max_rel=4.022e+12
Case: case_00324_seed22816775 (ORT graph optimizations disabled)
output[3]: max_abs=5.022e+18, max_rel=1.000e+00, shape=(51, 1, 1, 1)
Overall: max_abs=5.022e+18, max_rel=1.000e+00
Case: case_03181_seed45441358 (ORT graph optimizations disabled)
output[11]: max_abs=3.352e+00, max_rel=6.005e-01, shape=(1, 135, 17)
output[12]: max_abs=5.664e+00, max_rel=4.489e+00, shape=(57, 45, 17)
Overall: max_abs=5.664e+00, max_rel=4.489e+00
[BUG] The pass "eliminate_shape_op" causes output mismatch
Issue
Running the single pass
eliminate_shape_opwithonnxoptimizer0.4.2 changes numerical outputs.Environment
Repro steps (run from this folder)
eliminate_shape_op_repro.tar.gz
eliminate_shape_op(writesmodel.opt.onnxnext tomodel.onnx):python optimize_model.py --case ./case_03140_seed45116679python diff_test.py --case ./case_03140_seed45116679Expected
eliminate_shape_opshould be semantics-preserving. Applying this pass alone should not change any output values.Differential Test Output Details
Attachments
requirements.txtoptimize_model.pydiff_test.py(runs original and optimized with same oracle inputs; ORT graph optimizations disabled; NaN pairs treated equal)run_optimized_model.py(executes optimized model with oracle inputs)case_03140_seed45116679/,case_00324_seed22816775/,case_03181_seed45441358/(original models, optimized models, and oracle inputs)