class_docstr: The motion encoder, part of the update block.
  
  Takes the current predicted flow and the correlation features as input and returns an encoded version of these.
class_docstr_tok: ["The","motion","encoder",",","part","of","the","update","block",".","Takes","the","current","predicted","flow","and","the","correlation","features","as","input","and","returns","an","encoded","version","of","these","."]
code: def forward(self, flow, corr_features):
      corr = self.convcorr1(corr_features)
      corr = self.convcorr2(corr)
  
      flow_orig = flow
      flow = self.convflow1(flow)
      flow = self.convflow2(flow)
  
      corr_flow = torch.cat([corr, flow], dim=1)
      corr_flow = self.conv(corr_flow)
      return torch.cat([corr_flow, flow_orig], dim=1)
  
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 2 for calling the MotionEncoder obj's underlying member method code with example usage: obj.forward(flow, corr_features) and returns: torch