0

问题

我无法使用 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)
     ...

为了获得可重复的结果,是否还需要做其他事情?

4

1 回答 1

0

如果您使用参数服务器策略进行分布式训练,您将无法获得可重复性。如果可重复性对您很重要,请使用镜像策略(或多工人镜像策略)。按照设计,参数服务器无法获得可重复性——参数服务器更快,正是因为它通过不等待散乱的工作人员来避免尾部延迟。

于 2020-05-25T19:22:28.627 回答