class_docstr: This head defines a 3d average pooling layer (:class:`torch.nn.AvgPool3d` or
  :class:`torch.nn.AdaptiveAvgPool3d` if pool_size is None) followed by a fully
  convolutional linear layer. This layer performs a fully-connected projection
  during training, when the input size is 1x1x1.
  It performs a convolutional projection during testing when the input size
  is larger than 1x1x1.
class_docstr_tok: ["This","head","defines","a","3d","average","pooling","layer","(",":","class",":","`","torch.nn.AvgPool3d","`","or",":","class",":","`","torch.nn.AdaptiveAvgPool3d","`","if","pool_size","is","None",")","followed","by","a","fully","convolutional","linear","layer",".","This","layer","performs","a","fully-connected","projection","during","training",",","when","the","input","size","is","1x1x1",".","It","performs","a","convolutional","projection","during","testing","when","the","input","size","is","larger","than","1x1x1","."]
code: def forward(self, x):
      out = self.final_avgpool(x)
      if hasattr(self, "dropout"):
          out = self.dropout(out)
      out = self.head_fcl(out)
      return out
  
file_path: ClassyVision/classy_vision/heads/fully_convolutional_linear_head.py
imports: from collections.abc import Sequence
  from typing import Any, Dict, List, Optional
  import torch.nn
  from classy_vision.generic.util import is_pos_int
  from classy_vision.heads import ClassyHead, register_head
label_desc: Use image node_id 3 for calling the FullyConvolutionalLinearHead obj's underlying member method code with example usage: obj.forward(x) and returns: out