class_docstr: Given a list of tensors, perform optional spatio-temporal pool and concatenate the
      tensors along the channel dimension.
class_docstr_tok: ["Given","a","list","of","tensors",",","perform","optional","spatio-temporal","pool","and","concatenate","the","tensors","along","the","channel","dimension","."]
code: def forward(self, x: List[torch.Tensor]) -> torch.Tensor:
      if self.pool is not None:
          assert len(x) == len(self.pool)
      output = []
      for ind in range(len(x)):
          if x[ind] is not None:
              if self.pool is not None and self.pool[ind] is not None:
                  x[ind] = self.pool[ind](x[ind])
              output.append(x[ind])
      if self.retain_list:
          return [torch.cat(output, 1)]
      else:
          return torch.cat(output, 1)
  
imports: from typing import Callable, List, Optional, Tuple, Union
  import torch
  import torch.nn
  from pytorchvideo.layers.utils import set_attributes
  from pytorchvideo.models.head import create_res_basic_head, create_res_roi_pooling_head
  from pytorchvideo.models.net import DetectionBBoxNetwork, MultiPathWayWithFuse, Net
  from pytorchvideo.models.resnet import create_bottleneck_block, create_res_stage
  from pytorchvideo.models.stem import create_res_basic_stem
label_desc: Use image node_id 2 for calling the PoolConcatPathway obj's underlying member method code with example usage: obj.forward(x) and returns: list, torch