class_docstr: Represents a wav2vec 2.0 model as described in
  :cite:t:`https://doi.org/10.48550/arxiv.2006.11477`.
class_docstr_tok: ["Represents","a","wav2vec","2.0","model","as","described","in",":","cite",":","t",":","`","https",":","\/\/doi.org\/10.48550\/arxiv.2006.11477","`","."]
docstr: :param batch:
      The batch of sequences to process.
docstr_tok: [":","param","batch",":","The","batch","of","sequences","to","process","."]
code: def forward(self, batch: SequenceBatch) -> Wav2Vec2Output:
      """
      :param batch:
          The batch of sequences to process.
      """
      seqs, padding_mask, targets, temporal_mask = self.run_frontend(
          batch.seqs, batch.padding_mask
      )
  
      # TODO: Should pad for fp16?
      encoder_output, _ = self.encoder(seqs, padding_mask)
  
      return self.quantize_and_contrast(
          encoder_output, targets, temporal_mask
      )
  
imports: from __future__ import annotations
  from dataclasses import dataclass
  from typing import Optional, Tuple
  import torch
  from torch import Tensor
  from torch.nn import Module
  from torch.nn.functional import cross_entropy
  from fairseq2.models.sequence import SequenceBatch
  from fairseq2.models.wav2vec2.frontend import Wav2Vec2Frontend
  from fairseq2.models.wav2vec2.masker import Wav2Vec2Masker, extract_masked_elements
  from fairseq2.models.wav2vec2.vector_quantizer import VectorQuantizer, VectorQuantizerOutput
  from fairseq2.nn.ops import repeat_interleave
  from fairseq2.nn.padding import PaddingMask
  from fairseq2.nn.projection import Linear
  from fairseq2.nn.transformer import TransformerEncoder
  from fairseq2.typing import DataType, Device
label_desc: Use image node_id 2 for calling the Wav2Vec2Model obj's underlying member method code with example usage: obj.forward(batch) and returns: self