code: def test_tiles_split_merge_non_dividable_cuda():
      image = np.random.random((5632, 5120, 3)).astype(np.uint8)
      tiler = ImageSlicer(
          image.shape,
          tile_size=(1280, 1280),
          tile_step=(1280, 1280),
          weight="mean",
      )
      tiles = tiler.split(image)
  
      merger = CudaTileMerger(
          tiler.target_shape,
          channels=image.shape[2],
          weight=tiler.weight,
      )
      for tile, coordinates in zip(tiles, tiler.crops):
          # Integrate as batch of size 1
          merger.integrate_batch(
              tensor_from_rgb_image(tile).unsqueeze(0).float().cuda(),
              [coordinates],
          )
  
      merged = merger.merge()
      merged = rgb_image_from_tensor(
          merged, mean=0, std=1, max_pixel_value=1
      )
      merged = tiler.crop_to_orignal_size(merged)
  
      np.testing.assert_equal(merged, image)
  
file_path: pytorch-toolbelt/tests/test_tiles.py
imports: import numpy
  import torch
  from pytorch_toolbelt.inference.tiles import ImageSlicer, CudaTileMerger
  from pytorch_toolbelt.utils.torch_utils import tensor_from_rgb_image, rgb_image_from_tensor, to_numpy
  from torch import nn
  from torch.utils.data import DataLoader
  import pytest
label_desc: Use image node_id 3 for calling a global function with example usage: test_tiles_split_merge_non_dividable_cuda() without return types