code: def forward(self, inputs):
      inputs = [
          x.constituency if isinstance(x, SentimentDatum) else x
          for x in inputs
      ]
  
      embedding = self.tree_embedding.embed_trees(inputs)
      previous_layer = torch.stack(
          [torch.max(x, dim=0)[0] for x in embedding], dim=0
      )
      previous_layer = self.dropout(previous_layer)
      for fc in self.fc_layers[:-1]:
          # relu cause many neuron die
          previous_layer = self.dropout(F.gelu(fc(previous_layer)))
      out = self.fc_layers[-1](previous_layer)
      return out
  
file_path: stanza/stanza/models/classifiers/constituency_classifier.py
imports: import logging
  from types import SimpleNamespace
  import torch
  import torch.nn
  import torch.nn.functional
  from stanza.models.classifiers.base_classifier import BaseClassifier
  from stanza.models.classifiers.data import SentimentDatum
  from stanza.models.classifiers.utils import ModelType, build_output_layers
  from stanza.models.common.utils import split_into_batches, sort_with_indices, unsort
label_desc: Use image node_id 4 for calling the ConstituencyClassifier obj's underlying member method code with example usage: obj.forward(inputs) and returns: out