code: def test_conv(self):
      x = Tensor.rand(1, 3, 16, 16)
      c = Conv2d(3, 16, (3, 3))
      si = c(x).elu().lazydata.schedule()[-1]
      lin = Linearizer(si.ast)
      lin.hand_coded_optimizations()
      uops = lin.linearize().uops
      graph_uops(uops)
      print(lin.colored_shape())
      print(OpenCLRenderer("conv", uops)[0])
  
file_path: tinygrad/test/external/external_test_uops_graphing.py
imports: import unittest
  from tinygrad.tensor import Tensor
  from tinygrad.codegen.linearizer import Linearizer
  from tinygrad.renderer.cstyle import OpenCLRenderer
  from tinygrad.graph import graph_uops
  from tinygrad.nn import Conv2d
label_desc: Use image node_id 3 for calling the TestUopsGraph obj's underlying member method code with example usage: obj.test_conv() without return types