def test_init_run_config_standalone_client(self):
     # When `train_distribute` is specified, TF_CONFIG is detected and
     # `experimental.remote_cluster` is set use distribute coordinator with
     # STANDALONE_CLIENT mode.
     config = run_config_lib.RunConfig(
         train_distribute=mirrored_strategy.MirroredStrategy(),
         experimental_distribute=DistributeConfig(
             remote_cluster={"chief": ["fake_worker"]}))
     self.assertEqual(config._distribute_coordinator_mode,
                      dc.CoordinatorMode.STANDALONE_CLIENT)
    def test_should_run_distribute_coordinator(self):
        """Tests that should_run_distribute_coordinator return a correct value."""
        # We don't use distribute coordinator for local training.
        self.assertFalse(
            dc_training.should_run_distribute_coordinator(
                run_config_lib.RunConfig()))

        # When `train_distribute` is not specified, don't use distribute
        # coordinator.
        with test.mock.patch.dict(
                "os.environ", {"TF_CONFIG": json.dumps(TF_CONFIG_WITH_CHIEF)}):
            self.assertFalse(
                dc_training.should_run_distribute_coordinator(
                    run_config_lib.RunConfig()))

        # When `train_distribute` is specified and TF_CONFIG is detected, use
        # distribute coordinator.
        with test.mock.patch.dict(
                "os.environ", {"TF_CONFIG": json.dumps(TF_CONFIG_WITH_CHIEF)}):
            config_with_train_distribute = run_config_lib.RunConfig(
                experimental_distribute=DistributeConfig(
                    train_distribute=mirrored_strategy.MirroredStrategy(
                        num_gpus=2)))
            config_with_eval_distribute = run_config_lib.RunConfig(
                experimental_distribute=DistributeConfig(
                    eval_distribute=mirrored_strategy.MirroredStrategy(
                        num_gpus=2)))
        self.assertTrue(
            dc_training.should_run_distribute_coordinator(
                config_with_train_distribute))
        self.assertFalse(
            dc_training.should_run_distribute_coordinator(
                config_with_eval_distribute))

        # With a master in the cluster, don't run distribute coordinator.
        with test.mock.patch.dict(
                "os.environ",
            {"TF_CONFIG": json.dumps(TF_CONFIG_WITH_MASTER)}):
            config = run_config_lib.RunConfig(
                experimental_distribute=DistributeConfig(
                    train_distribute=mirrored_strategy.MirroredStrategy(
                        num_gpus=2)))
        self.assertFalse(dc_training.should_run_distribute_coordinator(config))
Esempio n. 3
0
 def test_previously_unexpected_cluster_spec(self):
   with test.mock.patch.dict(
       "os.environ", {"TF_CONFIG": json.dumps(TF_CONFIG_WITHOUT_TASK)}):
     run_config_lib.RunConfig(
         experimental_distribute=DistributeConfig(
             train_distribute=mirrored_strategy.MirroredStrategy(num_gpus=2)))