问题
我无法使用TensorFlow 1.14在GCP的AI平台上获得可重复的结果。这使超参数调整变得困难,因为我不确定性能的变化是由于超参数本身还是由于随机性。
模型是简单的即用型DNN估算器。
我尝试过的事情
在task.py
文件中,我具有以下内容:
tf.set_random_seed(42)
...
run_config = tf.estimator.RunConfig(tf_random_seed=42)
estimator = tf.estimator.DNNClassifier(
feature_columns=feature_columns,
n_classes=len(target_list),
optimizer=tf.compat.v1.train.AdamOptimizer(learning_rate=args.learning_rate),
batch_norm=True,
model_dir=model_dir,
config=run_config)
...
为了获得可再现的结果,还需要做其他事情吗?
如果您使用参数服务器策略进行分布式培训,则不会获得可重复性。如果重复性对您很重要,请使用镜像策略(或多工镜像策略)。按照设计,参数服务器无法获得可重复性-参数服务器速度更快,因为它通过不等待散乱的工作人员而避免了尾部延迟。