code: def forward(self, x, targets=None):
      shrink_maps, f = self.binarize(x, return_f=True)
      base_maps = shrink_maps
      cbn_maps = self.cbn_layer(self.up_conv(f), shrink_maps, None)
      cbn_maps = F.sigmoid(cbn_maps)
      if not self.training:
          return {
              "maps": 0.5 * (base_maps + cbn_maps),
              "cbn_maps": cbn_maps,
          }
  
      threshold_maps = self.thresh(x)
      binary_maps = self.step_function(shrink_maps, threshold_maps)
      y = paddle.concat([cbn_maps, threshold_maps, binary_maps], axis=1)
      return {
          "maps": y,
          "distance_maps": cbn_maps,
          "cbn_maps": binary_maps,
      }
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import math
  import paddle
  from paddle import nn
  import paddle.nn.functional
  from paddle import ParamAttr
  from ppocr.modeling.backbones.det_mobilenet_v3 import ConvBNLayer
label_desc: Use image node_id 2 for calling the PFHeadLocal obj's underlying member method code with example usage: obj.forward(x, targets) and returns: dict, dict