Beispiel #1
0
 def test_log_batch_same_metric_repeated_single_req(self):
     fs = FileStore(self.test_root)
     run = self._create_run(fs)
     metric0 = Metric(key="metric-key", value=1, timestamp=2, step=0)
     metric1 = Metric(key="metric-key", value=2, timestamp=3, step=0)
     fs.log_batch(run.info.run_id,
                  params=[],
                  metrics=[metric0, metric1],
                  tags=[])
     self._verify_logged(fs,
                         run.info.run_id,
                         params=[],
                         metrics=[metric0, metric1],
                         tags=[])
Beispiel #2
0
 def test_log_batch_allows_tag_overwrite(self):
     fs = FileStore(self.test_root)
     run = self._create_run(fs)
     fs.log_batch(run.info.run_id,
                  metrics=[],
                  params=[],
                  tags=[RunTag("t-key", "val")])
     fs.log_batch(run.info.run_id,
                  metrics=[],
                  params=[],
                  tags=[RunTag("t-key", "newval")])
     self._verify_logged(fs,
                         run.info.run_id,
                         metrics=[],
                         params=[],
                         tags=[RunTag("t-key", "newval")])
Beispiel #3
0
 def test_log_batch_tags_idempotency(self):
     fs = FileStore(self.test_root)
     run = self._create_run(fs)
     fs.log_batch(run.info.run_id,
                  metrics=[],
                  params=[],
                  tags=[RunTag("t-key", "t-val")])
     fs.log_batch(run.info.run_id,
                  metrics=[],
                  params=[],
                  tags=[RunTag("t-key", "t-val")])
     self._verify_logged(fs,
                         run.info.run_id,
                         metrics=[],
                         params=[],
                         tags=[RunTag("t-key", "t-val")])
Beispiel #4
0
 def test_log_batch(self):
     fs = FileStore(self.test_root)
     run = fs.create_run(experiment_id=FileStore.DEFAULT_EXPERIMENT_ID,
                         user_id='user',
                         start_time=0,
                         tags=[])
     run_id = run.info.run_id
     metric_entities = [
         Metric("m1", 0.87, 12345, 0),
         Metric("m2", 0.49, 12345, 0)
     ]
     param_entities = [Param("p1", "p1val"), Param("p2", "p2val")]
     tag_entities = [RunTag("t1", "t1val"), RunTag("t2", "t2val")]
     fs.log_batch(run_id=run_id,
                  metrics=metric_entities,
                  params=param_entities,
                  tags=tag_entities)
     self._verify_logged(fs, run_id, metric_entities, param_entities,
                         tag_entities)
Beispiel #5
0
 def test_log_batch(self):
     fs = FileStore(self.test_root)
     run = fs.create_run(
         experiment_id=Experiment.DEFAULT_EXPERIMENT_ID, user_id='user', run_name=None,
         source_type='source_type', source_name='source_name',
         entry_point_name='entry_point_name', start_time=0, source_version=None, tags=[],
         parent_run_id=None)
     run_uuid = run.info.run_uuid
     metric_entities = [Metric("m1", 0.87, 12345), Metric("m2", 0.49, 12345)]
     param_entities = [Param("p1", "p1val"), Param("p2", "p2val")]
     tag_entities = [RunTag("t1", "t1val"), RunTag("t2", "t2val")]
     fs.log_batch(
         run_id=run_uuid, metrics=metric_entities, params=param_entities, tags=tag_entities)
     run = fs.get_run(run_uuid)
     tags = [(t.key, t.value) for t in run.data.tags]
     metrics = [(m.key, m.value, m.timestamp) for m in run.data.metrics]
     params = [(p.key, p.value) for p in run.data.params]
     assert set(tags) == set([("t1", "t1val"), ("t2", "t2val")])
     assert set(metrics) == set([("m1", 0.87, 12345), ("m2", 0.49, 12345)])
     assert set(params) == set([("p1", "p1val"), ("p2", "p2val")])
Beispiel #6
0
    def test_log_batch_internal_error(self):
        # Verify that internal errors during log_batch result in MlflowExceptions
        fs = FileStore(self.test_root)
        run = self._create_run(fs)

        def _raise_exception_fn(*args, **kwargs):  # pylint: disable=unused-argument
            raise Exception("Some internal error")
        with mock.patch("mlflow.store.file_store.FileStore.log_metric") as log_metric_mock, \
                mock.patch("mlflow.store.file_store.FileStore.log_param") as log_param_mock, \
                mock.patch("mlflow.store.file_store.FileStore.set_tag") as set_tag_mock:
            log_metric_mock.side_effect = _raise_exception_fn
            log_param_mock.side_effect = _raise_exception_fn
            set_tag_mock.side_effect = _raise_exception_fn
            for kwargs in [{"metrics": [Metric("a", 3, 1)]}, {"params": [Param("b", "c")]},
                           {"tags": [RunTag("c", "d")]}]:
                log_batch_kwargs = {"metrics": [], "params": [], "tags": []}
                log_batch_kwargs.update(kwargs)
                print(log_batch_kwargs)
                with self.assertRaises(MlflowException) as e:
                    fs.log_batch(run.info.run_uuid, **log_batch_kwargs)
                self.assertIn(str(e.exception.message), "Some internal error")
                assert e.exception.error_code == ErrorCode.Name(INTERNAL_ERROR)
Beispiel #7
0
 def test_log_batch_accepts_empty_payload(self):
     fs = FileStore(self.test_root)
     run = self._create_run(fs)
     fs.log_batch(run.info.run_uuid, metrics=[], params=[], tags=[])
     self._verify_logged(fs, run.info.run_uuid, metrics=[], params=[], tags=[])
Beispiel #8
0
 def test_log_batch_allows_tag_overwrite_single_req(self):
     fs = FileStore(self.test_root)
     run = self._create_run(fs)
     tags = [RunTag("t-key", "val"), RunTag("t-key", "newval")]
     fs.log_batch(run.info.run_uuid, metrics=[], params=[], tags=tags)
     self._verify_logged(fs, run.info.run_uuid, metrics=[], params=[], tags=[tags[-1]])