RuntimeError: bad input shape for polyadic operator: {2,64,96,128}, {18,64,96,128}

参考  https://github.com/megvii-research/CREStereo/issues/32

把相关部分替代一下即可。

注意缩进,不然就会IndentationError: unexpected indent

    def get_correlation(self, left_feature, right_feature, psize=(3, 3), dilate=(1, 1)):

        N, C, H, W = left_feature.shape

        di_y, di_x = dilate[0], dilate[1]
        pady, padx = psize[0] // 2 * di_y, psize[1] // 2 * di_x
        right_pad = F.pad(right_feature, pad_width=(
            (0, 0), (0, 0), (pady, pady), (padx, padx)), mode="replicate")
        right_slid = F.sliding_window(
            right_pad, kernel_size=(H, W), stride=(di_y, di_x))  # N, C, 1, 9, H, W
        right_slid = right_slid.reshape(N, C, -1, H, W)  # N, C, 9, H, W
        right_slid = F.transpose(right_slid, (0, 2, 1, 3, 4))  # N, 9, C, H, W

        # This is buggy when trying to train with batch size larger than 1
        # right_slid = right_slid.reshape(-1, C, H, W)  # N * 9, C, H, W
        # corr_mean = F.mean(left_feature * right_slid, axis=1, keepdims=True)  # 9, N, H, W
        # corr_final = corr_mean.reshape(1, -1, H, W)  # N, 9, H, W

        Nr, num_slides, Cr, Hr, Wr = right_slid.shape

        corr_list = []
        for slide_idx in range(0, num_slides):
            right_crop = right_slid[:, slide_idx, :, :, :]
            assert right_crop.shape == left_feature.shape
            corr = F.mean(left_feature * right_crop, axis=1, keepdims=True)
            corr_list.append(corr)

        corr_final = F.concat(corr_list, axis=1)  # N, 9, H, W

        return corr_final

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值