AttributeError: module ‘tvm.relay’ has no attribute ‘ir_pass’
from tvm import relay
def make_dataset(graph, size=100):
args = relay.ir_pass.infer_type(graph).params
def create_arr(var):
ttype = var.type_annotation
np_arr = np.random.uniform(-1.0, 1.0, size=ttype.concrete_shape).astype(ttype.dtype)
return tvm.ndarray.array(np_arr)
n, c, h, w = 1, 3, 224, 224
def make_graph(data):
weight = relay.var(“conv_weight”)
out = relay.nn.conv2d(data, weight, kernel_size=(3, 3), padding=(1, 1), channels=c)
out = relay.Function(relay.ir_pass.free_vars(out), out)
Anyone can solve this problem?
import tvm
from tvm import relay
import tvm.relay.testing
from tvm.relay.expr_functor import ExprMutator
class ScheduleConv2d(ExprMutator):
def __init__(self, device):
self.device = device
super().__init__()
def visit_call(self, expr):
visit = super().visit_call(expr)
if expr.op == tvm.relay.op.get("nn.conv2d"):
return relay.annotation.on_device(visit, self.device)
else:
return visit
# def schedule_conv2d_on_gpu(expr):
# sched = ScheduleConv2d(tvm.gpu(0))
# return sched.visit(expr)
def schedule_conv2d_on_gpu(expr):
sched = ScheduleConv2d(tvm.cpu(0))
return sched.visit(expr)
resnet, params = relay.testing.resnet.get_workload()
print(resnet)
# resnet = schedule_conv2d_on_gpu(resnet)
# print(resnet)
resnet = relay.ir_pass.rewrite_annotated_ops(resnet, 0)
print(resnet)
This is a another case…
ok… There had a same post…