code: def test_normalize(device, tmpdir):
      fn = T.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))
      tensor, _ = _create_data(26, 34, device=device)
  
      with pytest.raises(
          TypeError, match="Input tensor should be a float tensor"
      ):
          fn(tensor)
  
      batch_tensors = torch.rand(4, 3, 44, 56, device=device)
      tensor = tensor.to(dtype=torch.float32) / 255.0
      # test for class interface
      scripted_fn = torch.jit.script(fn)
  
      _test_transform_vs_scripted(fn, scripted_fn, tensor)
      _test_transform_vs_scripted_on_batch(
          fn, scripted_fn, batch_tensors
      )
  
      scripted_fn.save(os.path.join(tmpdir, "t_norm.pt"))
  
imports: import os
  import sys
  import numpy
  import PIL.Image
  import pytest
  import torch
  from common_utils import _assert_approx_equal_tensor_to_pil, _assert_equal_tensor_to_pil, _create_data, _create_data_batch, assert_equal, cpu_and_cuda, float_dtypes, get_tmp_dir, int_dtypes
  from torchvision import transforms
  from torchvision.transforms import functional, InterpolationMode
  from torchvision.transforms.autoaugment import _apply_op
label_desc: Use image node_id 39 for calling a global function with example usage: test_normalize(device, tmpdir) without return types