After spending some time in the forums there seems to be some interest in implementing unsupported operators in TensorFlow. However, I have been unable to find a concise description on how to do that. My current understanding is as follows:
The operations are defined in the TensorFlow front end (python/tvm/relay/frontend/tensorflow.py) lines 1315-1425 based on a set of existing primitives. These define the Graph-level front end.
If the operation can not be expressed through the existing primitives then new code is added in that file. This is covered in the Adding an Operator to Relay document. Is this correct?
Finally, the new operator may also need to be defined in the TOPI (topi/python/topi) to describe the schedule. I assume that the schedule is defined for each HW target.
Since I need to implement quite a few operators I volunteer to document the entire process so we can add a Tutorial on this topic.
Any help is really appreciated.