def METHOD_NAME(
    outs: te.Tensor,
    ins: typing.List[te.Tensor],
    transform_activation_layout: str,
    transform_weights: str,
):
    """
    Schedule for quantized depthwise conv2d for input layout nhwc-8h8w32c
    assert len(ins) == 2, "This schedule expects only 2 inputs - Activations and Weights
    """
    source_expr = ins + [outs]
    prim_func = tvm.te.create_prim_func(source_expr)
    sch = tvm.tir.Schedule(prim_func)
    compute = sch.get_block("output")
    compute1 = sch.get_block("t1")
    transform_layout_fn = get_layout_transform_fn(transform_activation_layout)
    transform_layout_weights = get_layout_transform_fn(transform_weights)
    # Apply layout_transform for activation
    sch.transform_layout(compute1, ins[0].name, transform_layout_fn)
    # Apply layout_transform for weights
    sch.transform_layout(compute1, ins[1].name, transform_layout_weights)
    # Apply layout_transform for output
    sch.transform_layout(compute, outs.name, transform_layout_fn)
    # This returns the original 6d loop
    batch, height, width, channel, reduce_height, reduce_width = sch.get_loops(compute1)
    h_outer, h_inner = sch.split(height, [None, 8])
    w_outer, w_inner = sch.split(width, [None, 8])
    c_outer, c_inner = sch.split(channel, [None, 32])
    sch.reorder(
        batch,
        h_outer,
        w_outer,
        c_outer,
        h_inner,
        reduce_height,
        reduce_width,
        w_inner,
        c_inner,
    )
    sch.decompose_reduction(compute1, reduce_height)
    # wi_ci = sch.fuse(w_inner,c_inner)
    # sch.vectorize(wi_ci)
    return sch