code: def test_structure_6(backend):
      I, J = 2, 3
  
      def model():
          i_plate = pyro.plate("i", I, dim=-1)
          j_plate = pyro.plate("j", J, dim=-2)
          with i_plate:
              w = pyro.sample("w", dist.Normal(0, 1))
          with j_plate:
              x = pyro.sample("x", dist.Normal(0, 1))
          with i_plate, j_plate:
              y = pyro.sample("y", dist.Normal(w, x.exp()))
              pyro.sample("z", dist.Normal(1, 1), obs=y)
  
      # size = 2 + 3 + 2 * 3 = 2 + 3 + 6 = 11
      structure = [
          "? . ? ? ? ? . ? . ? .",
          ". ? ? ? ? . ? . ? . ?",
          "? ? ? . . ? ? . . . .",
          "? ? . ? . . . ? ? . .",
          "? ? . . ? . . . . ? ?",
          "? . ? . . ? . . . . .",
          ". ? ? . . . ? . . . .",
          "? . . ? . . . ? . . .",
          ". ? . ? . . . . ? . .",
          "? . . . ? . . . . ? .",
          ". ? . . ? . . . . . ?",
      ]
      if backend == "funsor":
          check_backends_agree(model)
      else:
          check_structure(model, structure)
  
imports: from collections import OrderedDict, namedtuple
  import pytest
  import torch
  import pyro
  import pyro.distributions
  import pyro.poutine
  from pyro.infer import SVI, JitTrace_ELBO, Predictive, Trace_ELBO
  from pyro.infer.autoguide import AutoGaussian, AutoGuideList
  from pyro.infer.autoguide.gaussian import AutoGaussianDense, AutoGaussianFunsor, _break_plates
  from pyro.infer.reparam import LocScaleReparam
  from pyro.optim import ClippedAdam
  from tests.common import assert_close, assert_equal, xfail_if_not_implemented
label_desc: Use image node_id 11 for calling a global function with example usage: test_structure_6(backend) without return types