Browse Source

[FIX] fix typos, expand job-selector param range

tags/v0.3.2
liuht 3 years ago
parent
commit
6d1f88bc64
3 changed files with 21 additions and 20 deletions
  1. +4
    -4
      examples/example_m5/main.py
  2. +4
    -4
      examples/example_pfs/main.py
  3. +13
    -12
      learnware/learnware/reuse.py

+ 4
- 4
examples/example_m5/main.py View File

@@ -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)}")


+ 4
- 4
examples/example_pfs/main.py View File

@@ -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)}")


+ 13
- 12
learnware/learnware/reuse.py View File

@@ -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:


Loading…
Cancel
Save