谷歌云ml需要什么级别的控制

时间:2017-05-09 19:19:26

标签: google-cloud-platform google-cloud-ml

使用Google Cloud ML训练模型时:

官方示例https://github.com/GoogleCloudPlatform/cloudml-samples/blob/master/census/tensorflowcore/trainer/task.py使用hooks,is_client,MonitoredTrainingSession和其他一些复杂性。

云ml是否需要这个或者足够使用这个例子:https://github.com/amygdala/tensorflow-workshop/tree/master/workshop_sections/wide_n_deep

文档在最佳实践和优化方面有点受限,GCP ML是否会处理客户端/工作人员模式,或者我们是否需要设置设备,例如replica_device_setter等等?

1 个答案:

答案 0 :(得分:1)

CloudML Engine在很大程度上与您编写TensorFlow程序的方式无关。您提供了一个Python程序,该服务为您执行,为其提供一些environment variables,您可以使用它来执行分布式培训(如果需要),例如任务索引等。

census/tensorflowcore演示如何使用“核心”TensorFlow库执行操作 - 如何“从头开始”执行所有操作,包括使用replica_device_settersMonitoredTrainingSessions等。有时需要最大的灵活性,但可能很乏味。

除了人口普查/ tensorflowcore示例,您还会看到一个名为census/estimator的示例。此示例基于更高级别的库,不幸的是,它位于contrib中,因此还没有完全稳定的API(期望大量的弃用警告等)。期待它在TensorFlow的未来版本中稳定下来。

特别是库(称为Estimators)是一个更高级别的API,可以为您处理大量的脏工作。它将为您解析TF_CONFIG并设置replica_device_setter以及处理MonitoredTrainingSession和必要的Hook,同时保持相当可自定义。

这是您指向的广泛而深入的示例所基于的库,并且它们在服务上完全受支持。