class_docstr: Variance Adaptor with an added 1D conv layer. Used to
  get energy embeddings.
  
  Args:
      channels_in (int): Number of in channels for conv layers.
      channels_out (int): Number of out channels.
      kernel_size (int): Size the kernel for the conv layers.
      dropout (float): Probability of dropout.
      lrelu_slope (float): Slope for the leaky relu.
      emb_kernel_size (int): Size the kernel for the pitch embedding.
  
  Inputs: inputs, mask
      - **inputs** (batch, time1, dim): Tensor containing input vector
      - **target** (batch, 1, time2): Tensor containing the energy target
      - **dr** (batch, time1): Tensor containing aligner durations vector
      - **mask** (batch, time1): Tensor containing indices to be masked
  Returns:
      - **energy prediction** (batch, 1, time1): Tensor produced by energy predictor
      - **energy embedding** (batch, channels, time1): Tensor produced energy adaptor
      - **average energy target(train only)** (batch, 1, time1): Tensor produced after averaging over durations
docstr: Shapes:
      x: :math: `[B, T_src, C]`
      target: :math: `[B, 1, T_max2]`
      dr: :math: `[B, T_src]`
      mask: :math: `[B, T_src]`
code: def get_energy_embedding_train(
      self,
      x: torch.Tensor,
      target: torch.Tensor,
      dr: torch.IntTensor,
      mask: torch.Tensor,
  ) -> Tuple[torch.Tensor, torch.Tensor, torch.Tensor]:
      """
      Shapes:
          x: :math: `[B, T_src, C]`
          target: :math: `[B, 1, T_max2]`
          dr: :math: `[B, T_src]`
          mask: :math: `[B, T_src]`
      """
      energy_pred = self.energy_predictor(x, mask)
      energy_pred.unsqueeze_(1)
      avg_energy_target = average_over_durations(target, dr)
      energy_emb = self.energy_emb(avg_energy_target)
      return energy_pred, avg_energy_target, energy_emb
  
file_path: TTS/TTS/tts/layers/delightful_tts/energy_adaptor.py
imports: from typing import Callable, Tuple
  import torch
  import torch.nn
  from TTS.tts.layers.delightful_tts.variance_predictor import VariancePredictor
  from TTS.tts.utils.helpers import average_over_durations
label_desc: Use image node_id 2 for calling the EnergyAdaptor obj's underlying member method code with example usage: obj.get_energy_embedding_train(x, target, dr, mask) and returns: energy_pred,  avg_energy_target,  energy_emb