我的印象是,即使将分配策略配置为使用至少2个GPU的evaluate(),在tf.estimator.Estimator实例上调用MirroredStrategy也不在多个GPU上运行模型。

这是表明此行为的示例脚本:https://gist.github.com/patzm/b69fcdf33fc9062683d749d0ea936b5e

这是nvidia-smi的屏幕截图,显示了此行为:
python - tf.estimator.Estimator.evaluate()是否始终在一个GPU上运行吗?-LMLPHP

如果evaluate()应该在多个GPU上运行(如上所述),请在回答中突出显示我的错误。

最佳答案

在您的RunConfig中,也将策略设置为eval_distribute,详细信息请参见this

run_config = tf.estimator.RunConfig(
    model_dir=tf.test.get_temp_dir(),
    session_config=tf.ConfigProto(allow_soft_placement=True),
    train_distribute=distribution_strategy,
    eval_distribute=distribution_strategy
)

关于python - tf.estimator.Estimator.evaluate()是否始终在一个GPU上运行吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52097928/

10-12 17:53