class_docstr: Point-wise feed-forward layer is implemented by two dense layers.
  
  Args:
      input_tensor (torch.Tensor): the input of the point-wise feed-forward layer
  
  Returns:
      hidden_states (torch.Tensor): the output of the point-wise feed-forward layer
class_docstr_tok: ["Point-wise","feed-forward","layer","is","implemented","by","two","dense","layers",".","Args",":","input_tensor","(","torch.Tensor",")",":","the","input","of","the","point-wise","feed-forward","layer","Returns",":","hidden_states","(","torch.Tensor",")",":","the","output","of","the","point-wise","feed-forward","layer"]
code: def __init__(
      self,
      hidden_size,
      inner_size,
      hidden_dropout_prob,
      hidden_act,
      layer_norm_eps,
  ):
      super(FeedForward, self).__init__()
      self.dense_1 = nn.Linear(hidden_size, inner_size)
      self.intermediate_act_fn = self.get_hidden_act(hidden_act)
  
      self.dense_2 = nn.Linear(inner_size, hidden_size)
      self.LayerNorm = nn.LayerNorm(hidden_size, eps=layer_norm_eps)
      self.dropout = nn.Dropout(hidden_dropout_prob)
  
imports: import random
  import numpy
  import torch
  from torch import nn
  import torch.nn.functional
  import math
  import torch.nn.functional
  from recbole.model.abstract_recommender import SequentialRecommender
  from recbole.model.loss import BPRLoss
  from recbole.data.interaction import Interaction
label_desc: Use image node_id 1 to create a new FeedForward object from inherited base classes: nn with example: obj = FeedForward(hidden_size, inner_size, hidden_dropout_prob, hidden_act, layer_norm_eps)