Browse Source

[MNT] Update Image example

tags/v0.3.2
chenzx 3 years ago
parent
commit
0f827172cd
1 changed files with 18 additions and 5 deletions
  1. +18
    -5
      examples/example_image/main.py

+ 18
- 5
examples/example_image/main.py View File

@@ -22,7 +22,7 @@ tmp_dir = "./data/tmp"
learnware_pool_dir = "./data/learnware_pool"
dataset = "cifar10"
n_uploaders = 50
n_users = 10
n_users = 20
n_classes = 10
data_root = os.path.join(origin_data_root, dataset)
data_save_root = os.path.join(processed_data_root, dataset)
@@ -149,9 +149,9 @@ def prepare_market():
semantic_spec["Description"]["Values"] = "test_learnware_number_%d" % (i)
image_market.add_learnware(new_learnware_path, semantic_spec)

logger.info("Total Item:", len(image_market))
logger.info("Total Item: %d" % (len(image_market)))
curr_inds = image_market._get_ids()
logger.info("Available ids:", curr_inds)
logger.info("Available ids: " + str(curr_inds))


def test_search(load_market=True):
@@ -162,6 +162,9 @@ def test_search(load_market=True):
image_market = EasyMarket()
logger.info("Number of items in the market: %d" % len(image_market))

select_list = []
avg_list = []
improve_list = []
for i in range(n_users):
user_data_path = os.path.join(user_save_root, "user_%d_X.npy" % (i))
user_label_path = os.path.join(user_save_root, "user_%d_y.npy" % (i))
@@ -174,15 +177,25 @@ def test_search(load_market=True):
logger.info("Searching Market for user: %d" % (i))
sorted_score_list, single_learnware_list, mixture_learnware_list = image_market.search_learnware(user_info)
l = len(sorted_score_list)
for idx in range(min(l, 10)):
acc_list = []
for idx in range(l):
learnware = single_learnware_list[idx]
score = sorted_score_list[idx]
pred_y = learnware.predict(user_data)
acc = eval_prediction(pred_y, user_label)
acc_list.append(acc)
logger.info("search rank: %d, score: %.3f, learnware_id: %s, acc: %.3f" % (idx, score, learnware.id, acc))

select_list.append(acc_list[0])
avg_list.append(np.mean(acc_list))
improve_list.append((acc_list[0] - np.mean(acc_list)) / np.mean(acc_list))
logger.info(
"Accuracy of selected learnware: %.3f, Average performance: %.3f" % (np.mean(select_list), np.mean(avg_list))
)
logger.info("Average performance improvement: %.3f" % (np.mean(improve_list)))


if __name__ == "__main__":
# prepare_data()
# prepare_model()
test_search(False)
test_search()

Loading…
Cancel
Save