class_docstr: Self-attention module with groups that has a regressive component.
class_docstr_tok: ["Self-attention","module","with","groups","that","has","a","regressive","component","."]
code: def _compute_qkv(
      self, value: Tensor, shape: Tensor, estimate: Tensor
  ) -> Tuple[Tensor, Tensor, Tensor, Tensor]:
      q, k, v = super(CompositeAttention, self)._compute_qkv(
          value, shape
      )
      v = v.roll(-1, dim=2)
      e = self._split_head(e)
      return q, k, v, e
  
imports: from typing import Tuple, Optional
  import math
  import torch
  from torch import Tensor, BoolTensor
  from torch import nn
  from torch.nn import init
  from torch.nn.functional import linear, conv1d
  from .base import Attention
  from .posemb import SinusoidalPositionalEmbedding
label_desc: Use image node_id 1 for calling the CompositeAttention obj's underlying member method code with example usage: obj._compute_qkv(value, shape, estimate) and returns: q,  k,  v,  e