code: def sample_train_batch(self):
          
          batch = []
          labels = []
          num_groups = self.batch_size // self.batch_k
  
          # For CUB200, we use the first 100 classes for training.
          sampled_classes = np.random.choice(100, num_groups, replace=False)
          for i in range(num_groups):
              img_fnames = np.random.choice(self.train_image_files[sampled_classes[i]],
                                            self.batch_k, replace=False)
              batch += [self.get_image(img_fname, is_train=True) for img_fname in img_fnames]
              labels += [sampled_classes[i] for _ in range(self.batch_k)]
  
          return nd.concatenate(batch, axis=0), labels
docs: Sample a training batch (data and label).