def METHOD_NAME(data, ishape, oshape, kshape, layout, name, stride=(2, 2)):
    """a deconv layer that enlarges the feature map"""
    target_shape = (oshape[-2], oshape[-1])
    pad_y = (kshape[0] - 1) // 2
    pad_x = (kshape[1] - 1) // 2
    adj_y = (target_shape[0] + 2 * pad_y - kshape[0]) % stride[0]
    adj_x = (target_shape[1] + 2 * pad_x - kshape[1]) % stride[1]
    if layout == "NCHW":
        kernel_layout = "IOHW"
    elif layout == "NHWC":
        kernel_layout = "HWOI"
    else:
        raise ValueError("Invalid layout: " + layout)
    net = layers.conv2d_transpose(
        data,
        kernel_size=kshape,
        strides=stride,
        channels=oshape[0],
        padding=(pad_y, pad_x),
        output_padding=(adj_y, adj_x),
        data_layout=layout,
        kernel_layout=kernel_layout,
        name=name,
    )
    return net