예제 #1
0
    def forward(
        ctx, input1, input2, pad_size=3, kernel_size=3, max_displacement=20, stride1=1, stride2=2, corr_multiply=1
    ):
        ctx.save_for_backward(input1, input2)

        ctx.pad_size = pad_size
        ctx.kernel_size = kernel_size
        ctx.max_displacement = max_displacement
        ctx.stride1 = stride1
        ctx.stride2 = stride2
        ctx.corr_multiply = corr_multiply

        with torch.cuda.device_of(input1):
            rbot1 = input1.new()
            rbot2 = input2.new()
            output = input1.new()

            correlation_cuda.forward(
                input1,
                input2,
                rbot1,
                rbot2,
                output,
                ctx.pad_size,
                ctx.kernel_size,
                ctx.max_displacement,
                ctx.stride1,
                ctx.stride2,
                ctx.corr_multiply,
            )

        return output
예제 #2
0
파일: correlation.py 프로젝트: zyg11/SSVD
    def forward(self, input1, input2):
        self.save_for_backward(input1, input2)
        with torch.cuda.device_of(input1):
            rbot1 = input1.new()
            rbot2 = input2.new()
            output = input1.new()

            correlation_cuda.forward(input1, input2, rbot1, rbot2, output,
                self.pad_size, self.kernel_size, self.max_displacement,self.stride1, self.stride2, self.corr_multiply)

        return output
예제 #3
0
    def forward(ctx, input1, input2, pad, kernel, max_d, stride1, stride2, corr_m):
        ctx.save_for_backward(input1, input2)
        ctx.arg = pad, kernel, max_d, stride1, stride2, corr_m

        rbot1 = torch.empty_like(input1)
        rbot2 = torch.empty_like(input2)
        output = torch.empty_like(input1)

        correlation_cuda.forward(input1, input2, rbot1, rbot2, output,
                                 pad, kernel, max_d, stride1, stride2, corr_m)

        return output
예제 #4
0
    def forward(self, input1, input2):
        self.save_for_backward(input1, input2)

        rbot1 = torch.empty_like(input1)
        rbot2 = torch.empty_like(input2)
        output = torch.empty_like(input1)

        correlation_cuda.forward(input1, input2, rbot1, rbot2, output,
                                 self.pad_size, self.kernel_size,
                                 self.max_displacement, self.stride1,
                                 self.stride2, self.corr_multiply)

        return output
예제 #5
0
파일: correlation.py 프로젝트: gvvad/DAIN
    def forward(ctx, input1, input2, params):
        ctx.save_for_backward(input1, input2)

        with torch.cuda.device_of(input1):
            rbot1 = input1.new()
            rbot2 = input2.new()
            output = input1.new()

            correlation_cuda.forward(
                input1, input2, rbot1, rbot2,
                output,
                params.pad_size, params.kernel_size, params.max_displacement, params.stride1, params.stride2,
                params.corr_multiply
            )

        return output
예제 #6
0
    def forward(self, input1, input2):

        self.save_for_backward(input1, input2)
        kH, kW = self.kernel_size
        patchH, patchW = self.patch_size
        padH, padW = self.padding
        dilation_patchH, dilation_patchW = self.dilation_patch
        dH, dW = self.stride

        output = correlation_cuda.forward(
            input1,
            input2,
            kH,
            kW,
            patchH,
            patchW,
            padH,
            padW,
            dilation_patchH,
            dilation_patchW,
            dH,
            dW,
        )

        return output
예제 #7
0
    def forward(ctx, input1, input2, pad_size, kernel_size, max_displacement,
                stride1, stride2, corr_multiply):

        ctx.save_for_backward(input1, input2)
        ctx.pad_size, ctx.kernel_size, ctx.max_displacement, ctx.stride1, ctx.stride2, ctx.corr_multiply =\
            pad_size, kernel_size, max_displacement, stride1, stride2, corr_multiply

        with torch.cuda.device_of(input1):
            rbot1 = input1.new()
            rbot2 = input2.new()
            output = input1.new()

            #correlation_cuda.forward(input1, input2, rbot1, rbot2, output,
            #    self.pad_size, self.kernel_size, self.max_displacement,self.stride1, self.stride2, self.corr_multiply)
            correlation_cuda.forward(input1, input2, rbot1, rbot2, output,
                                     ctx.pad_size, ctx.kernel_size,
                                     ctx.max_displacement, ctx.stride1,
                                     ctx.stride2, ctx.corr_multiply)

        return output
예제 #8
0
    def forward(ctx, input1, input2, param_dict):
        ctx.save_for_backward(input1, input2)

        ctx.pad_size = param_dict["pad_size"]
        ctx.kernel_size = param_dict["kernel_size"]
        ctx.max_disp = param_dict["max_disp"]
        ctx.stride1 = param_dict["stride1"]
        ctx.stride2 = param_dict["stride2"]
        ctx.corr_multiply = param_dict["corr_multiply"]

        with torch.cuda.device_of(input1):
            rbot1 = input1.new()
            rbot2 = input2.new()
            output = input1.new()

            correlation_cuda.forward(input1, input2, rbot1, rbot2, output,
                                     ctx.pad_size, ctx.kernel_size,
                                     ctx.max_disp, ctx.stride1, ctx.stride2,
                                     ctx.corr_multiply)

        return output