docstr: Base network 
docstr_tok: ["Base","network"]
code: def forward(self, x):
      """Base network"""
      sources = self.basenet(x)
  
      """ U network """
      y = torch.cat([sources[0], sources[1]], dim=1)
      y = self.upconv1(y)
  
      y = F.interpolate(
          y,
          size=sources[2].size()[2:],
          mode="bilinear",
          align_corners=False,
      )
      y = torch.cat([y, sources[2]], dim=1)
      y = self.upconv2(y)
  
      y = F.interpolate(
          y,
          size=sources[3].size()[2:],
          mode="bilinear",
          align_corners=False,
      )
      y = torch.cat([y, sources[3]], dim=1)
      y = self.upconv3(y)
  
      y = F.interpolate(
          y,
          size=sources[4].size()[2:],
          mode="bilinear",
          align_corners=False,
      )
      y = torch.cat([y, sources[4]], dim=1)
      feature = self.upconv4(y)
  
      y = self.conv_cls(feature)
  
      return y.permute(0, 2, 3, 1), feature
  
file_path: EasyOCR/easyocr/craft.py
imports: import torch
  import torch.nn
  import torch.nn.functional
  from .model.modules import vgg16_bn, init_weights
label_desc: Use image node_id 2 for calling the CRAFT obj's underlying member method code with example usage: obj.forward(x) and returns: y,  feature