| import numpy as np | |
| def random_sampling(n_pool, idxs_lb, acc_idxs, rej_idxs, NUM_QUERY): | |
| curr_selected = np.concatenate((idxs_lb, acc_idxs), axis=0) | |
| curr_selected = np.concatenate((curr_selected, rej_idxs), axis=0) | |
| idxs_ulb = np.setdiff1d(np.arange(n_pool), curr_selected) | |
| selected = np.random.choice(idxs_ulb, size=NUM_QUERY, replace=False) | |
| return selected, np.ones(selected.shape[0]) | |
| def uncerainty_sampling(n_pool, idxs_lb, acc_idxs, rej_idxs, NUM_QUERY, uncertainty): | |
| curr_selected = np.concatenate((idxs_lb, acc_idxs), axis=0) | |
| curr_selected = np.concatenate((curr_selected, rej_idxs), axis=0) | |
| idxs_ulb = np.setdiff1d(np.arange(n_pool), curr_selected) | |
| uncertainty_ulb = uncertainty[idxs_ulb] | |
| idxs = np.argsort(uncertainty_ulb)[-NUM_QUERY:] | |
| scores = uncertainty_ulb[idxs] | |
| selected = idxs_ulb[idxs] | |
| return selected, scores | |