code: def model(data):
      y = data[:, 0]
      sigma = data[:, 1]
  
      with pyro.plate("data", J):
          eta = pyro.sample(
              "eta", dist.Normal(torch.zeros(J), torch.ones(J))
          )
          mu = pyro.sample(
              "mu", dist.Normal(torch.zeros(1), 10 * torch.ones(1))
          )
          tau = pyro.sample(
              "tau", dist.HalfCauchy(scale=25 * torch.ones(1))
          )
  
          theta = mu + tau * eta
  
          pyro.sample("obs", dist.Normal(theta, sigma), obs=y)
  
file_path: pyro/examples/eight_schools/svi.py
imports: import argparse
  import logging
  import torch
  from data import J, sigma, y
  from torch.distributions import constraints, transforms
  import pyro
  import pyro.distributions
  from pyro.infer import SVI, JitTrace_ELBO, Trace_ELBO
  from pyro.optim import Adam
label_desc: Use image node_id 1 for calling a global function with example usage: model(data) without return types