Skip to content

Commit

Permalink
Add additional percentile metrics (#8)
Browse files Browse the repository at this point in the history
* Add additional percentile metrics

* Version updated from v0.2.1 to v0.3.0
  • Loading branch information
mfschubert authored Nov 8, 2023
1 parent 1595afd commit c807036
Show file tree
Hide file tree
Showing 6 changed files with 38 additions and 14 deletions.
2 changes: 1 addition & 1 deletion .bumpversion.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[tool.bumpversion]
current_version = "v0.2.1"
current_version = "v0.3.0"
commit = true
commit_args = "--no-verify"
tag = true
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# invrs-utils - Miscellaneous utilities
`v0.2.1`
`v0.3.0`

This package is a collection of utilities that may be useful, but do not have fundamental roles in the invrs-io ecosystem. These currently include,

Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[project]

name = "invrs_utils"
version = "v0.2.1"
version = "v0.3.0"
description = "Miscellaneous utilities for the invrs-io ecosystem"
keywords = ["topology", "optimization", "jax", "inverse design"]
readme = "README.md"
Expand Down
2 changes: 1 addition & 1 deletion src/invrs_utils/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
Copyright (c) 2023 The INVRS-IO authors.
"""

__version__ = "v0.2.1"
__version__ = "v0.3.0"
__author__ = "Martin F. Schubert <[email protected]>"
30 changes: 24 additions & 6 deletions src/invrs_utils/experiment/data.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,20 @@
LOSS = "loss"
LOSS_MIN = "loss_min"
LOSS_MEAN = "loss_mean"
LOSS_PERCENTILE_10 = "loss_percentile_10"
LOSS_P05 = "loss_p05"
LOSS_P10 = "loss_p10"
LOSS_P25 = "loss_p25"
LOSS_P50 = "loss_p50"

DISTANCE = "distance"
DISTANCE_MIN = "distance_min"
DISTANCE_MEAN = "distance_mean"
DISTANCE_ZERO_STEP = "distance_zero_step"
DISTANCE_ZERO_COUNT = "distance_zero_count"
DISTANCE_PERCENTILE_10 = "distance_percentile_10"
DISTANCE_P05 = "distance_p05"
DISTANCE_P10 = "distance_p10"
DISTANCE_P25 = "distance_p25"
DISTANCE_P50 = "distance_p50"

SUMMARY_INTERVAL = "summary_interval"

Expand Down Expand Up @@ -109,10 +115,16 @@ def summarize_work_unit(
SUMMARY_INTERVAL,
LOSS_MIN,
LOSS_MEAN,
LOSS_PERCENTILE_10,
LOSS_P05,
LOSS_P10,
LOSS_P25,
LOSS_P50,
DISTANCE_MIN,
DISTANCE_MEAN,
DISTANCE_PERCENTILE_10,
DISTANCE_P05,
DISTANCE_P10,
DISTANCE_P25,
DISTANCE_P50,
DISTANCE_ZERO_COUNT,
DISTANCE_ZERO_STEP,
):
Expand All @@ -126,10 +138,16 @@ def summarize_work_unit(

data[LOSS_MIN].append(onp.amin(interval_loss))
data[LOSS_MEAN].append(onp.mean(interval_loss))
data[LOSS_PERCENTILE_10].append(onp.percentile(interval_loss, 10))
data[LOSS_P05].append(onp.percentile(interval_loss, 5))
data[LOSS_P10].append(onp.percentile(interval_loss, 10))
data[LOSS_P25].append(onp.percentile(interval_loss, 25))
data[LOSS_P50].append(onp.percentile(interval_loss, 50))
data[DISTANCE_MIN].append(onp.amin(interval_distance))
data[DISTANCE_MEAN].append(onp.mean(interval_distance))
data[DISTANCE_PERCENTILE_10].append(onp.percentile(interval_distance, 10))
data[DISTANCE_P05].append(onp.percentile(interval_distance, 5))
data[DISTANCE_P10].append(onp.percentile(interval_distance, 10))
data[DISTANCE_P25].append(onp.percentile(interval_distance, 25))
data[DISTANCE_P50].append(onp.percentile(interval_distance, 50))
data[DISTANCE_ZERO_COUNT].append(onp.sum(interval_distance <= 0))

(zero_distance_steps,) = onp.where(interval_distance <= 0)
Expand Down
14 changes: 10 additions & 4 deletions tests/experiment/test_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,10 +91,16 @@ def test_summarize_experiment(self):
data.SUMMARY_INTERVAL,
data.LOSS_MIN,
data.LOSS_MEAN,
data.LOSS_PERCENTILE_10,
data.LOSS_P05,
data.LOSS_P10,
data.LOSS_P25,
data.LOSS_P50,
data.DISTANCE_MIN,
data.DISTANCE_MEAN,
data.DISTANCE_PERCENTILE_10,
data.DISTANCE_P05,
data.DISTANCE_P10,
data.DISTANCE_P25,
data.DISTANCE_P50,
data.DISTANCE_ZERO_STEP,
data.DISTANCE_ZERO_COUNT,
]
Expand All @@ -109,7 +115,7 @@ def test_summarize_experiment(self):
onp.mean(_loss(onp.arange(0, 10))),
)
onp.testing.assert_allclose(
df[df["summary_interval"] == "000-010"][data.LOSS_PERCENTILE_10],
df[df["summary_interval"] == "000-010"][data.LOSS_P10],
onp.percentile(_loss(onp.arange(0, 10)), 10),
)

Expand All @@ -122,7 +128,7 @@ def test_summarize_experiment(self):
onp.mean(_distance(onp.arange(0, 10))),
)
onp.testing.assert_allclose(
df[df["summary_interval"] == "000-010"][data.DISTANCE_PERCENTILE_10],
df[df["summary_interval"] == "000-010"][data.DISTANCE_P10],
onp.percentile(_distance(onp.arange(0, 10)), 10),
)

Expand Down

0 comments on commit c807036

Please sign in to comment.