Esempio n. 1
0
  def testDoWithCustomSplits(self):
    # Update input dict.
    io_utils.copy_dir(
        os.path.join(self._testdata_dir, 'iris/data/train'),
        os.path.join(self._output_data_dir, 'data/training'))
    io_utils.copy_dir(
        os.path.join(self._testdata_dir, 'iris/data/eval'),
        os.path.join(self._output_data_dir, 'data/evaluating'))
    examples = standard_artifacts.Examples()
    examples.uri = os.path.join(self._output_data_dir, 'data')
    examples.split_names = artifact_utils.encode_split_names(
        ['training', 'evaluating'])
    self._input_dict['examples'] = [examples]

    # Update exec properties skeleton with custom splits.
    self._exec_properties['train_args'] = json_format.MessageToJson(
        trainer_pb2.TrainArgs(splits=['training'], num_steps=1000),
        preserving_proto_field_name=True)
    self._exec_properties['eval_args'] = json_format.MessageToJson(
        trainer_pb2.EvalArgs(splits=['evaluating'], num_steps=500),
        preserving_proto_field_name=True)
    self._exec_properties['module_file'] = os.path.join(self._testdata_dir,
                                                        'module_file',
                                                        'tuner_module.py')

    tuner = executor.Executor(self._context)
    tuner.Do(
        input_dict=self._input_dict,
        output_dict=self._output_dict,
        exec_properties=self._exec_properties)

    self._verify_output()
Esempio n. 2
0
    def testDoWithCustomSplits(self):
        # Update input dict.
        io_utils.copy_dir(
            os.path.join(self._testdata_dir, 'penguin/data/train'),
            os.path.join(self._output_data_dir, 'data/training'))
        io_utils.copy_dir(
            os.path.join(self._testdata_dir, 'penguin/data/eval'),
            os.path.join(self._output_data_dir, 'data/evaluating'))
        examples = standard_artifacts.Examples()
        examples.uri = os.path.join(self._output_data_dir, 'data')
        examples.split_names = artifact_utils.encode_split_names(
            ['training', 'evaluating'])
        self._input_dict[standard_component_specs.EXAMPLES_KEY] = [examples]

        # Update exec properties skeleton with custom splits.
        self._exec_properties[standard_component_specs.
                              TRAIN_ARGS_KEY] = proto_utils.proto_to_json(
                                  trainer_pb2.TrainArgs(splits=['training'],
                                                        num_steps=1000))
        self._exec_properties[standard_component_specs.
                              EVAL_ARGS_KEY] = proto_utils.proto_to_json(
                                  trainer_pb2.EvalArgs(splits=['evaluating'],
                                                       num_steps=500))
        self._exec_properties[
            standard_component_specs.MODULE_FILE_KEY] = os.path.join(
                self._testdata_dir, 'module_file', 'tuner_module.py')

        tuner = executor.Executor(self._context)
        tuner.Do(input_dict=self._input_dict,
                 output_dict=self._output_dict,
                 exec_properties=self._exec_properties)

        self._verify_output()
Esempio n. 3
0
    def testTuneArgs(self):
        with self.assertRaises(ValueError):
            self._exec_properties['tune_args'] = proto_utils.proto_to_json(
                tuner_pb2.TuneArgs(num_parallel_trials=3))

            tuner = executor.Executor(self._context)
            tuner.Do(input_dict=self._input_dict,
                     output_dict=self._output_dict,
                     exec_properties=self._exec_properties)
Esempio n. 4
0
    def testDoWithModuleFile(self):
        self._exec_properties['module_file'] = os.path.join(
            self._testdata_dir, 'module_file', 'tuner_module.py')

        tuner = executor.Executor(self._context)
        tuner.Do(input_dict=self._input_dict,
                 output_dict=self._output_dict,
                 exec_properties=self._exec_properties)

        self._verify_output()
Esempio n. 5
0
    def testTuneArgs(self):
        with self.assertRaises(ValueError):
            self._exec_properties['tune_args'] = json_format.MessageToJson(
                tuner_pb2.TuneArgs(num_parallel_trials=3),
                preserving_proto_field_name=True)

            tuner = executor.Executor(self._context)
            tuner.Do(input_dict=self._input_dict,
                     output_dict=self._output_dict,
                     exec_properties=self._exec_properties)
Esempio n. 6
0
    def testDoWithTunerFn(self):
        self._exec_properties['tuner_fn'] = '%s.%s' % (
            tuner_module.tuner_fn.__module__, tuner_module.tuner_fn.__name__)

        tuner = executor.Executor(self._context)
        tuner.Do(input_dict=self._input_dict,
                 output_dict=self._output_dict,
                 exec_properties=self._exec_properties)

        self._verify_output()
Esempio n. 7
0
    def testDoWithModuleFile(self):
        self._exec_properties[
            standard_component_specs.MODULE_FILE_KEY] = os.path.join(
                self._testdata_dir, 'module_file', 'tuner_module.py')

        tuner = executor.Executor(self._context)
        tuner.Do(input_dict=self._input_dict,
                 output_dict=self._output_dict,
                 exec_properties=self._exec_properties)

        self._verify_output()
Esempio n. 8
0
    def testTuneArgs(self):
        with self.assertRaises(ValueError):
            self._exec_properties[standard_component_specs.
                                  TUNE_ARGS_KEY] = proto_utils.proto_to_json(
                                      tuner_pb2.TuneArgs(
                                          num_parallel_trials=3))

            tuner = executor.Executor(self._context)
            tuner.Do(input_dict=self._input_dict,
                     output_dict=self._output_dict,
                     exec_properties=self._exec_properties)
Esempio n. 9
0
    def testMultipleArtifacts(self):
        self._input_dict['examples'] = self._multiple_artifacts
        self._exec_properties['module_file'] = os.path.join(
            self._testdata_dir, 'module_file', 'tuner_module.py')

        tuner = executor.Executor(self._context)
        tuner.Do(input_dict=self._input_dict,
                 output_dict=self._output_dict,
                 exec_properties=self._exec_properties)

        self._verify_output()
Esempio n. 10
0
    def testDoWithTunerFn(self):
        self._exec_properties[
            standard_component_specs.TUNER_FN_KEY] = '%s.%s' % (
                tuner_module.tuner_fn.__module__,
                tuner_module.tuner_fn.__name__)

        tuner = executor.Executor(self._context)
        tuner.Do(input_dict=self._input_dict,
                 output_dict=self._output_dict,
                 exec_properties=self._exec_properties)

        self._verify_output()
Esempio n. 11
0
    def testMultipleArtifacts(self):
        self._input_dict[
            standard_component_specs.EXAMPLES_KEY] = self._multiple_artifacts
        self._exec_properties[
            standard_component_specs.MODULE_FILE_KEY] = os.path.join(
                self._testdata_dir, 'module_file', 'tuner_module.py')

        tuner = executor.Executor(self._context)
        tuner.Do(input_dict=self._input_dict,
                 output_dict=self._output_dict,
                 exec_properties=self._exec_properties)

        self._verify_output()