code: def forward_decoder(
      self, decoder_out, encoder_out, decoding_format=None, **kwargs
  ):
      step = decoder_out.step
      output_tokens = decoder_out.output_tokens
      output_scores = decoder_out.output_scores
      history = decoder_out.history
  
      # execute the decoder
      output_masks = output_tokens.ne(self.pad)
      _scores, _tokens = self.decoder(
          normalize=True,
          prev_output_tokens=output_tokens,
          encoder_out=encoder_out,
          step=step,
      ).max(-1)
  
      output_tokens.masked_scatter_(output_masks, _tokens[output_masks])
      output_scores.masked_scatter_(output_masks, _scores[output_masks])
      if history is not None:
          history.append(output_tokens.clone())
  
      return decoder_out._replace(
          output_tokens=output_tokens,
          output_scores=output_scores,
          attn=None,
          history=history,
      )
  
imports: import torch
  import torch.nn.functional
  from fairseq import utils
  from fairseq.iterative_refinement_generator import DecoderOut
  from fairseq.models import register_model, register_model_architecture
  from fairseq.models.nat import FairseqNATDecoder, FairseqNATModel, ensemble_decoder
  from fairseq.models.transformer import Embedding
  from fairseq.modules.transformer_sentence_encoder import init_bert_params
label_desc: Use image node_id 5 for calling the NATransformerModel obj's underlying member method code with example usage: obj.forward_decoder(decoder_out, encoder_out, decoding_format) and returns: decoder_out