code: def generate_samples(label, num_splits, sampler):
      
      def listify(x):
          return x if isinstance(x, list) else [x]
      label_splits = listify(label.split(num_splits, axis=0))
      prob_samples = []
      prob_targets = []
      samples = []
      for label_split in label_splits:
          label_split_2d = label_split.reshape((-1,1))
          sampled_value = sampler.draw(label_split_2d)
          sampled_classes, exp_cnt_true, exp_cnt_sampled = sampled_value
          samples.append(sampled_classes.astype(np.float32))
          prob_targets.append(exp_cnt_true.astype(np.float32).reshape((-1,1)))
          prob_samples.append(exp_cnt_sampled.astype(np.float32))
      return samples, prob_samples, prob_targets
docs: Split labels into `num_splits` and
          generate candidates based on log-uniform distribution.