如何使用 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.
和?
对于相同的输入和配置,我需要使用 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.
和?