From d33ee873cd72132b6f1e11bf2f2c55ce6d16d155 Mon Sep 17 00:00:00 2001 From: ltriess Date: Sat, 3 Oct 2020 13:14:24 +0200 Subject: [PATCH] Add unload method to prevent overloading memory --- python/pandaset/dataset.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/python/pandaset/dataset.py b/python/pandaset/dataset.py index b6ecf79..ce2a1be 100644 --- a/python/pandaset/dataset.py +++ b/python/pandaset/dataset.py @@ -55,6 +55,31 @@ def sequences(self, with_semseg: bool = False) -> List[str]: else: return list(self._sequences.keys()) + def unload(self, sequence: str): + """ Removes all sequence file data from memory if previously loaded from disk. + + This is useful if you intend to iterate over all sequences and perform some + operation. If you do not unload the sequences, it quickly leads to sigkill. + + Args: + sequence: The sequence name + + Returns: + None + + Examples: + >>> pandaset = DataSet('...') + >>> for sequence in pandaset.sequences(): + >>> seq = pandaset[sequence] + >>> seq.load() + >>> # do operations on sequence here... + >>> # when finished, unload the sequence from memory + >>> pandaset.unload(sequence) + + """ + if sequence in self._sequences: + del self._sequences[sequence] + if __name__ == '__main__': pass