Skip to content

Commit 438699c

Browse files
qinxuyewjsi
authored andcommitted
Fix random execute that a random tensor can have different results when executed in different sessions (#174)
1 parent d9e0ea2 commit 438699c

File tree

3 files changed

+13
-4
lines changed

3 files changed

+13
-4
lines changed

mars/_version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import os
1717
import sys
1818

19-
version_info = (0, 1, 0, 'b1')
19+
version_info = (0, 2, 0, 'a1')
2020
_num_index = max(idx if isinstance(v, int) else 0
2121
for idx, v in enumerate(version_info))
2222
__version__ = '.'.join(map(str, version_info[:_num_index + 1])) + \

mars/tensor/expressions/random/core.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
class RandomState(object):
3434
def __init__(self, seed=None):
3535
self._random_state = np.random.RandomState(seed=seed)
36-
self._curr_seed = seed
3736

3837
def seed(self, seed=None):
3938
"""
@@ -53,11 +52,10 @@ def seed(self, seed=None):
5352
RandomState
5453
"""
5554
self._random_state.seed(seed=seed)
56-
self._curr_seed = seed
5755

5856
@property
5957
def _state(self):
60-
return State(self._random_state) if self._curr_seed is not None else None
58+
return State(self._random_state)
6159

6260
@classmethod
6361
def _handle_size(cls, size):

mars/tests/test_session.py

+11
Original file line numberDiff line numberDiff line change
@@ -183,3 +183,14 @@ def testArrayProtocol(self):
183183

184184
result = np.asarray(arr4, dtype=np.float_)
185185
np.testing.assert_array_equal(result, np.asarray(200, dtype=np.float_))
186+
187+
def testRandomExecuteInSessions(self):
188+
arr = mt.random.rand(20, 20)
189+
190+
sess1 = new_session()
191+
res1 = sess1.run(arr)
192+
193+
sess2 = new_session()
194+
res2 = sess2.run(arr)
195+
196+
np.testing.assert_array_equal(res1, res2)

0 commit comments

Comments
 (0)