code: def forward_features(self, x):
      if self.stem is not None:
          x = self.stem(x)
  
      # stage 1
      x = self.patch_embed1(x)
      if self.pos_embed1 is not None:
          x = self.pos_drop(x + self.pos_embed1)
      if self.grad_checkpointing and not torch.jit.is_scripting():
          x = checkpoint_seq(self.stage1, x)
      else:
          x = self.stage1(x)
  
      # stage 2
      if self.patch_embed2 is not None:
          x = self.patch_embed2(x)
          if self.pos_embed2 is not None:
              x = self.pos_drop(x + self.pos_embed2)
      if self.grad_checkpointing and not torch.jit.is_scripting():
          x = checkpoint_seq(self.stage2, x)
      else:
          x = self.stage2(x)
  
      # stage3
      if self.patch_embed3 is not None:
          x = self.patch_embed3(x)
          if self.pos_embed3 is not None:
              x = self.pos_drop(x + self.pos_embed3)
      if self.grad_checkpointing and not torch.jit.is_scripting():
          x = checkpoint_seq(self.stage3, x)
      else:
          x = self.stage3(x)
  
      x = self.norm(x)
      return x
  
imports: import torch
  import torch.nn
  from timm.data import IMAGENET_DEFAULT_MEAN, IMAGENET_DEFAULT_STD
  from timm.layers import to_2tuple, trunc_normal_, DropPath, PatchEmbed, LayerNorm2d, create_classifier, use_fused_attn
  from ._builder import build_model_with_cfg
  from ._manipulate import checkpoint_seq
  from ._registry import register_model, generate_default_cfgs
label_desc: Use image node_id 7 for calling the Visformer obj's underlying member method code with example usage: obj.forward_features(x) and returns: x