google cloud ml 需要什么级别的控制

What level of control is required for google cloud ml

使用 google 云 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 会处理 client/worker 模式还是我们需要设置设备,例如replica_device_setter 等等?

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

census/tensorflowcore 演示了如何使用 "core" TensorFlow 库做事——如何做所有事情 "from scratch",包括使用 replica_device_settersMonitoredTrainingSessions、等等。有时这对于最终的灵活性可能是必要的,但可能很乏味。

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

那个特别的库(称为 Estimators)是更高级别的 API,它会为您处理很多繁琐的工作。它将为您解析 TF_CONFIG 并设置 replica_device_setter 以及处理 MonitoredTrainingSession 和必要的 Hook,同时保持相当可定制性。

这与您指向的广度和深度示例所基于的库相同,并且它们在服务上得到完全支持。