Skip to content

Commit

Permalink
[fix] Handle Sequence metadata inconsistency (#2562)
Browse files Browse the repository at this point in the history
  • Loading branch information
alberttorosyan authored Mar 2, 2023
1 parent 26d1317 commit 58c1535
Show file tree
Hide file tree
Showing 4 changed files with 5 additions and 31 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

## 3.16.2
- Expose `capture_terminal_logs` argument for `aim.sdk.adapters` classes (mihran113)
- Handle inconsistency between Sequence data and metadata (alberttorosyan)

## 3.16.1

Expand Down
7 changes: 4 additions & 3 deletions aim/sdk/sequence.py
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ def numpy(self) -> Tuple[np.ndarray, List[np.ndarray]]:
steps = np.fromiter(self.steps.values(), np.intp)
columns = [np.fromiter(arr.values(), arr.dtype) for arr in self.arrays]
else:
last_step = self.meta_tree['last_step']
last_step = self.meta_tree.get('last_step', None)
steps = np.fromiter(islice(self.steps.values(), self.n_items), np.intp)
columns = [np.fromiter(islice(arr.values(), self.n_items), arr.dtype) for arr in self.arrays]

Expand Down Expand Up @@ -344,14 +344,15 @@ def first_step(self):
Required to implement ranged and sliced data fetching.
"""
return self._meta_tree['first_step']
return self._meta_tree.get('first_step', 0)

def last_step(self):
"""Get sequence tracked last step.
Required to implement ranged and sliced data fetching.
"""
return self._meta_tree['last_step']
# fallback to first_step() if 'last_step' key is not yet written
return self._meta_tree.get('last_step', self.first_step())


class MediaSequenceBase(Sequence):
Expand Down
14 changes: 0 additions & 14 deletions aim/sdk/sequences/distribution_sequence.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,3 @@ def allowed_dtypes(cls) -> Tuple[str, ...]:
@classmethod
def sequence_name(cls) -> str:
return 'distributions'

def first_step(self):
"""Get sequence tracked first step.
Required to implement ranged and sliced data fetching.
"""
return self._meta_tree['first_step']

def last_step(self):
"""Get sequence tracked last step.
Required to implement ranged and sliced data fetching.
"""
return self._meta_tree['last_step']
14 changes: 0 additions & 14 deletions aim/sdk/sequences/figure_sequence.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,3 @@ def allowed_dtypes(cls) -> Union[str, Tuple[str, ...]]:
@classmethod
def sequence_name(cls) -> str:
return "figures"

def first_step(self):
"""Get sequence tracked first step.
Required to implement ranged and sliced data fetching.
"""
return self._meta_tree["first_step"]

def last_step(self):
"""Get sequence tracked last step.
Required to implement ranged and sliced data fetching.
"""
return self._meta_tree["last_step"]

0 comments on commit 58c1535

Please sign in to comment.