code: def __call__(self, x):
      x = self.conv1(x)
      x = x.max_pool2d(2)
      x = x.float()
      x = self.norm1(x)
      x = x.cast(dtypes.default_float)
      x = x.quick_gelu()
      residual = x
      x = self.conv2(x)
      x = x.float()
      x = self.norm2(x)
      x = x.cast(dtypes.default_float)
      x = x.quick_gelu()
  
      return x + residual
  
file_path: tinygrad/examples/hlb_cifar10.py
imports: import random, time
  import numpy
  from typing import Optional
  from extra.datasets import fetch_cifar, cifar_mean, cifar_std
  from tinygrad import nn, dtypes, Tensor, Device, GlobalCounters, TinyJit
  from tinygrad.nn.state import get_state_dict, get_parameters
  from tinygrad.nn import optim
  from extra.lr_scheduler import OneCycleLR
  from tinygrad.helpers import Context, getenv
label_desc: Use image node_id 2 for calling the ConvGroup obj's underlying member method code with example usage: obj.__call__(x) and returns: unknown