code: def remove_invalid_samples(self, features):
      valid_idxs = []
      for i in range(len(features)):
          for field in [
              "utterance",
              "system_utterance",
              "system_actions",
          ]:
              if field in features[i].data:
                  features[i].data["labels"][field] = features[i].data[
                      field
                  ]
          all_fields = self.input_label_type.split(
              "+"
          ) + self.output_label_type.split("+")
          all_fields_non_empty = True
          for field in all_fields:
              if not features[i].data["labels"][field]:
                  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_s2s_generation_dataset.py
imports: import torch
  from nemo.collections.nlp.data.dialogue.dataset.dialogue_dataset import DialogueDataset
label_desc: Use image node_id 3 for calling the DialogueS2SGenerationDataset obj's underlying member method code with example usage: obj.remove_invalid_samples(features) and returns: unknown