code: def test_gradcheck(self, device, dtype):
      inp = torch.randn((1, 1, 7, 7, 7), device=device, dtype=dtype)
      src_box = torch.tensor(
          [
              [
                  [1.0, 1.0, 1.0],
                  [3.0, 1.0, 1.0],
                  [3.0, 3.0, 1.0],
                  [1.0, 3.0, 1.0],
                  [1.0, 1.0, 2.0],
                  [3.0, 1.0, 2.0],
                  [3.0, 3.0, 2.0],
                  [1.0, 3.0, 2.0],
              ]
          ],
          device=device,
          dtype=dtype,
      )  # 1x8x3
      dst_box = torch.tensor(
          [
              [
                  [0.0, 0.0, 0.0],
                  [1.0, 0.0, 0.0],
                  [1.0, 1.0, 0.0],
                  [0.0, 1.0, 0.0],
                  [0.0, 0.0, 1.0],
                  [1.0, 0.0, 1.0],
                  [1.0, 1.0, 1.0],
                  [0.0, 1.0, 1.0],
              ]
          ],
          device=device,
          dtype=dtype,
      )  # 1x8x3
  
      inp = utils.tensor_to_gradcheck_var(
          inp, requires_grad=True
      )  # to var
  
      assert gradcheck(
          kornia.geometry.transform.crop_by_boxes3d,
          (inp, src_box, dst_box),
          raise_exception=True,
          fast_mode=True,
      )
  
imports: import pytest
  import torch
  from torch.autograd import gradcheck
  import kornia
  import kornia.testing
  from kornia.testing import assert_close
  from kornia.utils._compat import torch_version
label_desc: Use image node_id 4 for calling the TestCropByBoxes3D obj's underlying member method code with example usage: obj.test_gradcheck(device, dtype) without return types