code: def compute_values(edge_compatibility, v):
      """Compute values. If edge compatibilities is just adjacency, we get ggnn.
  
      Args:
        edge_compatibility: A tensor of shape [batch, num_transforms, length, depth]
        v: A tensor of shape [batch, num_transforms, length, depth]
  
      Returns:
        output: A [batch, length, depth] tensor
      """
  
      # Computes the incoming value vectors for each node by weighting them
      # according to the attention weights. These values are still segregated by
      # edge type.
      # Shape = [B, T, N, V].
      all_edge_values = tf.matmul(tf.to_float(edge_compatibility), v)
  
      # Combines the weighted value vectors together across edge types into a
      # single N x V matrix for each batch.
      output = tf.reduce_sum(
          all_edge_values, axis=1
      )  # Shape [B, N, V].
      return output
  
file_path: tensor2tensor/tensor2tensor/layers/message_passing_attention.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from tensor2tensor.layers import common_attention
  from tensor2tensor.layers import common_layers
  from tensor2tensor.utils import expert_utils
  import tensorflow.compat.v1
label_desc: Use image node_id 11 for calling a global function with example usage: compute_values(edge_compatibility, v) and returns: output