code: def adjust_block_compatibility(ws, bs, gs):
      """Adjusts the compatibility of widths, bottlenecks, and groups."""
      assert len(ws) == len(bs) == len(gs)
      assert all(
          w > 0 and b > 0 and g > 0 for w, b, g in zip(ws, bs, gs)
      )
      vs = [int(max(1, w * b)) for w, b in zip(ws, bs)]
      gs = [int(min(g, v)) for g, v in zip(gs, vs)]
      ms = [np.lcm(g, b) if b > 1 else g for g, b in zip(gs, bs)]
      vs = [max(m, int(round(v / m) * m)) for v, m in zip(vs, ms)]
      ws = [int(v / b) for v, b in zip(vs, bs)]
      assert all(w * b % g == 0 for w, b, g in zip(ws, bs, gs))
      return ws, bs, gs
  
imports: import numpy
  from torch import nn
  from detectron2.layers import CNNBlockBase, ShapeSpec, get_norm
  from .backbone import Backbone
label_desc: Use image node_id 5 for calling a global function with example usage: adjust_block_compatibility(ws, bs, gs) and returns: ws,  bs,  gs