| @@ -124,7 +124,7 @@ class M5DatasetWorkflow: | |||
| m5 = DataLoader() | |||
| idx_list = m5.get_idx_list() | |||
| os.makedirs("./user_spec", exist_ok=True) | |||
| sinle_score_list = [] | |||
| single_score_list = [] | |||
| random_score_list = [] | |||
| job_selector_score_list = [] | |||
| ensemble_score_list = [] | |||
| @@ -154,7 +154,7 @@ class M5DatasetWorkflow: | |||
| pred_y = learnware.predict(test_x) | |||
| loss_list.append(m5.score(test_y, pred_y)) | |||
| print( | |||
| f"Top1-score: {sorted_score_list[0]}, learnware_id: {single_learnware_list[0].id}, loss: {loss_list[-1]}" | |||
| f"Top1-score: {sorted_score_list[0]}, learnware_id: {single_learnware_list[0].id}, loss: {loss_list[0]}" | |||
| ) | |||
| mixture_id = " ".join([learnware.id for learnware in mixture_learnware_list]) | |||
| @@ -170,12 +170,12 @@ class M5DatasetWorkflow: | |||
| ensemble_score = m5.score(test_y, ensemble_predict_y) | |||
| print(f"mixture reuse loss (ensemble): {ensemble_score}\n") | |||
| sinle_score_list.append(loss_list[0]) | |||
| single_score_list.append(loss_list[0]) | |||
| random_score_list.append(np.mean(loss_list)) | |||
| job_selector_score_list.append(job_selector_score) | |||
| ensemble_score_list.append(ensemble_score) | |||
| print(f"Single search score: {np.mean(sinle_score_list)}") | |||
| print(f"Single search score: {np.mean(single_score_list)}") | |||
| print(f"Job selector score: {np.mean(job_selector_score_list)}") | |||
| print(f"Average ensemble score: {np.mean(ensemble_score_list)}") | |||
| print(f"Random search score: {np.mean(random_score_list)}") | |||
| @@ -122,7 +122,7 @@ class PFSDatasetWorkflow: | |||
| pfs = Dataloader() | |||
| idx_list = pfs.get_idx_list() | |||
| os.makedirs("./user_spec", exist_ok=True) | |||
| sinle_score_list = [] | |||
| single_score_list = [] | |||
| random_score_list = [] | |||
| job_selector_score_list = [] | |||
| ensemble_score_list = [] | |||
| @@ -152,7 +152,7 @@ class PFSDatasetWorkflow: | |||
| pred_y = learnware.predict(test_x) | |||
| loss_list.append(pfs.score(test_y, pred_y)) | |||
| print( | |||
| f"Top1-score: {sorted_score_list[0]}, learnware_id: {single_learnware_list[0].id}, loss: {loss_list[-1]}" | |||
| f"Top1-score: {sorted_score_list[0]}, learnware_id: {single_learnware_list[0].id}, loss: {loss_list[0]}" | |||
| ) | |||
| mixture_id = " ".join([learnware.id for learnware in mixture_learnware_list]) | |||
| @@ -168,12 +168,12 @@ class PFSDatasetWorkflow: | |||
| ensemble_score = pfs.score(test_y, ensemble_predict_y) | |||
| print(f"mixture reuse loss (ensemble): {ensemble_score}\n") | |||
| sinle_score_list.append(loss_list[0]) | |||
| single_score_list.append(loss_list[0]) | |||
| random_score_list.append(np.mean(loss_list)) | |||
| job_selector_score_list.append(job_selector_score) | |||
| ensemble_score_list.append(ensemble_score) | |||
| print(f"Single search score: {np.mean(sinle_score_list)}") | |||
| print(f"Single search score: {np.mean(single_score_list)}") | |||
| print(f"Job selector score: {np.mean(job_selector_score_list)}") | |||
| print(f"Average ensemble score: {np.mean(ensemble_score_list)}") | |||
| print(f"Random search score: {np.mean(random_score_list)}") | |||
| @@ -73,17 +73,18 @@ class JobSelectorReuser(BaseReuser): | |||
| for learnware in self.learnware_list | |||
| ] | |||
| task_matrix = np.zeros((len(learnware_rkme_spec_list), len(learnware_rkme_spec_list))) | |||
| for i in range(len(self.learnware_list)): | |||
| task_rkme1 = learnware_rkme_spec_list[i] | |||
| task_matrix[i][i] = task_rkme1.inner_prod(task_rkme1) | |||
| for j in range(i + 1, len(self.learnware_list)): | |||
| task_rkme2 = learnware_rkme_spec_list[j] | |||
| task_matrix[i][j] = task_matrix[j][i] = task_rkme1.inner_prod(task_rkme2) | |||
| task_mixture_weight = self._calculate_rkme_spec_mixture_weight( | |||
| user_data, learnware_rkme_spec_list, task_matrix | |||
| ) | |||
| if self.use_herding: | |||
| task_matrix = np.zeros((len(learnware_rkme_spec_list), len(learnware_rkme_spec_list))) | |||
| for i in range(len(self.learnware_list)): | |||
| task_rkme1 = learnware_rkme_spec_list[i] | |||
| task_matrix[i][i] = task_rkme1.inner_prod(task_rkme1) | |||
| for j in range(i + 1, len(self.learnware_list)): | |||
| task_rkme2 = learnware_rkme_spec_list[j] | |||
| task_matrix[i][j] = task_matrix[j][i] = task_rkme1.inner_prod(task_rkme2) | |||
| task_mixture_weight = self._calculate_rkme_spec_mixture_weight( | |||
| user_data, learnware_rkme_spec_list, task_matrix | |||
| ) | |||
| herding_X, train_herding_X, val_herding_X = None, None, None | |||
| herding_y, train_herding_y, val_herding_y = [], [], [] | |||
| @@ -275,7 +276,7 @@ class AveragingReuser(BaseReuser): | |||
| # print(pred_y.shape) | |||
| if not isinstance(pred_y, np.ndarray): | |||
| pred_y = pred_y.detach().cpu().numpy() | |||
| softmax_pred = softmax(pred_y, axis=1) | |||
| softmax_pred = softmax(pred_y, axis=0) | |||
| if mean_pred_y is None: | |||
| mean_pred_y = softmax_pred | |||
| else: | |||