class_docstr: Aggregate the context features according to the initial
  predicted probability distribution.
  Employ the soft-weighted method to aggregate the context.
  
  Output:
    The correlation of every class map with every feature map
    shape = [n, num_feats, num_classes, 1]
class_docstr_tok: ["Aggregate","the","context","features","according","to","the","initial","predicted","probability","distribution",".","Employ","the","soft-weighted","method","to","aggregate","the","context",".","Output",":","The","correlation","of","every","class","map","with","every","feature","map","shape","=","[","n",",","num_feats",",","num_classes",",","1","]"]
code: def forward(self, feats, probs):
      probs = paddle.flatten(probs, 2, 3)
      feats = paddle.flatten(feats, 2, 3)
      feats = feats.transpose((0, 2, 1))
      probs = F.softmax(self.scale * probs, axis=2)
      ocr_context = paddle.matmul(probs, feats)
      ocr_context = ocr_context.transpose((0, 2, 1)).unsqueeze(3)
      return ocr_context
  
imports: import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddleseg.models import layers
  from paddleseg.utils import utils
  from paddleseg.cvlibs import manager, param_init
label_desc: Use image node_id 2 for calling the SpatialGatherModule obj's underlying member method code with example usage: obj.forward(feats, probs) and returns: ocr_context