使用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
等等?
答案 0 :(得分:1)
CloudML Engine在很大程度上与您编写TensorFlow程序的方式无关。您提供了一个Python程序,该服务为您执行,为其提供一些environment variables,您可以使用它来执行分布式培训(如果需要),例如任务索引等。
census/tensorflowcore演示如何使用“核心”TensorFlow库执行操作 - 如何“从头开始”执行所有操作,包括使用replica_device_setters
,MonitoredTrainingSessions
等。有时需要最大的灵活性,但可能很乏味。
除了人口普查/ tensorflowcore示例,您还会看到一个名为census/estimator的示例。此示例基于更高级别的库,不幸的是,它位于contrib
中,因此还没有完全稳定的API(期望大量的弃用警告等)。期待它在TensorFlow的未来版本中稳定下来。
特别是库(称为Estimators
)是一个更高级别的API,可以为您处理大量的脏工作。它将为您解析TF_CONFIG
并设置replica_device_setter
以及处理MonitoredTrainingSession
和必要的Hook
,同时保持相当可自定义。
这是您指向的广泛而深入的示例所基于的库,并且它们在服务上完全受支持。