class_docstr: The correlation block.
  
  Creates a correlation pyramid with ``num_levels`` levels from the outputs of the feature encoder,
  and then indexes from this pyramid to create correlation features.
  The "indexing" of a given centroid pixel x' is done by concatenating its surrounding neighbors that
  are within a ``radius``, according to the infinity norm (see paper section 3.2).
  Note: typo in the paper, it should be infinity norm, not 1-norm.
class_docstr_tok: ["The","correlation","block",".","Creates","a","correlation","pyramid","with","``","num_levels","``","levels","from","the","outputs","of","the","feature","encoder",",","and","then","indexes","from","this","pyramid","to","create","correlation","features",".","The","``","indexing","''","of","a","given","centroid","pixel","x","'","is","done","by","concatenating","its","surrounding","neighbors","that","are","within","a","``","radius","``",",","according","to","the","infinity","norm","(","see","paper","section","3.2",")",".","Note",":","typo","in","the","paper",",","it","should","be","infinity","norm",",","not","1-norm","."]
code: def _compute_corr_volume(self, fmap1, fmap2):
      batch_size, num_channels, h, w = fmap1.shape
      fmap1 = fmap1.view(batch_size, num_channels, h * w)
      fmap2 = fmap2.view(batch_size, num_channels, h * w)
  
      corr = torch.matmul(fmap1.transpose(1, 2), fmap2)
      corr = corr.view(batch_size, h, w, 1, h, w)
      return corr / torch.sqrt(torch.tensor(num_channels))
  
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 4 for calling the CorrBlock obj's underlying member method code with example usage: obj._compute_corr_volume(fmap1, fmap2) and returns: unknown