class_docstr: An abstract representation class utilizing PyTorch Geometric message passing layers.
  
  It comprises:
      * base (entity) representations, which can also be passed as hints
      * a sequence of message passing layers. They are utilized in an abstract
        :meth:`MessagePassingRepresentation._message_passing` to enrich the base representations
        by neighborhood information.
      * a sequence of activation layers in between the message passing layers.
      * an `edge_index` buffer, which stores the edge index and is moved to the device alongside
        the module.
docstr: Perform the message passing steps.
  
  :param x: shape: `(n, d_in)`
      the base entity representations
  :param edge_index: shape: `(num_selected_edges,)`
      the edge index (which may already be a selection of the full edge index)
  :param edge_mask: shape: `(num_edges,)`
      an edge mask if message passing is restricted
  
  :return: shape: `(n, d_out)`
      the enriched entity representations
docstr_tok: ["Perform","the","message","passing","steps",".",":","param","x",":","shape",":","`","(","n",",","d_in",")","`","the","base","entity","representations",":","param","edge_index",":","shape",":","`","(","num_selected_edges",",",")","`","the","edge","index","(","which","may","already","be","a","selection","of","the","full","edge","index",")",":","param","edge_mask",":","shape",":","`","(","num_edges",",",")","`","an","edge","mask","if","message","passing","is","restricted",":","return",":","shape",":","`","(","n",",","d_out",")","`","the","enriched","entity","representations"]
code: def pass_messages(
      self,
      x: torch.FloatTensor,
      edge_index: torch.LongTensor,
      edge_mask: Optional[torch.BoolTensor] = None,
  ) -> torch.FloatTensor:
      """
      Perform the message passing steps.
  
      :param x: shape: `(n, d_in)`
          the base entity representations
      :param edge_index: shape: `(num_selected_edges,)`
          the edge index (which may already be a selection of the full edge index)
      :param edge_mask: shape: `(num_edges,)`
          an edge mask if message passing is restricted
  
      :return: shape: `(n, d_out)`
          the enriched entity representations
      """
      raise NotImplementedError
  
imports: from abc import ABC, abstractmethod
  from typing import Collection, Literal, Optional, Sequence
  import torch
  from class_resolver import ClassResolver, HintOrType, OneOrManyHintOrType, OneOrManyOptionalKwargs, OptionalKwargs
  from class_resolver.contrib.torch import activation_resolver
  from docdata import parse_docdata
  from torch import nn
  from .representation import Representation
  from .utils import ShapeError
  from ..triples.triples_factory import CoreTriplesFactory
  from ..typing import OneOrSequence
  from ..utils import get_edge_index, upgrade_to_sequence
label_desc: Use image node_id 3 for calling the MessagePassingRepresentation obj's underlying member method code with example usage: obj.pass_messages(x, edge_index, edge_mask) without return types