Skip to content

Commit 2976c71

Browse files
committed
Add check to regenerate random state if deleted
Introduced a private method to ensure the random state value exists and is valid. If the value is deleted, it is regenerated before being accessed.
1 parent 12bd117 commit 2976c71

1 file changed

Lines changed: 9 additions & 0 deletions

File tree

brainpy/_src/math/random.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -546,8 +546,17 @@ def seed(self, seed_or_key=None, seed=None):
546546
key = seed_or_key
547547
self._value = key
548548

549+
def _ensure_value_exists(self):
550+
"""Ensure that the random state has a valid value, regenerate if needed."""
551+
if not isinstance(self._value, np.ndarray) and self._value.is_deleted():
552+
with jax.ensure_compile_time_eval():
553+
seed_or_key = np.random.randint(0, 100000, 2, dtype=np.uint32)
554+
self._value = seed_or_key
555+
556+
549557
@property
550558
def value(self):
559+
self._ensure_value_exists()
551560
record_state_value_read(self)
552561
return self._read_value()
553562

0 commit comments

Comments
 (0)