class_docstr: This code is refered from:
      https://github.com/MhLiao/DB/blob/master/decoders/feature_attention.py
class_docstr_tok: ["This","code","is","refered","from",":","https",":","\/\/github.com\/MhLiao\/DB\/blob\/master\/decoders\/feature_attention.py"]
code: def forward(self, fuse_features, features_list):
      fuse_features = self.conv(fuse_features)
      spatial_x = paddle.mean(fuse_features, axis=1, keepdim=True)
      attention_scores = self.spatial_scale(spatial_x) + fuse_features
      attention_scores = self.channel_scale(attention_scores)
      assert len(features_list) == self.out_features_num
  
      out_list = []
      for i in range(self.out_features_num):
          out_list.append(
              attention_scores[:, i : i + 1] * features_list[i]
          )
      return paddle.concat(out_list, axis=1)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import paddle
  from paddle import nn
  import paddle.nn.functional
  from paddle import ParamAttr
  import os
  import sys
  from ppocr.modeling.necks.intracl import IntraCLBlock
  from ppocr.modeling.backbones.det_mobilenet_v3 import SEModule
label_desc: Use image node_id 2 for calling the ASFBlock obj's underlying member method code with example usage: obj.forward(fuse_features, features_list) and returns: paddle