@@ -722,10 +722,10 @@ def perspective(
722
722
return _apply_grid_transform (img , grid , interpolation , fill = fill )
723
723
724
724
725
- def _get_gaussian_kernel1d (kernel_size : int , sigma : float ) -> Tensor :
725
+ def _get_gaussian_kernel1d (kernel_size : int , sigma : float , dtype : torch . dtype , device : torch . device ) -> Tensor :
726
726
ksize_half = (kernel_size - 1 ) * 0.5
727
727
728
- x = torch .linspace (- ksize_half , ksize_half , steps = kernel_size )
728
+ x = torch .linspace (- ksize_half , ksize_half , steps = kernel_size , dtype = dtype , device = device )
729
729
pdf = torch .exp (- 0.5 * (x / sigma ).pow (2 ))
730
730
kernel1d = pdf / pdf .sum ()
731
731
@@ -735,8 +735,8 @@ def _get_gaussian_kernel1d(kernel_size: int, sigma: float) -> Tensor:
735
735
def _get_gaussian_kernel2d (
736
736
kernel_size : List [int ], sigma : List [float ], dtype : torch .dtype , device : torch .device
737
737
) -> Tensor :
738
- kernel1d_x = _get_gaussian_kernel1d (kernel_size [0 ], sigma [0 ]). to ( device , dtype = dtype )
739
- kernel1d_y = _get_gaussian_kernel1d (kernel_size [1 ], sigma [1 ]). to ( device , dtype = dtype )
738
+ kernel1d_x = _get_gaussian_kernel1d (kernel_size [0 ], sigma [0 ], dtype , device )
739
+ kernel1d_y = _get_gaussian_kernel1d (kernel_size [1 ], sigma [1 ], dtype , device )
740
740
kernel2d = torch .mm (kernel1d_y [:, None ], kernel1d_x [None , :])
741
741
return kernel2d
742
742
0 commit comments