class_docstr: The fast attention that uses a projection matrix
  from the `"Rethinking Attention with Performers"
  <https://arxiv.org/abs/2009.14794>`_ paper. This class
  projects :math:`\mathbf{Q}` and :math:`\mathbf{K}` matrices
  with specified kernel.
  
  Args:
      num_cols (int): Projection matrix number of columns.
      kernel (Callable, optional): Kernels for generalized attention.
          If not specified, `ReLU` kernel will be used.
          (default: :obj:`torch.nn.ReLU()`)
class_docstr_tok: ["The","fast","attention","that","uses","a","projection","matrix","from","the","`","``","Rethinking","Attention","with","Performers","''","<","https",":","\/\/arxiv.org\/abs\/2009.14794",">","`","_","paper",".","This","class","projects",":","math",":","`","\\mathbf","{","Q","}","`","and",":","math",":","`","\\mathbf","{","K","}","`","matrices","with","specified","kernel",".","Args",":","num_cols","(","int",")",":","Projection","matrix","number","of","columns",".","kernel","(","Callable",",","optional",")",":","Kernels","for","generalized","attention",".","If","not","specified",",","`","ReLU","`","kernel","will","be","used",".","(","default",":",":","obj",":","`","torch.nn.ReLU","(",")","`",")"]
code: def forward(self, q: Tensor, k: Tensor, v: Tensor) -> Tensor:
      q = generalized_kernel(q, self.projection_matrix, self.kernel)
      k = generalized_kernel(k, self.projection_matrix, self.kernel)
      out = linear_attention(q, k, v)
      return out
  
file_path: pytorch_geometric/torch_geometric/nn/attention/performer.py
imports: import math
  from typing import Callable, Optional
  import torch
  from torch import Tensor
label_desc: Use image node_id 2 for calling the PerformerProjection obj's underlying member method code with example usage: obj.forward(q, k, v) and returns: out