class_docstr: Base class for aggregating features.
  
  Typically, the aggregated features and their masks are output by `ViewSampler`
  which samples feature tensors extracted from a set of source images.
  
  Settings:
      exclude_target_view: If `True`/`False`, enables/disables pooling
          from target view to itself.
      exclude_target_view_mask_features: If `True`,
          mask the features from the target view before aggregation
      concatenate_output: If `True`,
          concatenate the aggregated features into a single tensor,
          otherwise return a dictionary mapping feature names to tensors.
class_docstr_tok: ["Base","class","for","aggregating","features",".","Typically",",","the","aggregated","features","and","their","masks","are","output","by","`","ViewSampler","`","which","samples","feature","tensors","extracted","from","a","set","of","source","images",".","Settings",":","exclude_target_view",":","If","`","True","`","\/","`","False","`",",","enables\/disables","pooling","from","target","view","to","itself",".","exclude_target_view_mask_features",":","If","`","True","`",",","mask","the","features","from","the","target","view","before","aggregation","concatenate_output",":","If","`","True","`",",","concatenate","the","aggregated","features","into","a","single","tensor",",","otherwise","return","a","dictionary","mapping","feature","names","to","tensors","."]
docstr: Specifies whether the aggregator reduces the output `reduce_dim` dimension to 1.
  
  Returns:
      has_aggregation: `True` if `reduce_dim==1`, else `False`.
docstr_tok: ["Specifies","whether","the","aggregator","reduces","the","output","`","reduce_dim","`","dimension","to","1",".","Returns",":","has_aggregation",":","`","True","`","if","`","reduce_dim==1","`",",","else","`","False","`","."]
code: def has_aggregation(self) -> bool:
      """
      Specifies whether the aggregator reduces the output `reduce_dim` dimension to 1.
  
      Returns:
          has_aggregation: `True` if `reduce_dim==1`, else `False`.
      """
      return hasattr(self, "reduction_functions")
  
imports: from abc import ABC, abstractmethod
  from enum import Enum
  from typing import Dict, Optional, Sequence, Tuple, Union
  import torch
  import torch.nn.functional
  from pytorch3d.implicitron.models.view_pooler.view_sampler import cameras_points_cartesian_product
  from pytorch3d.implicitron.tools.config import registry, ReplaceableBase
  from pytorch3d.ops import wmean
  from pytorch3d.renderer.cameras import CamerasBase
label_desc: Use image node_id 3 for calling the FeatureAggregatorBase obj's underlying member method code with example usage: obj.has_aggregation() and returns: hasattr