class_docstr: Dictionary-like object to hold a vectorized collection of tensors to
  represent all state during inference with :class:`SMCFilter`. During
  inference, the :class:`SMCFilter` resample these tensors.
  
  Keys may have arbitrary hashable type.
  Values must be :class:`torch.Tensor` s.
  
  :param int num_particles:
code: def __init__(self, num_particles):
      assert isinstance(num_particles, int) and num_particles > 0
      super().__init__()
      self._num_particles = num_particles
      self._log_weights = torch.zeros(num_particles)
      self._locked = False
  
imports: import contextlib
  import math
  import torch
  import pyro
  import pyro.distributions
  import pyro.poutine
  from pyro.infer.util import is_validation_enabled
  from pyro.poutine.util import prune_subsample_sites
label_desc: Use image node_id 1 to create a new SMCState object from inherited base classes: dict with example: obj = SMCState(num_particles)