3 回答

TA贡献1876条经验 获得超5个赞
K.clear_session()
不足以重置状态并确保可重复性。您还需要:
设置(和重置)随机种子
重置 TensorFlow 默认图
删除以前的模型
完成以下各项的代码。
reset_seeds()
model = make_model() # example function to instantiate model
model.fit(x_good, y_good)
del model
K.clear_session()
tf.compat.v1.reset_default_graph()
reset_seeds()
model = make_model()
model.fit(x_bad, y_bad)
请注意,如果其他变量引用模型,您也应该使用del它们 - 例如model = make_model(); model2 = model--> del model, model2- 否则它们可能会持续存在。最后,tf随机种子不像random's 或numpy's 那样容易重置,并且需要事先清除图形。
使用的功能/模块:
import tensorflow as tf
import numpy as np
import random
import keras.backend as K
def reset_seeds():
np.random.seed(1)
random.seed(2)
if tf.__version__[0] == '2':
tf.random.set_seed(3)
else:
tf.set_random_seed(3)
print("RANDOM SEEDS RESET")

TA贡献1804条经验 获得超3个赞
您K.clear_session()
以错误的方式使用,要获得具有随机初始化权重的模型,您应该删除旧模型(使用del
关键字),然后继续创建一个新模型,并对其进行训练。
您可以K.clear_session()
在每次安装程序后使用。
添加回答
举报