code: def make_args():
      args = type("Args", (), {})  # A fake ArgumentParser.parse_args()
      args.max_num_objects = 4
      args.num_real_detections = 13
      args.num_fake_detections = 3
      args.expected_num_objects = 2
      args.init_noise_scale = 0.1
  
      # TODO Is it correct to detach gradients of assignments?
      # Detaching is indeed required for the Hessian to be block-diagonal,
      # but it is unclear whether convergence would be faster if we applied
      # a blockwise method (Newton) to the full Hessian, without detaching.
      args.assignment_grad = False
  
      return args
  
imports: import logging
  import math
  import pytest
  import torch
  from torch.distributions import constraints
  import pyro
  import pyro.distributions
  import pyro.poutine
  from pyro.contrib.tracking.assignment import MarginalAssignment
  from pyro.infer import SVI, TraceEnum_ELBO
  from pyro.optim import Adam
  from pyro.optim.multi import MixedMultiOptimizer, Newton
label_desc: Use image node_id 1 for calling a global function with example usage: make_args() and returns: args