如何使用 AutoKeras 获得可重现的结果

How to get Reproducible Results with AutoKeras

对于相同的输入和配置,我需要使用 AutoKeras 重现结果:我在笔记本的开头尝试了以下操作,但仍然没有得到相同的结果。

我正在使用 Tensorflow 2.0.4 和 AutoKeras 1.0.12

seed_value= 0

import os
os.environ['PYTHONHASHSEED']=str(seed_value)
os.environ['TF_CUDNN_DETERMINISTIC'] = str(seed_value)


import tensorflow as tf
tf.random.set_seed(seed_value)

from keras import backend as K
import autokeras as ak


import random
random.seed(seed_value)


import numpy as np
np.random.seed(seed_value)

注意: 我想在不同时间重现结果;即在关闭笔记本后得到相同的结果,然后再次 运行 代码 .. 不在同一会话期间。

我想,您需要在 each 调用之前对生成器进行播种才能重现。最好的选择是制作这样的装饰器(或上下文管理器):

import contextlib

@contextlib.contextmanager
def reproducable(seed_value=0):
    import os
    os.environ['PYTHONHASHSEED']=str(seed_value)
    os.environ['TF_CUDNN_DETERMINISTIC'] = str(seed_value)

    import tensorflow as tf
    tf.random.set_seed(seed_value)

    from keras import backend as K
    import autokeras as ak

    import random
    random.seed(seed_value)

    import numpy as np
    np.random.seed(seed_value)

    yield 


@reproducable()
def main():
    # ...put your code here...

更新

Note: I want to reproduce results at different times; i.e. to get the same result after closing the notebook, and run the code again .. not during the same session.

和?