Jupiterghy opened a new issue, #16819: URL: https://github.com/apache/tvm/issues/16819
I have encountered an issue while using the relay.transform.DivToMul() optimization in TVM. I don’t know why there exists an inconsistency. I think the two methods should yield the same result while actually not. ### Expected behavior The modules after transformation should be structural equal. ### Actual behavior The two transformed modules (module and module_once) are not structurally equal. ### Environment - Operating System: Ubuntu 18.04.5 - TVM version: 0.15.dev0 - ONNX: 1.15.0 ### Steps to reproduce 1. Download the [ONNX model](https://github.com/Jupiterghy/onnx_model/blob/main/1.onnx) 2. Execute the script: ```python import onnx import tvm from tvm import relay def apply_optimizations(module, opt, num_iterations=1): for _ in range(num_iterations): module = opt(module) return module if __name__ == "__main__": onnx_file = "model.onnx" onnx_model = onnx.load(onnx_file) shape_dict = {'v25_0': [1, 1, 1], 'v4_0': [12, 2, 45, 1, 1], 'v19_0': [12, 1, 45, 1, 1], 'v15_0': [12, 1, 45, 1, 1], 'v14_0': [12, 52, 45, 1, 1]} mod, params = relay.frontend.from_onnx(onnx_model, shape_dict, freeze_params=True) opt = relay.transform.DivToMul() module = opt(mod) module_once = apply_optimizations(mod, opt, num_iterations=1) assert tvm.ir.structural_equal(module, module_once) ``` ### Triage * needs-triage -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
