code: def avg_pool(
      cluster: Tensor,
      data: Data,
      transform: Optional[Callable] = None,
  ) -> Data:
      r"""Pools and coarsens a graph given by the
      :class:`torch_geometric.data.Data` object according to the clustering
      defined in :attr:`cluster`.
      Final node features are defined by the *average* features of all nodes
      within the same cluster.
      See :meth:`torch_geometric.nn.pool.max_pool` for more details.
  
      Args:
          cluster (torch.Tensor): The cluster vector
              :math:`\mathbf{c} \in \{ 0, \ldots, N - 1 \}^N`, which assigns each
              node to a specific cluster.
          data (Data): Graph data object.
          transform (callable, optional): A function/transform that takes in the
              coarsened and pooled :obj:`torch_geometric.data.Data` object and
              returns a transformed version. (default: :obj:`None`)
  
      :rtype: :class:`torch_geometric.data.Data`
      """
      cluster, perm = consecutive_cluster(cluster)
  
      x = None if data.x is None else _avg_pool_x(cluster, data.x)
      index, attr = pool_edge(cluster, data.edge_index, data.edge_attr)
      batch = (
          None if data.batch is None else pool_batch(perm, data.batch)
      )
      pos = None if data.pos is None else pool_pos(cluster, data.pos)
  
      data = Batch(
          batch=batch, x=x, edge_index=index, edge_attr=attr, pos=pos
      )
  
      if transform is not None:
          data = transform(data)
  
      return data
  
file_path: pytorch_geometric/torch_geometric/nn/pool/avg_pool.py
imports: from typing import Callable, Optional, Tuple
  from torch import Tensor
  from torch_geometric.data import Batch, Data
  from torch_geometric.nn.pool.consecutive import consecutive_cluster
  from torch_geometric.nn.pool.pool import pool_batch, pool_edge, pool_pos
  from torch_geometric.utils import add_self_loops, scatter
label_desc: Use image node_id 3 for calling a global function with example usage: avg_pool(cluster, data, transform) and returns: data