class_docstr: Configuration options for the training of the Profet meta-model.
class_docstr_tok: ["Configuration","options","for","the","training","of","the","Profet","meta-model","."]
docstr: Create training data by sampling a given number of tasks.
  
  Parameters
  ----------
  X : np.ndarray
      Training examples
  Y : np.ndarray
      Training labels
  C : np.ndarray
      Training costs (NOTE: This isn't really used at the moment).
  task_features_mean : np.ndarray
      Mean of the model training weights.
  task_features_std : np.ndarray
      Std of the model training weights.
  
  Returns
  -------
  Tuple[np.ndarray, np.ndarray, np.ndarray]
      numpy arrays containing the X, Y, and C's for each task.
docstr_tok: ["Create","training","data","by","sampling","a","given","number","of","tasks",".","Parameters","--","--","--","--","--","X",":","np.ndarray","Training","examples","Y",":","np.ndarray","Training","labels","C",":","np.ndarray","Training","costs","(","NOTE",":","This","is","n't","really","used","at","the","moment",")",".","task_features_mean",":","np.ndarray","Mean","of","the","model","training","weights",".","task_features_std",":","np.ndarray","Std","of","the","model","training","weights",".","Returns","--","--","--","-","Tuple","[","np.ndarray",",","np.ndarray",",","np.ndarray","]","numpy","arrays","containing","the","X",",","Y",",","and","C","'s","for","each","task","."]
code: def _get_training_data(
      self,
      X: np.ndarray,
      Y: np.ndarray,
      C: np.ndarray,
      task_features_mean: np.ndarray,
      task_features_std: np.ndarray,
  ) -> Tuple[np.ndarray, np.ndarray, np.ndarray]:
      """Create training data by sampling a given number of tasks.
  
      Parameters
      ----------
      X : np.ndarray
          Training examples
      Y : np.ndarray
          Training labels
      C : np.ndarray
          Training costs (NOTE: This isn't really used at the moment).
      task_features_mean : np.ndarray
          Mean of the model training weights.
      task_features_std : np.ndarray
          Std of the model training weights.
  
      Returns
      -------
      Tuple[np.ndarray, np.ndarray, np.ndarray]
          numpy arrays containing the X, Y, and C's for each task.
      """
      n_tasks = Y.shape[0]
      hidden_space = task_features_std.shape[1]
      n_configs = X.shape[0]
  
      X_train_list = []
      Y_train_list = []
      C_train_list = []
  
      for i, xi in enumerate(X):
          for idx in range(n_tasks):
              for _ in range(self.n_samples_task):
                  multiplier = np.random.randn(hidden_space)
                  ht = (
                      task_features_mean[idx]
                      + task_features_std[idx] * multiplier
                  )
  
                  x = np.concatenate((xi, ht), axis=0)
                  X_train_list.append(x)
                  Y_train_list.append(Y[idx, i])
                  C_train_list.append(C[idx, i])
  
      X_train = np.array(X_train_list)
      Y_train = np.array(Y_train_list)
      C_train = np.array(C_train_list)
      if self.log_cost:
          C_train = np.log(C_train)
  
      if self.log_target:
          Y_train = np.log(Y_train)
  
      return X_train, Y_train, C_train
  
imports: import json
  import pickle
  import warnings
  from abc import ABC
  from copy import deepcopy
  from dataclasses import dataclass
  from logging import getLogger
  from pathlib import Path
  from typing import Any, Callable, ClassVar, Optional, Tuple, Union
  import numpy
label_desc: Use image node_id 5 for calling the MetaModelConfig obj's underlying member method code with example usage: obj._get_training_data(X, Y, C, task_features_mean, task_features_std) and returns: X_train,  Y_train,  C_train