class_docstr: Motion compensation model.
  
  After applying optical flow, there remain residual errors. This model
  corrects for the errors based on the input image, the transformed image,
  and the optical flow field.
  
  Args:
      in_channels: Number of input channels. The ``forward`` function takes
          as input two 3-channel images, plus an optical flow field, so by
          default this is 8 channels.
      model_channels: Number of channels for convolution kernels.
      out_channels: Number of channels for output motion-compensated image.
      kernel_size: Size of convolution kernels.
      num_levels: Number of convolution levels.
class_docstr_tok: ["Motion","compensation","model",".","After","applying","optical","flow",",","there","remain","residual","errors",".","This","model","corrects","for","the","errors","based","on","the","input","image",",","the","transformed","image",",","and","the","optical","flow","field",".","Args",":","in_channels",":","Number","of","input","channels",".","The","``","forward","``","function","takes","as","input","two","3-channel","images",",","plus","an","optical","flow","field",",","so","by","default","this","is","8","channels",".","model_channels",":","Number","of","channels","for","convolution","kernels",".","out_channels",":","Number","of","channels","for","output","motion-compensated","image",".","kernel_size",":","Size","of","convolution","kernels",".","num_levels",":","Number","of","convolution","levels","."]
code: def forward(
      self, image1: Tensor, image2: Tensor, flow: Tensor
  ) -> Tensor:
      return self.model(torch.cat((image1, image2, flow), dim=1))
  
imports: from typing import Any, List, NamedTuple, Optional, Sequence, Tuple
  import torch
  import torch.nn.functional
  from compressai.entropy_models import EntropyBottleneck
  from torch import Tensor, nn
  import neuralcompression.functional
  from neuralcompression.layers import SimplifiedGDN, SimplifiedInverseGDN
label_desc: Use image node_id 2 for calling the DVCMotionCompensationModel obj's underlying member method code with example usage: obj.forward(image1, image2, flow) and returns: self