code: def make_example(equation, fill=None, sizes=(2, 3)):
      symbols = sorted(set(equation) - set(",->"))
      sizes = {
          dim: size
          for dim, size in zip(symbols, itertools.cycle(sizes))
      }
      inputs, outputs = equation.split("->")
      inputs = inputs.split(",")
      outputs = outputs.split(",")
      operands = []
      for dims in inputs:
          shape = tuple(sizes[dim] for dim in dims)
          operands.append(
              torch.randn(shape)
              if fill is None
              else torch.full(shape, fill)
          )
      return inputs, outputs, operands, sizes
  
imports: import itertools
  import numbers
  from collections import OrderedDict
  import opt_einsum
  import pytest
  import torch
  import pyro.ops.jit
  from pyro.distributions.util import logsumexp
  from pyro.ops.contract import _partition_terms, contract_tensor_tree, contract_to_tensor, einsum, naive_ubersum, ubersum
  from pyro.ops.einsum.adjoint import require_backward
  from pyro.ops.rings import LogRing
  from pyro.poutine.indep_messenger import CondIndepStackFrame
  from pyro.util import optional
  from tests.common import assert_equal
label_desc: Use image node_id 9 for calling a global function with example usage: make_example(equation, fill, sizes) and returns: inputs,  outputs,  operands,  sizes