class_docstr: Temporal point process model based on a recurrent neural network.
  
  Parameters
  ----------
  num_marks
      Number of discrete marks (correlated processes), that are available
      in the data.
  interval_length
      The length of the total time interval that is in the prediction
      range. Note that in contrast to discrete-time models in the rest
      of GluonTS, the network is trained to predict an interval, in
      continuous time.
  time_distr_output
      Output distribution for the inter-arrival times. Available
      distributions can be found in gluonts.model.tpp.distribution.
  embedding_dim
      Dimension of vector embeddings of marks (used only as input).
  num_hidden_dimensions
      Number of hidden units in the RNN.
  output_scale
      Positive scaling applied to the inter-event times. You should provide
      this argument if the average inter-arrival time is much larger than 1.
  apply_log_to_rnn_inputs
      Apply logarithm to inter-event times that are fed into the RNN.
class_docstr_tok: ["Temporal","point","process","model","based","on","a","recurrent","neural","network",".","Parameters","--","--","--","--","--","num_marks","Number","of","discrete","marks","(","correlated","processes",")",",","that","are","available","in","the","data",".","interval_length","The","length","of","the","total","time","interval","that","is","in","the","prediction","range",".","Note","that","in","contrast","to","discrete-time","models","in","the","rest","of","GluonTS",",","the","network","is","trained","to","predict","an","interval",",","in","continuous","time",".","time_distr_output","Output","distribution","for","the","inter-arrival","times",".","Available","distributions","can","be","found","in","gluonts.model.tpp.distribution",".","embedding_dim","Dimension","of","vector","embeddings","of","marks","(","used","only","as","input",")",".","num_hidden_dimensions","Number","of","hidden","units","in","the","RNN",".","output_scale","Positive","scaling","applied","to","the","inter-event","times",".","You","should","provide","this","argument","if","the","average","inter-arrival","time","is","much","larger","than","1.","apply_log_to_rnn_inputs","Apply","logarithm","to","inter-event","times","that","are","fed","into","the","RNN","."]
code: def __init__(
      self,
      num_marks: int,
      interval_length: float,
      time_distr_output: TPPDistributionOutput = distribution.WeibullOutput(),  # noqa: E501
      embedding_dim: int = 5,
      num_hidden_dimensions: int = 10,
      output_scale: Optional[Tensor] = None,
      apply_log_to_rnn_inputs: bool = True,
      **kwargs,
  ) -> None:
      super().__init__(**kwargs)
  
      self.num_marks = num_marks
      self.interval_length = interval_length
      self.rnn_hidden_size = num_hidden_dimensions
      self.output_scale = output_scale
      self.apply_log_to_rnn_inputs = apply_log_to_rnn_inputs
  
      with self.name_scope():
          self.embedding = mx.gluon.nn.Embedding(
              input_dim=num_marks, output_dim=embedding_dim
          )
          self.rnn = mx.gluon.rnn.GRU(
              num_hidden_dimensions,
              input_size=embedding_dim + 1,
              layout="NTC",
          )
          # Conditional distribution over the inter-arrival times
          self.time_distr_output = time_distr_output
          self.time_distr_args_proj = (
              self.time_distr_output.get_args_proj()
          )
          # Conditional distribution over the marks
          if num_marks > 1:
              self.mark_distr_output = CategoricalOutput(num_marks)
              self.mark_distr_args_proj = (
                  self.mark_distr_output.get_args_proj()
              )
  
file_path: gluonts/src/gluonts/mx/model/tpp/deeptpp/_network.py
imports: from typing import List, Optional, Tuple
  import mxnet
  import numpy
  from mxnet import nd
  from gluonts.core.component import validated
  from gluonts.mx.model.tpp import distribution
  from gluonts.mx.model.tpp.distribution.base import TPPDistributionOutput
  from gluonts.mx import Tensor
  from gluonts.mx.distribution import CategoricalOutput
label_desc: Use image node_id 1 to create a new DeepTPPNetworkBase object from inherited base classes: mx.gluon with example: obj = DeepTPPNetworkBase(num_marks, interval_length, time_distr_output, embedding_dim, num_hidden_dimensions, output_scale, apply_log_to_rnn_inputs)