def METHOD_NAME(workload, _):
    """Infer input/output shapes and layouts from a workload and cfg.
    Parameters
    ----------
    workload : tuple
        conv2d workload
    cfg : tuple
        tvm.autotvm config
    Returns
    -------
    Output : [tuple of tuple and str, tuple of tuple and str]
        Input shapes and layouts, and output shapes and layouts
    """
    _, data, kernel, strides, padding, _, _ = workload
    batch_size, in_channel, in_height, in_width = data[1]
    filter_channel, channel_multiplier, k_height, k_width = kernel[1]
    out_channel = filter_channel * channel_multiplier
    out_height = (in_height + 2 * padding[0] - k_height) // strides[0] + 1
    out_width = (in_width + 2 * padding[1] - k_width) // strides[1] + 1
    in_shape = (batch_size, in_channel, in_height, in_width)
    out_shape = (batch_size, out_channel, out_height, out_width)
    in_layout = out_layout = "NCHW"
    return ((in_shape, in_layout),), ((out_shape, out_layout),)