The tutorials give examples of how to scheduling models created by tvm code, like the following:
n = tvm.var(“n”)
A = tvm.placeholder((n,), name=‘A’)
B = tvm.placeholder((n,), name=‘B’)
C = tvm.compute(A.shape, lambda i: A[i] + B[i], name=“C”)
s = tvm.create_schedule(C.op)
But models are usually imported from mxnet, tensorflow etc. Like the following:
from mxnet.gluon.model_zoo.vision import get_model
block = get_model(‘resnet18_v1’, pretrained=True)
shape_dict = {‘data’: x.shape}
func, params = relay.frontend.from_mxnet(block, shape_dict)
I want to schedule the model layer by layer differently, for example different layer with different split. But the func is not a ComputeOp object needed by tvm.create_schedule(). How to do this layer by layer schedule?