我的印象是,即使将分配策略配置为使用至少2个GPU的evaluate()
,在tf.estimator.Estimator
实例上调用MirroredStrategy
也不在多个GPU上运行模型。
这是表明此行为的示例脚本:https://gist.github.com/patzm/b69fcdf33fc9062683d749d0ea936b5e
这是nvidia-smi
的屏幕截图,显示了此行为:
如果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/