| 50 | } |
| 51 | |
| 52 | void init_learner(cache_t *cache) { |
| 53 | GLCache_params_t *params = cache->eviction_params; |
| 54 | |
| 55 | learner_t *l = ¶ms->learner; |
| 56 | |
| 57 | l->n_feature = N_FEATURE_TIME_WINDOW * 3 + N_FEATURE_NORMAL; |
| 58 | l->pred = NULL; |
| 59 | l->train_x = NULL; |
| 60 | l->train_matrix_n_row = 0; |
| 61 | l->valid_matrix_n_row = 0; |
| 62 | l->inference_x = NULL; |
| 63 | l->inf_matrix_n_row = 0; |
| 64 | |
| 65 | l->n_train = -1; |
| 66 | l->n_inference = 0; |
| 67 | |
| 68 | l->train_matrix_n_row = N_MAX_TRAINING_DATA; |
| 69 | l->train_x = my_malloc_n(feature_t, l->train_matrix_n_row * l->n_feature); |
| 70 | memset(l->train_x, 0, |
| 71 | sizeof(feature_t) * l->train_matrix_n_row * l->n_feature); |
| 72 | l->train_y = my_malloc_n(pred_t, l->train_matrix_n_row); |
| 73 | memset(l->train_y, 0, sizeof(pred_t) * l->train_matrix_n_row); |
| 74 | l->train_y_oracle = my_malloc_n(pred_t, l->train_matrix_n_row); |
| 75 | memset(l->train_y_oracle, 0, sizeof(pred_t) * l->train_matrix_n_row); |
| 76 | l->valid_matrix_n_row = l->train_matrix_n_row / 10; |
| 77 | l->valid_x = my_malloc_n(feature_t, l->valid_matrix_n_row * l->n_feature); |
| 78 | memset(l->valid_x, 0, |
| 79 | sizeof(feature_t) * l->valid_matrix_n_row * l->n_feature); |
| 80 | l->valid_y = my_malloc_n(train_y_t, l->valid_matrix_n_row); |
| 81 | memset(l->valid_y, 0, sizeof(train_y_t) * l->valid_matrix_n_row); |
| 82 | // l->retrain_intvl = retrain_intvl; |
| 83 | l->last_train_rtime = 0; |
| 84 | } |
| 85 | |
| 86 | static void init_buckets(cache_t *cache) { |
| 87 | GLCache_params_t *params = cache->eviction_params; |