Exemplo n.º 1
0
 def search_space(self):
     return {
         "model":
         "MTNet",
         "lr":
         0.001,
         "batch_size":
         16,
         "epochs":
         1,
         "cnn_dropout":
         0.2,
         "rnn_dropout":
         0.2,
         "time_step":
         hp.choice([3, 4]),
         "cnn_height":
         2,
         "long_num":
         hp.choice([3, 4]),
         "ar_size":
         hp.choice([2, 3]),
         "past_seq_len":
         hp.sample_from(lambda spec:
                        (spec.config.long_num + 1) * spec.config.time_step),
     }
Exemplo n.º 2
0
 def search_space(self, all_available_features):
     return {
         "selected_features":
         hp.sample_from(lambda spec: json.dumps(
             list(
                 np.random.choice(all_available_features,
                                  size=np.random.randint(
                                      low=3,
                                      high=len(all_available_features)),
                                  replace=False)))),
         "model":
         "MTNet",
         "lr":
         self.lr,
         "batch_size":
         self.batch_size,
         "epochs":
         self.epochs,
         "cnn_dropout":
         self.cnn_dropout,
         "rnn_dropout":
         self.rnn_dropout,
         "time_step":
         self.time_step,
         "long_num":
         self.long_num,
         "ar_size":
         self.ar_size,
         "past_seq_len":
         self.past_seq_len,
         "cnn_hid_size":
         self.cnn_hid_size,
         "cnn_height":
         self.cnn_height
     }
Exemplo n.º 3
0
    def search_space(self, all_available_features):
        return {
            # -------- feature related parameters
            "selected_features":
            hp.sample_from(lambda spec: json.dumps(
                list(
                    np.random.choice(all_available_features,
                                     size=np.random.randint(
                                         low=3,
                                         high=len(all_available_features) + 1),
                                     replace=False)))),
            "model":
            "Seq2Seq",
            "latent_dim":
            self.latent_dim,
            "dropout":
            self.dropout_config,

            # ----------- optimization parameters
            "lr":
            self.lr,
            "batch_size":
            self.batch_size,
            "epochs":
            self.epochs,
            "past_seq_len":
            self.past_seq_config,
        }
Exemplo n.º 4
0
    def search_space(self, all_available_features):
        return {
            # -------- feature related parameters
            "selected_features":
            hp.sample_from(lambda spec: json.dumps(
                list(
                    np.random.choice(all_available_features,
                                     size=np.random.randint(
                                         low=3,
                                         high=len(all_available_features) + 1),
                                     replace=False)))),
            "model":
            "LSTM",

            # --------- Vanilla LSTM model parameters
            "lstm_1_units":
            self.lstm_1_units_config,
            "dropout_1":
            0.2,
            "lstm_2_units":
            self.lstm_2_units_config,
            "dropout_2":
            self.dropout_2_config,

            # ----------- optimization parameters
            "lr":
            self.lr,
            "batch_size":
            self.batch_size,
            "epochs":
            self.epochs,
            "past_seq_len":
            self.past_seq_config,
        }
Exemplo n.º 5
0
 def _prepare_tune_config(self, space):
     tune_config = {}
     for k, v in space.items():
         if isinstance(v, RandomSample):
             tune_config[k] = hp.sample_from(v.func)
         elif isinstance(v, GridSearch):
             tune_config[k] = hp.grid_search(v.values)
         else:
             tune_config[k] = v
     return tune_config
Exemplo n.º 6
0
    def __init__(self,
                 num_rand_samples=1,
                 epochs=5,
                 training_iteration=10,
                 time_step=[3, 4],
                 long_num=[3, 4],
                 cnn_height=[2, 3],
                 cnn_hid_size=[32, 50, 100],
                 ar_size=[2, 3],
                 batch_size=[32, 64]):
        """
        __init__()
        Constructor.

        :param num_rand_samples: number of hyper-param configurations sampled randomly
        :param training_iteration: no. of iterations for training (n epochs) in trials
        :param epochs: no. of epochs to train in each iteration
        :param time_step: random search candidates for model param "time_step"
        :param long_num: random search candidates for model param "long_num"
        :param ar_size: random search candidates for model param "ar_size"
        :param batch_size: grid search candidates for batch size
        :param cnn_height: random search candidates for model param "cnn_height"
        :param cnn_hid_size: random search candidates for model param "cnn_hid_size"
        """
        super(self.__class__, self).__init__()
        # -- run time params
        self.num_samples = num_rand_samples
        self.training_iteration = training_iteration

        # -- optimization params
        self.lr = hp.uniform(0.001, 0.01)
        self.batch_size = hp.grid_search(batch_size)
        self.epochs = epochs

        # ---- model params
        self.cnn_dropout = hp.uniform(0.2, 0.5)
        self.rnn_dropout = hp.uniform(0.2, 0.5)
        self.time_step = hp.choice(time_step)
        self.long_num = hp.choice(long_num, )
        self.cnn_height = hp.choice(cnn_height)
        self.cnn_hid_size = hp.choice(cnn_hid_size)
        self.ar_size = hp.choice(ar_size)
        self.past_seq_len = hp.sample_from(
            lambda spec: (spec.config.long_num + 1) * spec.config.time_step)
Exemplo n.º 7
0
    def search_space(self, all_available_features):
        return {
            # -------- feature related parameters
            "selected_features":
            hp.sample_from(lambda spec: json.dumps(
                list(
                    np.random.choice(all_available_features,
                                     size=np.random.randint(
                                         low=3,
                                         high=len(all_available_features)),
                                     replace=False)))),

            # -------- model selection TODO add MTNet
            "model":
            hp.choice(["LSTM", "Seq2seq"]),

            # --------- Vanilla LSTM model parameters
            "lstm_1_units":
            hp.grid_search([16, 32]),
            "dropout_1":
            0.2,
            "lstm_2_units":
            hp.grid_search([16, 32]),
            "dropout_2":
            hp.uniform(0.2, 0.5),

            # ----------- Seq2Seq model parameters
            "latent_dim":
            hp.grid_search([32, 64]),
            "dropout":
            hp.uniform(0.2, 0.5),

            # ----------- optimization parameters
            "lr":
            hp.uniform(0.001, 0.01),
            "batch_size":
            hp.choice([32, 64]),
            "epochs":
            self.epochs,
            "past_seq_len":
            self.past_seq_config,
        }
Exemplo n.º 8
0
 def test_data_creator(self):
     train_data_creator, val_data_creator = get_data_creators()
     auto_xgb_reg = AutoXGBRegressor(cpus_per_trial=2,
                                     name="auto_xgb_regressor",
                                     tree_method='hist')
     model_search_space = get_xgb_search_space()
     # todo: change to hp.choice_n
     search_space = {
         "features":
         hp.sample_from(
             lambda spec: np.random.choice(["f1", "f2", "f3"], size=2))
     }
     search_space.update(model_search_space)
     auto_xgb_reg.fit(data=train_data_creator,
                      epochs=1,
                      validation_data=val_data_creator,
                      metric="logloss",
                      metric_mode="min",
                      search_space=search_space,
                      n_sampling=2)
     best_config = auto_xgb_reg.get_best_config()
     assert all(k in best_config.keys() for k in search_space.keys())
     assert len(best_config["features"]) == 2