在CNTK中重置随机种子

时间:2018-10-25 11:41:59

标签: python cntk

有没有办法重置CNTK的随机性?

cntk.random的API在随机操作的构造函数中显示种子。施工后可以换种子吗?我正在寻找这样的功能:

b = C.random.normal((1,), seed=0)
b.eval(device=C.cpu()) # 0.2341
b.eval(device=C.cpu()) # 0.1294
b.reseed(0)
b.eval(device=C.cpu()) # 0.2341

不幸的是,我在图表的许多地方都使用了b。我希望所有这些操作再次获得相同的随机性。如果我仅定义一个新的随机变量a = C.random.normal((1,), seed = same_as_b),则它不会集成到我的图形中。

1 个答案:

答案 0 :(得分:1)

重新定义随机数生成器似乎对我有用。

import cntk as C


a = C.random.normal((1,), seed=0)
print(a.eval())  # 0.2925366
print(a.eval())  # 1.6854208
a = C.random.normal((1,), seed=0)
print(a.eval())  # 0.2925366
print(a.eval())  # 1.6854208

无论如何,一旦定义了Python API,就没有这种机制可以重置随机数生成器。