22 lines
621 B
Python
22 lines
621 B
Python
# Copyright (c) Facebook, Inc. and its affiliates.
|
|
#
|
|
# This source code is licensed under the MIT license found in the
|
|
# LICENSE file in the root directory of this source tree.
|
|
|
|
import numpy as np
|
|
|
|
from . import BaseWrapperDataset
|
|
|
|
|
|
class SortDataset(BaseWrapperDataset):
|
|
def __init__(self, dataset, sort_order):
|
|
super().__init__(dataset)
|
|
if not isinstance(sort_order, (list, tuple)):
|
|
sort_order = [sort_order]
|
|
self.sort_order = sort_order
|
|
|
|
assert all(len(so) == len(dataset) for so in sort_order)
|
|
|
|
def ordered_indices(self):
|
|
return np.lexsort(self.sort_order)
|