class_docstr: Abstract base class for forecasting models.
  
  Derived classes must implement the :meth:`model` method.
class_docstr_tok: ["Abstract","base","class","for","forecasting","models",".","Derived","classes","must","implement","the",":","meth",":","`","model","`","method","."]
docstr: Generative model definition.
  
  Implementations must call the :meth:`predict` method exactly once.
  
  Implementations must draw all time-dependent noise inside the
  :meth:`time_plate`. The prediction passed to :meth:`predict` must be a
  deterministic function of noise tensors that are independent over time.
  This requirement is slightly more general than state space models.
  
  :param zero_data: A zero tensor like the input data, but extended to
      the duration of the :meth:`time_plate`. This allows models to
      depend on the shape and device of data but not its value.
  :type zero_data: ~torch.Tensor
  :param covariates: A tensor of covariates with time dimension -2.
  :type covariates: ~torch.Tensor
  :returns: Return value is ignored.
docstr_tok: ["Generative","model","definition",".","Implementations","must","call","the",":","meth",":","`","predict","`","method","exactly","once",".","Implementations","must","draw","all","time-dependent","noise","inside","the",":","meth",":","`","time_plate","`",".","The","prediction","passed","to",":","meth",":","`","predict","`","must","be","a","deterministic","function","of","noise","tensors","that","are","independent","over","time",".","This","requirement","is","slightly","more","general","than","state","space","models",".",":","param","zero_data",":","A","zero","tensor","like","the","input","data",",","but","extended","to","the","duration","of","the",":","meth",":","`","time_plate","`",".","This","allows","models","to","depend","on","the","shape","and","device","of","data","but","not","its","value",".",":","type","zero_data",":","~torch.Tensor",":","param","covariates",":","A","tensor","of","covariates","with","time","dimension","-2.",":","type","covariates",":","~torch.Tensor",":","returns",":","Return","value","is","ignored","."]
code: def model(self, zero_data, covariates):
      """
      Generative model definition.
  
      Implementations must call the :meth:`predict` method exactly once.
  
      Implementations must draw all time-dependent noise inside the
      :meth:`time_plate`. The prediction passed to :meth:`predict` must be a
      deterministic function of noise tensors that are independent over time.
      This requirement is slightly more general than state space models.
  
      :param zero_data: A zero tensor like the input data, but extended to
          the duration of the :meth:`time_plate`. This allows models to
          depend on the shape and device of data but not its value.
      :type zero_data: ~torch.Tensor
      :param covariates: A tensor of covariates with time dimension -2.
      :type covariates: ~torch.Tensor
      :returns: Return value is ignored.
      """
      raise NotImplementedError
  
imports: import logging
  from abc import ABCMeta, abstractmethod
  from contextlib import ExitStack
  import torch
  import torch.nn
  import pyro
  import pyro.distributions
  import pyro.poutine
  from pyro.infer import MCMC, NUTS, SVI, Trace_ELBO
  from pyro.infer.autoguide import AutoNormal, init_to_sample
  from pyro.infer.predictive import _guess_max_plate_nesting
  from pyro.nn.module import PyroModule
  from pyro.optim import DCTAdam
  from .util import MarkDCTParamMessenger, PrefixConditionMessenger, PrefixReplayMessenger, PrefixWarmStartMessenger, reshape_batch, time_reparam_dct, time_reparam_haar
label_desc: Use image node_id 2 for calling the ForecastingModel obj's underlying member method code with example usage: obj.model(zero_data, covariates) without return types