code: def test_smoke(self, shape, kernel_size, separable, device, dtype):
      B, C, H, W = shape
      inpt = torch.rand(B, C, H, W, device=device, dtype=dtype)
      sigma_tensor = torch.rand(B, 2, device=device, dtype=dtype)
  
      actual_A = gaussian_blur2d(
          inpt, kernel_size, sigma_tensor, "reflect", separable
      )
      assert isinstance(actual_A, torch.Tensor)
      assert actual_A.shape == shape
  
      sigma = tuple(sigma_tensor[0, ...].cpu().numpy().tolist())
      actual_B = gaussian_blur2d(
          inpt, kernel_size, sigma, "reflect", separable
      )
      assert isinstance(actual_B, torch.Tensor)
      assert actual_B.shape == shape
  
      # Just the first item of the batch use the same sigma
      self.assert_close(actual_A[0, ...], actual_B[0, ...])
  
imports: import pytest
  import torch
  from kornia.filters import GaussianBlur2d, gaussian_blur2d, get_gaussian_discrete_kernel1d, get_gaussian_erf_kernel1d, get_gaussian_kernel1d, get_gaussian_kernel2d, get_gaussian_kernel3d
  from kornia.testing import BaseTester, assert_close, tensor_to_gradcheck_var
label_desc: Use image node_id 1 for calling the TestGaussianBlur2d obj's underlying member method code with example usage: obj.test_smoke(shape, kernel_size, separable, device, dtype) without return types