code: def forward_features(self, x):
      B = x.shape[0]
      x = self.patch_embed(x)
      cls_tokens = paddle.tile(self.cls_token, repeat_times=[B, 1, 1])
      x = paddle.concat((cls_tokens, x), axis=1)
      x = x + self.pos_embed
      x = self.pos_drop(x)
      for blk in self.blocks:
          x = blk(x)
      x = self.norm(x)
      return x
  
file_path: PaddleOCR/ppocr/modeling/backbones/rec_vitstr.py
imports: import numpy
  import paddle
  import paddle.nn
  from ppocr.modeling.backbones.rec_svtrnet import Block, PatchEmbed, zeros_, trunc_normal_, ones_
label_desc: Use image node_id 3 for calling the ViTSTR obj's underlying member method code with example usage: obj.forward_features(x) and returns: x