code: def remove_invalid_samples(self, features):
      valid_idxs = []
      all_fields = self.input_label_type.split(
          "+"
      ) + self.output_label_type.split("+")
      for i in range(len(features)):
          features[i].data["labels"]["utterance"] = features[i].data[
              "utterance"
          ]
          all_fields_non_empty = True
          for field in all_fields:
              if (
                  not features[i].data["labels"][field]
                  or not features[i].data["labels"][field].strip()
              ):
                  all_fields_non_empty = False
          if all_fields_non_empty:
              valid_idxs.append(i)
      return [features[i] for i in valid_idxs]
  
file_path: NeMo/nemo/collections/nlp/data/dialogue/dataset/dialogue_gpt_generation_dataset.py
imports: import copy
  import torch
  from nemo.collections.nlp.data.dialogue.dataset.dialogue_dataset import DialogueDataset
label_desc: Use image node_id 2 for calling the DialogueGPTGenerationDataset obj's underlying member method code with example usage: obj.remove_invalid_samples(features) and returns: unknown