docstr: Generic resnet video generator.
  
  Args:
      block (nn.Module): resnet building block
      conv_makers (list(functions)): generator function for each layer
      layers (List[int]): number of blocks per layer
      stem (nn.Module, optional): Resnet stem, if None, defaults to conv-bn-relu. Defaults to None.
      num_classes (int, optional): Dimension of the final FC layer. Defaults to 400.
      zero_init_residual (bool, optional): Zero init bottleneck residual BN. Defaults to False.
docstr_tok: ["Generic","resnet","video","generator",".","Args",":","block","(","nn.Module",")",":","resnet","building","block","conv_makers","(","list","(","functions",")",")",":","generator","function","for","each","layer","layers","(","List","[","int","]",")",":","number","of","blocks","per","layer","stem","(","nn.Module",",","optional",")",":","Resnet","stem",",","if","None",",","defaults","to","conv-bn-relu",".","Defaults","to","None",".","num_classes","(","int",",","optional",")",":","Dimension","of","the","final","FC","layer",".","Defaults","to","400.","zero_init_residual","(","bool",",","optional",")",":","Zero","init","bottleneck","residual","BN",".","Defaults","to","False","."]
code: def __init__(
      self,
      block,
      conv_makers,
      layers,
      stem,
      num_classes=400,
      zero_init_residual=False,
  ):
      """Generic resnet video generator.
  
      Args:
          block (nn.Module): resnet building block
          conv_makers (list(functions)): generator function for each layer
          layers (List[int]): number of blocks per layer
          stem (nn.Module, optional): Resnet stem, if None, defaults to conv-bn-relu. Defaults to None.
          num_classes (int, optional): Dimension of the final FC layer. Defaults to 400.
          zero_init_residual (bool, optional): Zero init bottleneck residual BN. Defaults to False.
      """
      super(VideoResNet, self).__init__()
      self.inplanes = 64
  
      self.stem = stem()
  
      self.layer1 = self._make_layer(
          block, conv_makers[0], 64, layers[0], stride=1
      )
      self.layer2 = self._make_layer(
          block, conv_makers[1], 128, layers[1], stride=2
      )
      self.layer3 = self._make_layer(
          block, conv_makers[2], 256, layers[2], stride=2
      )
      self.layer4 = self._make_layer(
          block, conv_makers[3], 512, layers[3], stride=2
      )
  
      self.avgpool = nn.AdaptiveAvgPool3d((1, 1, 1))
      self.fc = nn.Linear(512 * block.expansion, num_classes)
  
      # init weights
      self._initialize_weights()
  
      if zero_init_residual:
          for m in self.modules():
              if isinstance(m, Bottleneck):
                  nn.init.constant_(m.bn3.weight, 0)
  
imports: import torch.nn
  from torch.hub import load_state_dict_from_url
label_desc: Use image node_id 1 to create a new VideoResNet object from inherited base classes: nn with example: obj = VideoResNet(block, conv_makers, layers, stem, num_classes, zero_init_residual)