code: def test_broken_plates_smoke(backend):
      def model():
          with pyro.plate("i", 2):
              a = pyro.sample("a", dist.Normal(0, 1))
          pyro.sample(
              "b", dist.Normal(a.mean(-1), 1), obs=torch.tensor(0.0)
          )
  
      guide = AutoGaussian(model, backend=backend)
      svi = SVI(model, guide, ClippedAdam({"lr": 1e-8}), Trace_ELBO())
      for step in range(2):
          with xfail_if_not_implemented():
              svi.step()
      guide()
      predictive = Predictive(model, guide=guide, num_samples=2)
      predictive()
  
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 14 for calling a global function with example usage: test_broken_plates_smoke(backend) without return types