-
Notifications
You must be signed in to change notification settings - Fork 3.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Relay][Frontend] Span Filling TensorFlow 1 #13728
Conversation
chunit-quic
commented
Jan 9, 2023
- Set node name as the source name of span during the conversion of Tensorflow1 model
- Add structural_equal comparison with and without set_span to the existing test cases.
- Add span test cases for frequent conversions.
- Set node name as the source name of span during the conversion of Tensorflow1 model - Add structural_equal comparison with and without set_span to the existing test cases. - Add span test cases for frequent conversions.
Thanks for contributing to TVM! Please refer to the contributing guidelines https://tvm.apache.org/docs/contribute/ for useful information and tips. Please request code reviews from Reviewers by @-ing them in a comment.
Generated by tvm-bot |
Hi community, For your reference, here is the related links. |
- Set node name as the source name of span during the conversion of Tensorflow1 model - Add structural_equal comparison with and without set_span to the existing test cases. - Add span test cases for frequent conversions. Co-authored-by: Joey Tsai <chunit@qti.qualcomm.com>
@chunit-quic Thank you for your work,I want to ask you a question, I tested the tests/python/frontend/tensorflow/test_forward.py::test_forward_dynmaic_rnn_lstmblockcell and report error , I found that unnecessary let nodes will be generated after turning on set_span, It is difficult for me to debug and locate the reason why set_span will change the structure of relay ir . |
Hi @xiaolong18 Thank you for your information. Currently we are doing some urgent projects, and perhaps we can only get back to here at the end of October. But we might give you some hints about this problem. we saw some duplicated ops are generated in the pytorch frontend before. We handle this kind of problems via invoke set_span directy inside this kind of op conversions, like the Hope it could give you clues to do some more investigation. Please feel free to ping us, yet it might take some time for us to get back to you. :D Thank, |
@chunit-quic I tried to build a test case and discovered this problem. as you say , I feel that the main reason for this problem is that when multiple consumers consume the same provider, the consumers are directly unaware of each other, so they may build the provider repeatedly. I imitated ci's test case and built an example with a similar structure: let_0_relu = relay.nn.relu(let, 0) let_0_relu_new =set_span(relay.nn.relu(let_0), "aa") Thanks! |
Hi @xiaolong18
Yes, that’s exactly how we handle this kind of problem. We will recommend fixing it this way.
Somehow it should be fine. Yet it might not be a good choice. Generally, using global variable is not desirable. Besides, the map cannot be declared in Thanks, |