code: def test_gc_complex(self):
      a = Tensor(np.zeros((4, 4), dtype=np.float32), requires_grad=True)
      b = Tensor(np.zeros((4, 4), dtype=np.float32), requires_grad=True)
      assert tensors_allocated() == 2
      (a * b).mean().backward()
      assert tensors_allocated() == 4
      del b
      assert tensors_allocated() == 2
      b = Tensor(np.zeros((4, 4), dtype=np.float32), requires_grad=True)
      print(tensors_allocated())
      (a * b).mean().backward()
      print(tensors_allocated())
      assert tensors_allocated() == 4
      del b
      assert tensors_allocated() == 2
  
file_path: tinygrad/test/test_gc.py
imports: import gc
  import unittest
  import numpy
  from tinygrad.tensor import Tensor
label_desc: Use image node_id 2 for calling the TestGC obj's underlying member method code with example usage: obj.test_gc_complex() without return types