Questions about start_pack when run bert on vta

I was trying to run pretrained bert model on vta(pynq). I have tried resnet-18 and yolov3 tiny according to the document, which are all successful. But when I tried bert, I have some questions.

  1. For the function graph_pack, I can’t understand what this function is for. How to set the start_pack and the stop_pack is also confusing.I found that in the yolov3 example, it set the start_name_idx = 4 and stop_name_idx=186, why they don’t choose from the frist to the end.

  2. I found that in bert’s ir module, the first node is “cast” and the last is “tanh”, but when I set the start_pack=cast and end_pack=“tanh”, the program said this:

    Traceback (most recent call last): File “/root/github/tvm/vta/python/vta/top/graphpack.py”, line 517, in _recursion _recursion(anf.body, start_found, stop_found, operator_current_idx), File “/root/github/tvm/vta/python/vta/top/graphpack.py”, line 517, in _recursion _recursion(anf.body, start_found, stop_found, operator_current_idx), File “/root/github/tvm/vta/python/vta/top/graphpack.py”, line 517, in _recursion _recursion(anf.body, start_found, stop_found, operator_current_idx), [Previous line repeated 996 more times] File “/root/github/tvm/vta/python/vta/top/graphpack.py”, line 528, in _recursion assert stop_found AssertionError

  3. In short, my aim is to know how to set the start_pack and end_pack parameters when I want to run a new model on vta.