class_docstr: The feature encoder, used both as the actual feature encoder, and as the context encoder.
  
  It must downsample its input by 8.
class_docstr_tok: ["The","feature","encoder",",","used","both","as","the","actual","feature","encoder",",","and","as","the","context","encoder",".","It","must","downsample","its","input","by","8","."]
code: def forward(self, x):
      x = self.convnormrelu(x)
  
      x = self.layer1(x)
      x = self.layer2(x)
      x = self.layer3(x)
  
      x = self.conv(x)
  
      return x
  
imports: from typing import List, Optional
  import torch
  import torch.nn
  import torch.nn.functional
  from torch import Tensor
  from torch.nn.modules.batchnorm import BatchNorm2d
  from torch.nn.modules.instancenorm import InstanceNorm2d
  from torchvision.ops import Conv2dNormActivation
  from ...transforms._presets import OpticalFlow
  from ...utils import _log_api_usage_once
  from .._api import register_model, Weights, WeightsEnum
  from .._utils import handle_legacy_interface
  from ._utils import grid_sample, make_coords_grid, upsample_flow
label_desc: Use image node_id 3 for calling the FeatureEncoder obj's underlying member method code with example usage: obj.forward(x) and returns: x