code: def reduce_axis(
      in_shape: Tuple[int, ...], out_shape: Tuple[int, ...]
  ) -> Tuple[int, ...]:
      assert len(in_shape) == len(
          out_shape
      ), "reduce shapes must have same dimensions"
      return tuple(
          i
          for i, (a, b) in enumerate(zip(in_shape, out_shape))
          if a != b
      )
  
file_path: tinygrad/tinygrad/runtime/ops_cpu.py
imports: import numpy
  from typing import Callable, Dict, Tuple
  from tinygrad.helpers import flat_mv
  from tinygrad.ops import BufferOps, UnaryOps, BinaryOps, TernaryOps, ReduceOps, MovementOps, Op
  from tinygrad.device import Interpreted, Allocator
label_desc: Use image node_id 1 for calling a global function with example usage: reduce_axis(in_shape, out_shape) and returns: tuple