zhifu gao
2023-03-10 9be8a443d74d68f179de88fff13b4e8424579d7b
funasr/models/pooling/statistic_pooling.py
@@ -82,13 +82,16 @@
    tt = xs_pad.shape[2]
    num_chunk = int(math.ceil(tt / pooling_stride))
    pad = pooling_size // 2
    features = F.pad(xs_pad, (0, 0, pad, pad), "reflect")
    if xs_pad.shape == 4:
        features = F.pad(xs_pad, (0, 0, pad, pad), "reflect")
    else:
        features = F.pad(xs_pad, (pad, pad), "reflect")
    stat_list = []
    for i in range(num_chunk):
        # B x C
        st, ed = i*pooling_stride, i*pooling_stride+pooling_size
        stat = statistic_pooling(features[:, :, st: ed, :], pooling_dim=pooling_dim)
        stat = statistic_pooling(features[:, :, st: ed], pooling_dim=pooling_dim)
        stat_list.append(stat.unsqueeze(2))
    # B x C x T