code: def forward(self, features):
      coord_features = list()
      for feature in features:
          x_range = torch.linspace(
              -1, 1, feature.shape[-1], device=feature.device
          )
          y_range = torch.linspace(
              -1, 1, feature.shape[-2], device=feature.device
          )
          y, x = torch.meshgrid(y_range, x_range)
          y = y.expand([feature.shape[0], 1, -1, -1])
          x = x.expand([feature.shape[0], 1, -1, -1])
          coord = torch.cat([x, y], 1)
          feature_with_coord = torch.cat([feature, coord], dim=1)
          feature_with_coord = self.mask_convs(feature_with_coord)
          feature_with_coord = feature_with_coord + feature
          coord_features.append(feature_with_coord)
      return coord_features
  
file_path: mmocr/projects/ABCNet/abcnet/model/coordinate_head.py
imports: import torch
  import torch.nn
  from mmcv.cnn import ConvModule
  from mmengine.model import BaseModule
  from mmocr.registry import MODELS
label_desc: Use image node_id 2 for calling the CoordinateHead obj's underlying member method code with example usage: obj.forward(features) and returns: coord_features