class_docstr: Inception-v1 I3D architecture.
  The model is introduced in:
      Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset
      Joao Carreira, Andrew Zisserman
      https://arxiv.org/pdf/1705.07750v1.pdf.
  See also the Inception architecture, introduced in:
      Going deeper with convolutions
      Christian Szegedy, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott Reed,
      Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke, Andrew Rabinovich.
      http://arxiv.org/pdf/1409.4842v1.pdf.
class_docstr_tok: ["Inception-v1","I3D","architecture",".","The","model","is","introduced","in",":","Quo","Vadis",",","Action","Recognition","?","A","New","Model","and","the","Kinetics","Dataset","Joao","Carreira",",","Andrew","Zisserman","https",":","\/\/arxiv.org\/pdf\/1705.07750v1.pdf",".","See","also","the","Inception","architecture",",","introduced","in",":","Going","deeper","with","convolutions","Christian","Szegedy",",","Wei","Liu",",","Yangqing","Jia",",","Pierre","Sermanet",",","Scott","Reed",",","Dragomir","Anguelov",",","Dumitru","Erhan",",","Vincent","Vanhoucke",",","Andrew","Rabinovich",".","http",":","\/\/arxiv.org\/pdf\/1409.4842v1.pdf","."]
docstr: The output is the result of the final average pooling layer with 1024 dimensions.
docstr_tok: ["The","output","is","the","result","of","the","final","average","pooling","layer","with","1024","dimensions","."]
code: def forward(self, x):
      """The output is the result of the final average pooling layer with 1024 dimensions."""
  
      # x = self._modules["Conv3d_1a_7x7"](x)  # out: [2, 64, 1, 112, 112]
      # x = self._modules["MaxPool3d_2a_3x3"](x)  # [2, 64, 1, 56, 56]
      # x = self._modules["Conv3d_2b_1x1"](x)  # [2, 64, 1, 56, 56]
      # x = self._modules["Conv3d_2c_3x3"](x)  # [2, 192, 1, 56, 56]
      # x = self._modules["MaxPool3d_3a_3x3"](x)  # [2, 192, 1, 28, 28]
      # x = self._modules["Mixed_3b"](x)  # [2, 256, 1, 28, 28]
      # x = self._modules["Mixed_3c"](x)  # [2, 480, 1, 28, 28]
      # x = self._modules["MaxPool3d_4a_3x3"](x)  # [2, 480, 1, 14, 14]
      # x = self._modules["Mixed_4b"](x)  # [2, 512, 1, 14, 14]
      # x = self._modules["Mixed_4c"](x)  # [2, 512, 1, 14, 14]
      # x = self._modules["Mixed_4d"](x)  # [2, 512, 1, 14, 14]
      # x = self._modules["Mixed_4e"](x)  # [2, 528, 1, 14, 14]
      # x = self._modules["Mixed_4f"](x)  # [2, 832, 1, 14, 14]
      # x = self._modules["MaxPool3d_5a_2x2"](x)  # [2, 832, 1, 7, 7]
      # x = self._modules["Mixed_5b"](x)  # [2, 832, 1, 7, 7]
      # x = self._modules["Mixed_5c"](x)  # [2, 1024, 1, 7, 7]
  
      for end_point in self.VALID_ENDPOINTS:
          if end_point in self.end_points:
              x = self._modules[end_point](
                  x
              )  # use _modules to work with dataparallel
  
      x = self.avg_pool(x)
      # logits = self.logits(self.dropout(x))
      if self._spatial_squeeze:
          x = x.squeeze(3).squeeze(3)
      # x is batch X time X classes, which is what we want to work with
      return x
  
imports: import torch
  import torch.nn
  import torch.nn.functional
  from torch.hub import load_state_dict_from_url
label_desc: Use image node_id 4 for calling the InceptionI3d obj's underlying member method code with example usage: obj.forward(x) and returns: x