Beispiel #1
0
    def _maybe_write_metric(self, metric_key: str, metric_val: Any,
                            step: int) -> None:
        # For now, we only log scalar metrics.
        if not util.is_numerical_scalar(metric_val):
            return

        self.writer.add_scalar("Determined/" + metric_key, metric_val, step)
Beispiel #2
0
def test_is_numerical_scalar() -> None:
    assert metric_writers_util.is_numerical_scalar(1)
    assert metric_writers_util.is_numerical_scalar(1.0)
    assert metric_writers_util.is_numerical_scalar(-3.14)
    assert metric_writers_util.is_numerical_scalar(np.ones(shape=()))
    assert metric_writers_util.is_numerical_scalar(np.array(1))
    assert metric_writers_util.is_numerical_scalar(np.array(-3.14))
    assert metric_writers_util.is_numerical_scalar(np.array([1.0])[0])
Beispiel #3
0
def test_is_not_numerical_scalar() -> None:
    # Invalid types
    assert not metric_writers_util.is_numerical_scalar("foo")
    assert not metric_writers_util.is_numerical_scalar(np.array("foo"))
    assert not metric_writers_util.is_numerical_scalar(object())

    # Invalid shapes
    assert not metric_writers_util.is_numerical_scalar([1])
    assert not metric_writers_util.is_numerical_scalar(np.array([3.14]))
    assert not metric_writers_util.is_numerical_scalar(np.ones(shape=(5, 5)))