-
Notifications
You must be signed in to change notification settings - Fork 50
Open
Description
Hi, first of all, thank you for the great work on DeepCore.
I'd like to clarify a potential issue in the implementation of the Cal method. In the file methods/cal.py, within the finish_run function, the indices are selected as follows:
def finish_run(self):
scores=[]
if self.balance:
selection_result = np.array([], dtype=np.int32)
for c, knn in zip(range(self.args.num_classes), self.knn):
class_index = np.arange(self.n_train)[self.dst_train.targets == c]
scores.append(self.calc_kl(knn, class_index))
**selection_result = np.append(selection_result, class_index[np.argsort(**
#self.calc_kl(knn, class_index))[::1][:round(self.fraction * len(class_index))]])
**scores[-1])[::1][:round(self.fraction * len(class_index))]])**
else:
**selection_result = np.argsort(self.calc_kl(self.knn))[::1][:self.coreset_size]**
return {"indices": selection_result, "scores":scores}
I noticed something that might be an issue — but I'd like to confirm it with you. My concern is with the use of [::1] in the slicing after np.argsort(). Since [::1] essentially keeps the order as is, this means the samples with the lowest KL divergence scores are selected first.
Wouldn't it make more sense to select samples with the highest KL divergence scores? That would mean we should use [:: -1] to reverse the sorting order.
Thanks in advance for any clarifications!
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels