code: def test_instancenorm_3d(self):
      N, C, D, H, W = 20, 5, 3, 10, 10
  
      # create in tinygrad
      layer = InstanceNorm(C)
  
      # create in torch
      with torch.no_grad():
          torch_layer = torch.nn.InstanceNorm3d(C, affine=True).eval()
          torch_layer.weight[:] = torch.tensor(
              layer.weight.numpy(), dtype=torch.float32
          )
          torch_layer.bias[:] = torch.tensor(
              layer.bias.numpy(), dtype=torch.float32
          )
  
      # test
      x = Tensor.randn(N, C, D, H, W)
      z = layer(x)
      torch_x = torch.tensor(x.numpy())
      torch_z = torch_layer(torch_x)
      np.testing.assert_allclose(
          z.numpy(), torch_z.detach().numpy(), atol=5e-3, rtol=5e-3
      )
  
imports: import unittest
  import numpy
  import torch
  from tinygrad import Tensor, Device, TinyJit
  from tinygrad.helpers import CI
  from tinygrad.nn import BatchNorm2d, Conv1d, ConvTranspose1d, Conv2d, ConvTranspose2d, Linear, GroupNorm, LayerNorm, LayerNorm2d, Embedding, InstanceNorm
label_desc: Use image node_id 14 for calling the TestNN obj's underlying member method code with example usage: obj.test_instancenorm_3d() without return types