class_docstr: A module which performs QKV attention. Matches legacy QKVAttention + input/output heads shaping
class_docstr_tok: ["A","module","which","performs","QKV","attention",".","Matches","legacy","QKVAttention","+","input\/output","heads","shaping"]
code: def __init__(self, n_heads):
      super().__init__()
      self.n_heads = n_heads
      from einops import rearrange
  
      self.rearrange = rearrange
  
imports: from abc import abstractmethod
  import math
  import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  from .fp16_util import convert_module_to_f16, convert_module_to_f32
  from .nn import checkpoint, conv_nd, linear, avg_pool_nd, zero_module, normalization, timestep_embedding
label_desc: Use image node_id 1 to create a new QKVAttentionLegacy object from inherited base classes: nn with example: obj = QKVAttentionLegacy(n_heads)