|
@@ 14-38 (lines=25) @@
|
| 11 |
|
return Experiment("Test experiment") |
| 12 |
|
|
| 13 |
|
|
| 14 |
|
def test_log_scalar_metric_with_run(ex): |
| 15 |
|
START = 10 |
| 16 |
|
END = 100 |
| 17 |
|
STEP_SIZE = 5 |
| 18 |
|
messages = {} |
| 19 |
|
@ex.main |
| 20 |
|
def main_function(_run): |
| 21 |
|
# First, make sure the queue is empty: |
| 22 |
|
assert len(ex.current_run._metrics.get_last_metrics()) == 0 |
| 23 |
|
for i in range(START, END, STEP_SIZE): |
| 24 |
|
val = i*i |
| 25 |
|
_run.log_scalar("training.loss", val, i) |
| 26 |
|
messages["messages"] = ex.current_run._metrics.get_last_metrics() |
| 27 |
|
"""Calling get_last_metrics clears the metrics logger internal queue. |
| 28 |
|
If we don't call it here, it would be called during Sacred heartbeat |
| 29 |
|
event after the run finishes, and the data we want to test would |
| 30 |
|
be lost.""" |
| 31 |
|
ex.run() |
| 32 |
|
assert ex.current_run is not None |
| 33 |
|
messages = messages["messages"] |
| 34 |
|
assert len(messages) == (END - START)/STEP_SIZE |
| 35 |
|
for i in range(len(messages)-1): |
| 36 |
|
assert messages[i].step < messages[i+1].step |
| 37 |
|
assert messages[i].step == START + i * STEP_SIZE |
| 38 |
|
assert messages[i].timestamp <= messages[i + 1].timestamp |
| 39 |
|
|
| 40 |
|
|
| 41 |
|
def test_log_scalar_metric_with_ex(ex): |
|
@@ 41-59 (lines=19) @@
|
| 38 |
|
assert messages[i].timestamp <= messages[i + 1].timestamp |
| 39 |
|
|
| 40 |
|
|
| 41 |
|
def test_log_scalar_metric_with_ex(ex): |
| 42 |
|
messages = {} |
| 43 |
|
START = 10 |
| 44 |
|
END = 100 |
| 45 |
|
STEP_SIZE = 5 |
| 46 |
|
@ex.main |
| 47 |
|
def main_function(_run): |
| 48 |
|
for i in range(START, END, STEP_SIZE): |
| 49 |
|
val = i*i |
| 50 |
|
ex.log_scalar("training.loss", val, i) |
| 51 |
|
messages["messages"] = ex.current_run._metrics.get_last_metrics() |
| 52 |
|
ex.run() |
| 53 |
|
assert ex.current_run is not None |
| 54 |
|
messages = messages["messages"] |
| 55 |
|
assert len(messages) == (END - START) / STEP_SIZE |
| 56 |
|
for i in range(len(messages)-1): |
| 57 |
|
assert messages[i].step < messages[i+1].step |
| 58 |
|
assert messages[i].step == START + i * STEP_SIZE |
| 59 |
|
assert messages[i].timestamp <= messages[i + 1].timestamp |
| 60 |
|
|
| 61 |
|
|
| 62 |
|
def test_log_scalar_metric_with_implicit_step(ex): |