class_docstr: SGDDecoder
class_docstr_tok: ["SGDDecoder"]
docstr: Obtain logits for status and slot spans for non-categorical slots.
  Slot status values: none, dontcare, active
  Args:
      encoded_utterance: [CLS] token hidden state from BERT encoding of the utterance
      utterance_mask: utterance mask wiht 0 for padding
      token_embeddings: token embeddings from BERT encoding of the utterance
docstr_tok: ["Obtain","logits","for","status","and","slot","spans","for","non-categorical","slots",".","Slot","status","values",":","none",",","dontcare",",","active","Args",":","encoded_utterance",":","[","CLS","]","token","hidden","state","from","BERT","encoding","of","the","utterance","utterance_mask",":","utterance","mask","wiht","0","for","padding","token_embeddings",":","token","embeddings","from","BERT","encoding","of","the","utterance"]
code: def _get_noncategorical_slot_goals(
      self, encoded_utterance, utterance_mask, token_embeddings
  ):
      """
      Obtain logits for status and slot spans for non-categorical slots.
      Slot status values: none, dontcare, active
      Args:
          encoded_utterance: [CLS] token hidden state from BERT encoding of the utterance
          utterance_mask: utterance mask wiht 0 for padding
          token_embeddings: token embeddings from BERT encoding of the utterance
      """
      status_logits = self.slot_status_layer(
          encoded_utterance=encoded_utterance
      )
  
      # Project the combined embeddings to obtain logits, Shape: (batch_size, max_num_slots, max_num_tokens, 2)
      span_logits = self.noncat_layer1(token_embeddings)
      span_logits = self.noncat_activation(span_logits)
      span_logits = self.noncat_layer2(span_logits)
  
      # Mask out invalid logits for padded tokens.
      utterance_mask = utterance_mask.to(
          bool
      )  # Shape: (batch_size, max_num_tokens).
      repeated_utterance_mask = utterance_mask.unsqueeze(-1)
      negative_logits = (
          torch.finfo(span_logits.dtype).max * -0.7
      ) * torch.ones(
          span_logits.size(),
          device=span_logits.get_device(),
          dtype=span_logits.dtype,
      )
  
      span_logits = torch.where(
          repeated_utterance_mask, span_logits, negative_logits
      )
  
      return status_logits, span_logits
  
file_path: NeMo/nemo/collections/nlp/modules/dialogue_state_tracking/sgd_decoder.py
imports: from typing import Dict, Optional
  import torch
  from torch import nn
  from nemo.core.classes import NeuralModule, typecheck
  from nemo.core.neural_types import LogitsType, NeuralType
label_desc: Use image node_id 7 for calling the SGDDecoder obj's underlying member method code with example usage: obj._get_noncategorical_slot_goals(encoded_utterance, utterance_mask, token_embeddings) and returns: status_logits,  span_logits