docstr: :param inputs: The input vector fed into the encoder.
      Shape: [batch x DATE_INPUT_SIZE], type torch.int8
  :type inputs: Tensor
docstr_tok: [":","param","inputs",":","The","input","vector","fed","into","the","encoder",".","Shape",":","[","batch","x","DATE_INPUT_SIZE","]",",","type","torch.int8",":","type","inputs",":","Tensor"]
code: def forward(self, inputs: torch.Tensor) -> EncoderOutputDict:
      """
      :param inputs: The input vector fed into the encoder.
          Shape: [batch x DATE_INPUT_SIZE], type torch.int8
      :type inputs: Tensor
      """
      # ================ Embeddings ================
      input_vector = inputs.type(torch.float)
      scaled_year = self.year_fc(input_vector[:, 0:1])
      periodic_month = torch_utils.periodic(input_vector[:, 1:2], 12)
      periodic_day = torch_utils.periodic(input_vector[:, 2:3], 31)
      periodic_weekday = torch_utils.periodic(input_vector[:, 3:4], 7)
      periodic_yearday = torch_utils.periodic(input_vector[:, 4:5], 366)
      periodic_hour = torch_utils.periodic(input_vector[:, 5:6], 24)
      periodic_minute = torch_utils.periodic(input_vector[:, 6:7], 60)
      periodic_second = torch_utils.periodic(input_vector[:, 7:8], 60)
      periodic_second_of_day = torch_utils.periodic(
          input_vector[:, 8:9], 86400
      )
  
      hidden = torch.cat(
          [
              scaled_year,
              periodic_month,
              periodic_day,
              periodic_weekday,
              periodic_yearday,
              periodic_hour,
              periodic_minute,
              periodic_second,
              periodic_second_of_day,
          ],
          dim=1,
      )
  
      # ================ FC Stack ================
      # logger.debug('  flatten hidden: {0}'.format(hidden))
  
      hidden = self.fc_stack(hidden)
      return {ENCODER_OUTPUT: hidden}
  
imports: import logging
  from typing import Dict, List, Optional, Type
  import torch
  from ludwig.api_annotations import DeveloperAPI
  from ludwig.constants import DATE, ENCODER_OUTPUT
  from ludwig.encoders.base import Encoder
  from ludwig.encoders.registry import register_encoder
  from ludwig.encoders.types import EncoderOutputDict
  from ludwig.modules.embedding_modules import Embed
  from ludwig.modules.fully_connected_modules import FCStack
  from ludwig.schema.encoders.base import BaseEncoderConfig
  from ludwig.schema.encoders.date_encoders import DateEmbedConfig, DateWaveConfig
  from ludwig.utils import torch_utils
label_desc: Use image node_id 2 for calling the DateWave obj's underlying member method code with example usage: obj.forward(inputs) and returns: dict