class_docstr: The residual connection is defined in VivitLayer instead of here (as is the case with other models), due to the
  layernorm applied before each block.
class_docstr_tok: ["The","residual","connection","is","defined","in","VivitLayer","instead","of","here","(","as","is","the","case","with","other","models",")",",","due","to","the","layernorm","applied","before","each","block","."]
code: def __init__(self, config: VivitConfig) -> None:
      super().__init__()
      self.dense = nn.Linear(config.hidden_size, config.hidden_size)
      self.dropout = nn.Dropout(config.hidden_dropout_prob)
  
imports: import math
  from typing import Optional, Set, Tuple, Union
  import torch
  import torch.utils.checkpoint
  from torch import nn
  from torch.nn import CrossEntropyLoss, MSELoss
  from ...activations import ACT2FN
  from ...modeling_outputs import BaseModelOutput, BaseModelOutputWithPooling, ImageClassifierOutput
  from ...modeling_utils import PreTrainedModel
  from ...pytorch_utils import find_pruneable_heads_and_indices, prune_linear_layer
  from ...utils import add_start_docstrings, add_start_docstrings_to_model_forward, logging, replace_return_docstrings
  from .configuration_vivit import VivitConfig
label_desc: Use image node_id 1 to create a new VivitSelfOutput object from inherited base classes: nn with example: obj = VivitSelfOutput(config)