class_docstr: EXPERIMENTAL Assuming the global param store has been populated with params
  defined on a short time window, re-initialize by splicing old params with
  new initial params defined on a longer time window.
class_docstr_tok: ["EXPERIMENTAL","Assuming","the","global","param","store","has","been","populated","with","params","defined","on","a","short","time","window",",","re-initialize","by","splicing","old","params","with","new","initial","params","defined","on","a","longer","time","window","."]
code: def _pyro_param(self, msg):
      store = get_param_store()
      name = msg["name"]
      if name not in store:
          return
  
      if len(msg["args"]) >= 2:
          new = msg["args"][1]
      elif "init_tensor" in msg["kwargs"]:
          new = msg["kwargs"]["init_tensor"]
      else:
          return  # no init tensor specified
  
      if callable(new):
          new = new()
      old = store[name]
      assert new.dim() == old.dim()
      if new.shape == old.shape:
          return
  
      # Splice old (warm start) and new (init) tensors.
      # This only works for time-homogeneous constraints.
      t = transform_to(store._constraints[name])
      new = t.inv(new)
      old = t.inv(old)
      for dim in range(new.dim()):
          if new.size(dim) != old.size(dim):
              break
      assert new.size(dim) > old.size(dim)
      assert new.shape[dim + 1 :] == old.shape[dim + 1 :]
      split = old.size(dim)
      index = (slice(None),) * dim + (slice(split, None),)
      new = torch.cat([old, new[index]], dim=dim)
      store[name] = t(new)
  
imports: import numbers
  from functools import singledispatch
  import torch
  from torch.distributions import transform_to, transforms
  import pyro.distributions
  from pyro.infer.reparam import DiscreteCosineReparam, HaarReparam
  from pyro.poutine.messenger import Messenger
  from pyro.poutine.util import site_is_subsample
  from pyro.primitives import get_param_store
label_desc: Use image node_id 1 for calling the PrefixWarmStartMessenger obj's underlying member method code with example usage: obj._pyro_param(msg) without return types