使用MultiWorkerMirroredStrategy()在Google AI平台(CMLE)上训练Custom Estimator时遇到以下错误。

ValueError: Unrecognized task_type: 'master', valid task types are: "chief", "worker", "evaluator" and "ps".


MirroredStrategy()和PamameterServerStrategy()在AI平台上使用各自的config.yaml文件都可以正常工作。我目前不提供任何操作的设备范围。我都没有在会话配置tf.ConfigProto(device_filters=device_filters)中提供任何设备筛选器。

我正在使用MultiWorkerMirroredStrategy()进行训练的config.yaml文件是:

trainingInput:
  scaleTier: CUSTOM
  masterType: standard_gpu
  workerType: standard_gpu
  workerCount: 4


masterType输入对于在AI平台上提交培训作业是必需的。

注意:它显示“首席”为有效任务类型,而显示“主”为无效任务。我在setup.py中为Trainer软件包提供tensorflow-gpu == 1.14.0。

最佳答案

我遇到了同样的问题。据我了解,MultiWorkerMirroredStrategy配置值与其他策略以及CMLE默认提供的配置不同:https://www.tensorflow.org/tutorials/distribute/multi_worker_with_keras#multi-worker_configuration

它不支持“主”节点,而是称其为“主”节点。
如果您正在容器中运行作业,则可以尝试使用“ useChiefInTfConfig”标志,请参见此处的文档:https://developers.google.com/resources/api-libraries/documentation/ml/v1/python/latest/ml_v1.projects.jobs.html

否则,您可以尝试手动修改TF_CONFIG:

  TF_CONFIG = os.environ.get('TF_CONFIG')
  if TF_CONFIG and '"master"' in TF_CONFIG:
    os.environ['TF_CONFIG'] = TF_CONFIG.replace('"master"', '"chief"')

关于tensorflow - MultiWorkerMirroredStrategy()在Google AI平台(CMLE)上不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58255039/

10-13 06:38