使用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/