def METHOD_NAME(self, x):
    bsz_num_heads, tgt_len, src_len = x.size()
    stride = self.pre_decision_ratio
    weight = F.pad(torch.ones(1, 1, 1).to(x), (stride - 1, 0))
    x_upsample = F.conv_transpose1d(
        x.view(-1, src_len).unsqueeze(1),
        weight,
        stride=stride,
        padding=0,
    )
    return x_upsample.squeeze(1).view(bsz_num_heads, tgt_len, -1)