Skip to content

Commit 5124a00

Browse files
committed
Merge branch 'zhangyu94-dev' into dev
2 parents 0e66d27 + a253759 commit 5124a00

File tree

2 files changed

+4
-7
lines changed

2 files changed

+4
-7
lines changed

modAL/utils/selection.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,25 +11,22 @@ def shuffled_argmax(values: np.ndarray, n_instances: int = 1) -> np.ndarray:
1111
the tie when the highest utility score is not unique. The shuffle randomizes
1212
order, which is preserved by the mergesort algorithm.
1313
14-
Args:
15-
values:
16-
n_instances:
17-
1814
Args:
1915
values: Contains the values to be selected from.
2016
n_instances: Specifies how many indices to return.
2117
2218
Returns:
2319
The indices of the n_instances largest values.
2420
"""
21+
assert n_instances <= values.shape[0], 'n_instances must be less or equal than the size of utility'
2522

2623
# shuffling indices and corresponding values
2724
shuffled_idx = np.random.permutation(len(values))
2825
shuffled_values = values[shuffled_idx]
2926

3027
# getting the n_instances best instance
3128
# since mergesort is used, the shuffled order is preserved
32-
sorted_query_idx = np.argsort(shuffled_values, kind='mergesort')[:n_instances]
29+
sorted_query_idx = np.argsort(shuffled_values, kind='mergesort')[len(shuffled_values)-n_instances:]
3330

3431
# inverting the shuffle
3532
query_idx = shuffled_idx[sorted_query_idx]

tests/core_tests.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,8 +177,8 @@ def test_shuffled_argmax(self):
177177
for n_pool in range(1, 100):
178178
for n_instances in range(1, n_pool+1):
179179
values = np.random.permutation(n_pool)
180-
true_query_idx = np.argsort(values)[:n_instances]
181-
180+
true_query_idx = np.argsort(values)[len(values)-n_instances:]
181+
182182
np.testing.assert_equal(
183183
true_query_idx,
184184
modAL.utils.selection.shuffled_argmax(values, n_instances)

0 commit comments

Comments
 (0)