code: def get_sample_labels(
      self,
      num_samples: int,
      class_idx: Optional[int] = None,
  ) -> Optional[Tensor]:
      if self.num_classes is None:
          return None
      if class_idx is not None:
          return torch.full(
              [num_samples], class_idx, device=get_device(self)
          )
      return torch.randint(
          self.num_classes, [num_samples], device=get_device(self)
      )
  
imports: import torch
  import random
  from abc import abstractmethod
  from abc import ABCMeta
  from torch import Tensor
  from typing import Any
  from typing import Optional
  from cftool.misc import safe_execute
  from cftool.misc import shallow_copy_dict
  from cftool.types import tensor_dict_type
  from ...schema import _forward
  from ...constants import INPUT_KEY
  from ...constants import LABEL_KEY
  from ...constants import PREDICTIONS_KEY
  from ...misc.toolkit import slerp
  from ...misc.toolkit import get_device
label_desc: Use image node_id 6 for calling the GeneratorMixin obj's underlying member method code with example usage: obj.get_sample_labels(num_samples, class_idx) and returns: torch, None, torch