code: def __init__(
      self,
      output_size: int,
      batch_first: bool = False,
      trainable: bool = False,
  ):
      super().__init__()
      self.output_size = output_size
      self.batch_first = batch_first
      self.trainable = trainable
      if self.trainable:
          self.mask = nn.Parameter(
              torch.zeros(self.output_size, dtype=torch.float32)
          )
          self.gate = nn.Sigmoid()
  
imports: from typing import Dict, List, Optional, Tuple, Union
  import torch
  import torch.nn
  import torch.nn.functional
  from darts.logging import get_logger
  from darts.utils.torch import MonteCarloDropout
label_desc: Use image node_id 1 to create a new _TimeDistributedInterpolation object from inherited base classes: nn with example: obj = _TimeDistributedInterpolation(output_size, batch_first, trainable)