class_docstr: S3D main class.
  
  Args:
      num_class (int): number of classes for the classification task.
      dropout (float): dropout probability.
      norm_layer (Optional[Callable]): Module specifying the normalization layer to use.
  
  Inputs:
      x (Tensor): batch of videos with dimensions (batch, channel, time, height, width)
class_docstr_tok: ["S3D","main","class",".","Args",":","num_class","(","int",")",":","number","of","classes","for","the","classification","task",".","dropout","(","float",")",":","dropout","probability",".","norm_layer","(","Optional","[","Callable","]",")",":","Module","specifying","the","normalization","layer","to","use",".","Inputs",":","x","(","Tensor",")",":","batch","of","videos","with","dimensions","(","batch",",","channel",",","time",",","height",",","width",")"]
code: def forward(self, x):
      x = self.features(x)
      x = self.avgpool(x)
      x = self.classifier(x)
      x = torch.mean(x, dim=(2, 3, 4))
      return x
  
imports: from functools import partial
  from typing import Any, Callable, Optional
  import torch
  from torch import nn
  from torchvision.ops.misc import Conv3dNormActivation
  from ...transforms._presets import VideoClassification
  from ...utils import _log_api_usage_once
  from .._api import register_model, Weights, WeightsEnum
  from .._meta import _KINETICS400_CATEGORIES
  from .._utils import _ovewrite_named_param, handle_legacy_interface
label_desc: Use image node_id 2 for calling the S3D obj's underlying member method code with example usage: obj.forward(x) and returns: x