diff --git a/experiments/e55-step-ledger/FINDINGS.md b/experiments/e55-step-ledger/FINDINGS.md new file mode 100644 index 0000000..66e6b16 --- /dev/null +++ b/experiments/e55-step-ledger/FINDINGS.md @@ -0,0 +1,92 @@ +# E55: a step ledger on both sides of the boundary catches and locates every fault in what crosses, with no reference run, across machines too + +2026-10-02 · guangzhao (E54's `bridges-venv`) and a Windows 11 laptop +(Python 3.11.14, numpy 2.3.2, gymnasium 1.3.0) over Tailscale · protocol: +[`PROTOCOL.md`](PROTOCOL.md), after the pilots in `results/pilot/`, before +the registered runs · no amendment + +--- + +## The result + +E54's faults on Pendulum, at doses one, 0.01 and 1.0. Each environment was +wrapped in `LedgerEnv`, which records what it took and gave. The trainer +recorded what it sent and received. `ledger.py` compared the two, step by +step, with no fault-free run. + +| | runs | client faults caught and located | false alarms | ledger or record | +| --- | --- | --- | --- | --- | +| one machine, seeds 0-2 | 216 | **189 of 189** | 0 of 27 | 207 of 207 | +| across machines, seed 0 | 24 | **21 of 21** | 0 of 3 | 23 of 23 | + +Every check and prediction holds (`results/verdicts.txt`): +- **V1:** all 240 runs completed; every client exited 0. +- **V2:** `none` ended on E50's weights at seeds 0-2. The wrapper changes + nothing that crosses. +- **P1:** on one machine, all 189 client-fault runs with a changed value + were caught. Each first difference was the fault's first changed cell, + in the field the fault touches. +- **P2:** no difference in any of the 30 control and log-fault runs, on one + machine or across two. +- **P3:** across machines, all 21 client faults at one value were caught + and located; `none` showed no difference. +- **P4:** across machines, `none` ended on `d7a19cc0`, not guangzhao's + `ec5b8226`. +- **P5:** the ledger or E54's record caught every run with a changed value: + 207 of 207, and 23 of 23. + +--- + +## What it means + +**Compare the two sides, and nothing else is needed.** A boundary fault is a +difference between what the environment took and gave and what the +trainer sent and received. Recording both and comparing them finds the +fault where it is: the step, the env and the field. The ledger counted +exactly the values a fault changed: 1,068 for `obs:f16` at 1%, the same +count the client kept. It does not need a fault-free run, a seed that +reproduces, or the two sides on one machine. + +**Across machines it is the only check of the four that sees every fault +in what crosses.** +- Byte identity cannot be used there. A fault-free run across machines + ended on other weights than the same seed on guangzhao, as E43 and E50 + found: it would have called that run faulty. +- The status rule caught none of the 24 runs. +- E54's record caught 8, the faults that change the books. +- The ledger caught all 21 client faults and raised no alarm on the three + others. + +**What it leaves to the record.** A fault in the trainer's own log changes +nothing that crosses, so the ledger cannot see it. E54's record, kept at the +environment, catches those. The two together caught every fault, on one +machine and across two. + +**What it costs.** The ledger is a wrapper around each environment, plus a +trace on the trainer's side. Neither changed a byte of what crossed (V2). +A run across machines took 42-55 s, against 20 s on one machine. That is +the link, not the ledger: E43 measured the crossing's cost. + +--- + +## What E55 does not show + +* **A ledger checked while the run goes on.** The two sides were compared + after each run. A digest of each step carried in the protocol would let + the server check as it goes; that is a protocol feature still to design. +* **Faults inside the environment, or before the wrapper.** The ledger sits + at the environment's own interface. A fault there, or in an environment + reached only through its own client, is beyond it. +* **Any env but Pendulum, or any trainer but SB3.** E54 covers HalfCheetah + for the other checks. +* **Faults it was not built to see.** Every field it compares is one E54 + injected a fault into; a field that crosses and is not compared + (`info`) is not checked. + +Kept here, in `results/` and `results/cross/`: `ledger.csv` (`ledger.py`), +`runs.csv` and `summary.txt` (`summarise.py`), `runs.jsonl` (`merge_runs.py`, +every run's `result.json` and `fault.json`), and `verdicts.txt` +(`verdicts.py`). The per-run directories are kept on guangzhao and the +laptop and not committed: traces and ledgers, the episode logs and the +final policies. A run on one machine is deterministic, so rerunning its line +of `jobs.txt` there reproduces them. diff --git a/experiments/e55-step-ledger/PROTOCOL.md b/experiments/e55-step-ledger/PROTOCOL.md new file mode 100644 index 0000000..9dc187e --- /dev/null +++ b/experiments/e55-step-ledger/PROTOCOL.md @@ -0,0 +1,144 @@ +# E55 measurement protocol (pre-registered) + +**Written 2026-10-02, after the pilots in `results/pilot/`, before the +registered runs.** + +This file must not be edited after the first registered data point. Anything +learned afterwards goes in `AMENDMENT.md`, dated. + +--- + +## The question + +E54 found two checks that between them catch every fault it injected: +- **byte identity** needs a fault-free run at the same seed on the same + machine, so it cannot judge a run across machines; +- **reconciliation** with an env-side record of episodes cannot see faults + in observations or actions, which leave the episodes as the environment + produced them. + +A boundary fault is a difference between what the environment took and +gave and what the trainer sent and received. So: + +**Does a step ledger kept on both sides of the boundary, compared step by +step, catch every fault in what crosses, and locate it? Does it do so with +no reference run, and with the two sides on different machines?** + +--- + +## Declared in advance: what was already known + +1. **The code**, E54's with two additions. + - `faulty_client.py`: E54's client. Each environment is wrapped in + `LedgerEnv`, a gymnasium wrapper outside the client's own code. It + records, for each step: + - the observation the environment had given before it; + - the action it was handed; + - the reward, flags and observation it returned. + `--ledger` saves the record. + - `train.py`: E54's, plus two things: + - it passes `--ledger` to the client; + - `--external-client`: the bridge listens on every address and starts + no client, for runs whose client is on another machine (`cross.sh`). + Its `--trace` keeps the trainer's side, as in E54. + - `ledger.py` compares the two sides, env by env, step by step: + observation, action, reward, episode end, time limit, final + observation, and the number of steps. It needs no fault-free run. + - `jobs.py`, `run.sh` (same machine, ports 8870-8879), `cross.sh` + (across machines, port 8880), and E54's `summarise.py`. +2. **The faults and doses** are E54's (its `PROTOCOL.md`), at doses one, + 0.01 and 1.0. +3. **The machines.** + - guangzhao: E54's `bridges-venv`. + - the laptop: a Windows 11 laptop, Python 3.11 with gymnasium 1.3.0 and + numpy 2.3.2. It reaches guangzhao over Tailscale at about 5 ms. +4. **The pilots**, at seed 9, in `results/pilot/`. + - **Same machine** (`same-ledger.csv`, `same-summary.txt`): 72 runs. + - `none` ended on E50's pilot weights (`3721266c`), so the wrapper + changes nothing that crosses. + - The ledger caught all 63 client-fault runs with a changed value, at + their first changed cell and field. + - It found no difference in the 3 controls and the 6 log-fault runs: + 72 of 72 right. + - One defect, fixed before this protocol: `ledger.py` crashed on a run + whose envs never stepped (`step:fill` at every value). + - **Across machines** (`cross-ledger.csv`): 7 runs, at one cell where + there was a fault: + - `none`, `obs:stale`, `action:zero`, `reward:stale`, + `truncated:as-term`, `step:fill` and `log:short`; + - 7 of 7 right. + - The fault-free run's weights were `be73067e`, not guangzhao's + `3721266c`. Across machines, byte identity would have called a + fault-free run faulty; the ledger found no difference. + +--- + +## Design + +- **Same machine** (`bash run.sh results registered 10` on guangzhao): + Pendulum, seeds 0-2. The 3 controls, plus the 21 client faults and 2 log + faults at doses one, 0.01 and 1.0. Every run is traced and ledgered: + 3 x (3 + 69) = 216 runs. +- **Across machines** (`bash cross.sh results/cross 0` on the laptop): + Pendulum, seed 0. SB3 and the bridge run on guangzhao, the env client on + the laptop. `none`, then the 21 client faults and 2 log faults at one + cell: 24 runs, one at a time. + +Then `python ledger.py results` and `python ledger.py results/cross`, and +`python summarise.py` on each, for E54's checks. + +--- + +## How the ledger is judged + +A run is **caught** when anything differs between the two sides. + +Its first difference is the lowest step that differs, then the lowest env, +then the first field in the order above. It is **right** when: +- for a client fault that changed a value, that step and env are the + fault's first changed cell (`fault.json`), and the field is the one the + fault touches (`ledger.py` maps each); +- for a control, a log fault, or a run whose fault changed no value, + nothing differs. + +--- + +## Checks that the runs are valid + +- **V1:** every run reaches its 102,400 steps, and its client exits 0. +- **V2:** on guangzhao, `none` ends on E50's weights at seeds 0, 1 and 2 + (`ec5b8226`, `062e92e3`, `3a8d968f`): the ledger's wrapper changes nothing + that crosses. + +--- + +## Predictions, and what falsifies each + +**P1 - On one machine, the ledger catches and locates every fault in what +crosses.** Every client-fault run with a changed value is caught, at every +dose, and its first difference is right. Falsified by one run that is not +caught, or not right. + +**P2 - It raises no false alarm.** No control and no log-fault run shows a +difference, on one machine or across machines. Falsified by one that does. + +**P3 - Across machines too.** With the env client on the laptop, all 21 +client faults at one cell are caught, and each first difference is right. +`none` shows no difference. Falsified by one run against either. + +**P4 - Byte identity cannot judge across machines.** The fault-free run +across machines ends on weights other than guangzhao's fault-free run at +seed 0 (`ec5b8226`). Falsified if they are the same. + +**P5 - The ledger and the record catch every silent fault, on any +machine.** Every client- and log-fault run with a changed value is caught +by the ledger or by E54's record, on one machine and across machines. +Falsified by one run that neither catches. + +> Grounds: the pilots, above. P1-P3 follow from what a boundary fault is, +> if the ledger sits outside the client's code: the pilots test that it +> does. P4 is E43's and E50's finding that a seed belongs to a machine. + +**Reported, not predicted:** +- the time each run took across machines; +- E54's checks on every run: rule, weights and record. diff --git a/experiments/e55-step-ledger/cross.sh b/experiments/e55-step-ledger/cross.sh new file mode 100644 index 0000000..45ec2c8 --- /dev/null +++ b/experiments/e55-step-ledger/cross.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env bash +# E55's runs across machines, from the laptop: SB3 and the bridge on guangzhao +# (train.py --external-client), the env client here, over Tailscale. One run at +# a time: none, then E54's 21 client faults and 2 log faults at one cell. +# bash cross.sh results/cross [SEED] # SEED defaults to 0 +# FAULTS="none obs:stale" bash cross.sh pilot/cross 9 # only these faults +# Each run's files from both machines end up in DIR/pendulum///seed/. +set -uo pipefail +unset HTTPS_PROXY HTTP_PROXY ALL_PROXY +H=guangzhao-memeseeks +R=zuogou/plugrl/exp/e55-step-ledger +GZ=100.75.226.89 +PORT=8880 +PY=/c/Users/75128/.claude/jobs/1fea619d/tmp/plugrl-rlinf/.venv/Scripts/python.exe +export OMP_NUM_THREADS=1 +cd "$(dirname "$0")" +DIR="${1:?results dir}"; SEED="${2:-0}" +CLIENT_FAULTS=$("$PY" -c "from faulty_client import SILENT; print(' '.join(SILENT))") +LOG_FAULTS="log:drop-first log:short" +mkdir -p "$DIR" +"$PY" --version > "$DIR/laptop-python.txt" 2>&1 +"$PY" -c "import numpy, gymnasium; print('numpy', numpy.__version__, 'gymnasium', gymnasium.__version__)" >> "$DIR/laptop-python.txt" + +for fault in ${FAULTS:-none $CLIENT_FAULTS $LOG_FAULTS}; do + dose=one; [ "$fault" = none ] && dose=1.0 + out="$DIR/pendulum/${fault//:/__}/$dose/seed$SEED" + mkdir -p "$out" + client_fault=$fault; case $fault in log:*) client_fault=none ;; esac + echo "== $fault $dose seed $SEED $(date +%T)" + ssh -n -o BatchMode=yes "$H" "cd ~/$R && mkdir -p $out && (OMP_NUM_THREADS=1 nohup ~/zuogou/plugrl/bridges-venv/bin/python train.py --env pendulum --fault $fault --dose $dose --seed $SEED --out $out --port $PORT --trace --external-client > $out/train.log 2>&1 &)" + "$PY" faulty_client.py --host "$GZ" --port "$PORT" --num-envs 16 --seed "$SEED" \ + --env-id Pendulum-v1 --action-high 2.0 --fault "$client_fault" --dose "$dose" \ + --record "$out/env_record.csv" --ledger "$out/ledger.npz" > "$out/client.log" 2>&1 + echo "client exit $?" >> "$out/client.log" + tail -n 2 "$out/client.log" + waited=0 + until ssh -n -o BatchMode=yes "$H" "test -f ~/$R/$out/result.json"; do + sleep 2; waited=$((waited + 2)) + if [ "$waited" -ge 300 ]; then echo "no result.json after 300 s: $out"; break; fi + done + ssh -n -o BatchMode=yes "$H" "cd ~/$R/$out && tar -cf - result.json trace.npz monitor.csv episodes.csv train.log" | tar --force-local -xf - -C "$out" +done +echo E55_CROSS_DONE diff --git a/experiments/e55-step-ledger/faulty_client.py b/experiments/e55-step-ledger/faulty_client.py new file mode 100644 index 0000000..b15cc7e --- /dev/null +++ b/experiments/e55-step-ledger/faulty_client.py @@ -0,0 +1,420 @@ +"""E55's env client: E54's faulty_client.py, plus a step ledger at the environment. + +--ledger writes, for every env, what that environment itself took and gave +at each of its steps: the observation it had given before the step, the +action it was handed, and the reward, flags and observation it returned. +The ledger is a gymnasium wrapper around each environment, outside the +client's own code, so a fault in the client's encoding does not reach it. +Everything below is E54's, unchanged. + +E54's docstring: + +E54's env client: E50's gym_client.py, with one fault injected at the boundary. + + python faulty_client.py --port 8854 --seed 0 --fault reward:stale --dose 0.01 \ + --record runs/.../env_record.csv + +With --fault none it sends exactly what E50's client sent. Otherwise it +changes one field of what crosses the wire, with one operator, in a share of +the cells (vector step, env) where that field crosses. The environments +themselves are untouched, and --record writes each episode's return and +length as the environments produced them, before any fault: the record a +trainer's log can be checked against. + +Fields and operators. Each field takes the operators that make sense for it: + obs the observation in an infer (what the policy acts on) + action the action the client applies (as it decodes the reply) + reward the reward in a feedback + final-obs the observation an episode ended on, in its feedback (SB3 + bootstraps from it at a time limit) + zero the value replaced by zeros (a default filled in) + stale the value from the step before (a buffer reused) + swap the value from the next slot, (i + 1) mod n (a slot mixed up) + f16 the value rounded through float16 (a lossy encoding) + clip (action only) clipped to half its range: [-1, 1] for Pendulum's + [-2, 2] (a client that assumes another range) + terminated:spurious sent true where the episode did not end + truncated:drop a time limit is not sent: the client resets, the trainer + sees the episode go on + truncated:as-term a time limit is sent as a termination + step:fill the env is not stepped, and its feedback is filled in: + reward 0, the same observation, no episode end +(log:drop-first and log:short are the trainer's log's, in train.py.) + +Faults the bridge rejects, at one cell; the run is expected to fail loudly: + indices:reorder a feedback's rows, env_indices included, in reverse order + reward:short-array a feedback with one reward too few + +Controls, which change nothing training receives: + none, delay-1ms (sleep 1 ms before each feedback), wire-float64 + (observations sent as float64; the values are Pendulum's float32s). + +Doses: "one" is a single cell: in env 0, the first eligible one at or after +vector step 3,250 (no episode ends there) whose value the operator changes; a number p is each eligible cell with probability p, drawn +from a generator seeded 54 whatever the training seed, so every seed gets the +same cells. --record's sibling fault.json counts the cells whose value the +fault actually changed. +""" + +from __future__ import annotations + +import argparse +import csv +import json +import pathlib +import time + +import gymnasium as gym +import numpy as np +import websockets.exceptions +import websockets.sync.client + +from plugrl_protocol import msgpack_numpy + +STOP_REASON = "plugrl-server-stop" +CONTROLS = ("none", "delay-1ms", "wire-float64") +VALUE_OPS = ("zero", "stale", "swap", "f16") +SILENT = ( + tuple(f"obs:{op}" for op in VALUE_OPS) + + tuple(f"action:{op}" for op in VALUE_OPS + ("clip",)) + + tuple(f"reward:{op}" for op in VALUE_OPS) + + tuple(f"final-obs:{op}" for op in VALUE_OPS) + + ("terminated:spurious", "truncated:drop", "truncated:as-term", "step:fill") +) +LOUD = ("indices:reorder", "reward:short-array") +FAULTS = CONTROLS + SILENT + LOUD +ONE_STEP = 3_249 # 0-based: the 3,250th vector step, not an episode's last + + +def observation(obs: np.ndarray, fault: str) -> dict: + if fault == "wire-float64": + obs = obs.astype(np.float64) + return {"images": {}, "states": {"obs": obs}, "text": "gym"} + + +class LedgerEnv(gym.Wrapper): + """Records what the environment took and gave, step by step, as float32.""" + + def __init__(self, env) -> None: + super().__init__(env) + self.obs_in, self.action, self.reward = [], [], [] + self.terminated, self.truncated, self.obs_out = [], [], [] + self.current = None + + def reset(self, **kwargs): + obs, info = self.env.reset(**kwargs) + self.current = np.asarray(obs, dtype=np.float32).copy() + return obs, info + + def step(self, action): + obs, reward, terminated, truncated, info = self.env.step(action) + out = np.asarray(obs, dtype=np.float32).copy() + self.obs_in.append(self.current) + self.action.append(np.asarray(action, dtype=np.float32).copy()) + self.reward.append(np.float32(reward)) + self.terminated.append(bool(terminated)) + self.truncated.append(bool(truncated)) + self.obs_out.append(out) + self.current = out + return obs, reward, terminated, truncated, info + + def arrays(self, i: int) -> dict: + return { + f"obs_in{i}": np.stack(self.obs_in) + if self.obs_in + else np.zeros((0, 1), np.float32), + f"action{i}": np.stack(self.action) + if self.action + else np.zeros((0, 1), np.float32), + f"reward{i}": np.asarray(self.reward, dtype=np.float32), + f"terminated{i}": np.asarray(self.terminated, dtype=np.bool_), + f"truncated{i}": np.asarray(self.truncated, dtype=np.bool_), + f"obs_out{i}": np.stack(self.obs_out) + if self.obs_out + else np.zeros((0, 1), np.float32), + } + + +def connect(uri: str, deadline: float): + while True: + try: + return websockets.sync.client.connect( + uri, compression=None, max_size=None, open_timeout=10 + ) + except (OSError, websockets.exceptions.InvalidHandshake): + if time.monotonic() > deadline: + raise + time.sleep(0.1) + + +class Selector: + """Which cells a fault hits: the same ones for every training seed.""" + + def __init__(self, n: int, dose: str) -> None: + self.n = n + self.dose = dose + self.rng = np.random.default_rng(54) + self.one_done = False + self.hit_now = False + self.u = np.ones(n) + + def draw(self) -> None: + self.u = self.rng.random(self.n) # one draw per vector step, always + self.hit_now = False + + def hits(self, step: int, eligible: np.ndarray) -> np.ndarray: + if self.dose == "one": + out = np.zeros(self.n, dtype=np.bool_) + if not self.one_done and step >= ONE_STEP and eligible[0]: + out[0] = True + self.one_done = True + self.hit_now = True + return out + return eligible & (self.u < float(self.dose)) + + +def apply( + op: str, + values: np.ndarray, + hit: np.ndarray, + previous: np.ndarray, + bound: float = 1.0, +) -> np.ndarray: + """Return values with the operator applied in the hit rows.""" + out = values.copy() + if not hit.any(): + return out + if op == "zero": + out[hit] = 0 + elif op == "stale": + out[hit] = previous[hit] + elif op == "swap": + out[hit] = np.roll(values, -1, axis=0)[hit] + elif op == "f16": + out[hit] = values[hit].astype(np.float16).astype(values.dtype) + elif op == "clip": + out[hit] = np.clip(values[hit], -bound / 2, bound / 2) + else: + raise ValueError(op) + return out + + +def changed(new: np.ndarray, old: np.ndarray) -> np.ndarray: + """The rows (envs) in which new differs from old.""" + diff = new != old + return diff.reshape(len(diff), -1).any(axis=1) + + +def main() -> int: + p = argparse.ArgumentParser(description=__doc__) + p.add_argument("--host", default="127.0.0.1") + p.add_argument("--port", type=int, default=8854) + p.add_argument("--num-envs", type=int, default=16) + p.add_argument("--seed", type=int, default=0) + p.add_argument("--env-id", default="Pendulum-v1") + p.add_argument("--action-high", type=float, default=2.0) + p.add_argument("--fault", choices=FAULTS, default="none") + p.add_argument("--dose", default="1.0") + p.add_argument("--record", required=True) + p.add_argument("--ledger", required=True) + a = p.parse_args() + + n, fault = a.num_envs, a.fault + field, _, op = fault.partition(":") + dose = "one" if fault in LOUD else a.dose + select = Selector(n, dose) + envs = [LedgerEnv(gym.make(a.env_id)) for _ in range(n)] + obs = np.stack([env.reset(seed=a.seed + i)[0] for i, env in enumerate(envs)]) + obs = obs.astype(np.float32) + indices = np.arange(n, dtype=np.int64) + step_ids = np.zeros(n, dtype=np.int64) + packer = msgpack_numpy.Packer() + steps = 0 + cells = 0 + every = np.ones(n, dtype=np.bool_) + first: list[int] | None = None # the first changed cell, [vector step, env] + + def tally(rows: np.ndarray) -> None: + nonlocal cells, first + if select.hit_now and not rows.any(): + select.one_done = ( + False # "one": that cell's value did not change; try the next + ) + if rows.any(): + cells += int(rows.sum()) + if first is None: + first = [steps, int(np.flatnonzero(rows)[0])] + + # What the environments produced, before any fault. + ep_return = np.zeros(n, dtype=np.float64) + ep_length = np.zeros(n, dtype=np.int64) + episodes = np.zeros(n, dtype=np.int64) + record_path = pathlib.Path(a.record) + record = open(record_path, "w", encoding="utf-8", newline="") + writer = csv.writer(record) + writer.writerow(["step", "env", "episode", "return", "length"]) + + prev_obs = obs.copy() + prev_actions = None + prev_rewards = np.zeros(n, dtype=np.float32) + + def finish(reason: str) -> int: + record.close() + ledger = {} + for i, env in enumerate(envs): + ledger.update(env.arrays(i)) + np.savez_compressed(a.ledger, **ledger) + (record_path.parent / "fault.json").write_text( + json.dumps( + { + "fault": fault, + "dose": dose, + "cells": cells, + "first": first, + "steps": steps, + } + ) + + "\n" + ) + print( + f"closed after {steps} steps: {reason!r}; {cells} cells changed", flush=True + ) + return 0 if reason == STOP_REASON else 1 + + ws = connect(f"ws://{a.host}:{a.port}", time.monotonic() + 120) + with ws: + msgpack_numpy.unpackb(ws.recv()) # the metadata; nothing in it is needed + try: + while True: + select.draw() + sent = obs + if field == "obs": + sent = apply(op, obs, select.hits(steps, every), prev_obs) + tally(changed(sent, obs)) + ws.send( + packer.pack( + { + "message_type": "infer", + "data": observation(sent, fault), + "env_indices": indices, + "step_ids": step_ids.copy(), + } + ) + ) + prev_obs = obs.copy() + reply = msgpack_numpy.unpackb(ws.recv()) + received = np.asarray(reply["data"]["action"])[0] # [H, n, d] -> [n, d] + actions = received + if field == "action": + previous = ( + np.zeros_like(received) + if prev_actions is None + else prev_actions + ) + actions = apply( + op, received, select.hits(steps, every), previous, a.action_high + ) + tally(changed(actions, received)) + prev_actions = received.copy() + skip = np.zeros(n, dtype=np.bool_) + if field == "step": + skip = select.hits(steps, every) + tally(skip) + ended = np.empty_like(obs) + after = np.empty_like(obs) + rewards = np.zeros(n, dtype=np.float32) + terminated = np.zeros(n, dtype=np.bool_) + truncated = np.zeros(n, dtype=np.bool_) + sent_ids = step_ids.copy() + for i, env in enumerate(envs): + if skip[i]: + ended[i] = obs[i] + after[i] = obs[i] + step_ids[i] += 1 + continue + o, r, te, tr, _ = env.step(actions[i]) + ended[i] = o + rewards[i], terminated[i], truncated[i] = r, te, tr + ep_return[i] += float(rewards[i]) + ep_length[i] += 1 + if te or tr: + episodes[i] += 1 + writer.writerow( + [ + steps + 1, + i, + episodes[i], + f"{ep_return[i]:.6f}", + ep_length[i], + ] + ) + ep_return[i] = 0.0 + ep_length[i] = 0 + after[i] = env.reset()[0] + step_ids[i] = 0 + else: + after[i] = o + step_ids[i] += 1 + true_rewards = rewards + ends = terminated | truncated + final = ended + if field == "reward" and op in VALUE_OPS: + rewards = apply( + op, true_rewards, select.hits(steps, every), prev_rewards + ) + tally(changed(rewards, true_rewards)) + elif field == "final-obs": + final = apply(op, ended, select.hits(steps, ends), obs) + tally(changed(final, ended)) + elif fault == "terminated:spurious": + hit = select.hits(steps, ~terminated) + terminated = terminated | hit + tally(hit) + elif fault == "truncated:drop": + hit = select.hits(steps, truncated) + truncated = truncated & ~hit + tally(hit) + elif fault == "truncated:as-term": + hit = select.hits(steps, truncated) + terminated = terminated | hit + truncated = truncated & ~hit + tally(hit) + prev_rewards = true_rewards.copy() + if fault == "delay-1ms": + time.sleep(0.001) + order = indices + fields = { + "obs": observation(final, fault), + "rewards": rewards, + "terminated": terminated, + "truncated": truncated, + "info": {}, + } + if fault in LOUD and select.hits(steps, every)[0]: + tally(indices == 0) + if fault == "indices:reorder": + order = indices[::-1].copy() + fields["obs"] = observation(final[::-1].copy(), fault) + for key in ("rewards", "terminated", "truncated"): + fields[key] = fields[key][::-1].copy() + sent_ids = sent_ids[::-1].copy() + else: + fields["rewards"] = rewards[:-1].copy() + ws.send( + packer.pack( + { + "message_type": "feedback", + "env_indices": order, + "step_ids": sent_ids, + "data": fields, + } + ) + ) + obs = after + steps += 1 + except websockets.exceptions.ConnectionClosed as closed: + return finish(closed.rcvd.reason if closed.rcvd is not None else "") + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/experiments/e55-step-ledger/jobs.py b/experiments/e55-step-ledger/jobs.py new file mode 100644 index 0000000..1e38bfb --- /dev/null +++ b/experiments/e55-step-ledger/jobs.py @@ -0,0 +1,41 @@ +"""E55's same-machine runs, one line each: env fault dose seed trace. + + python jobs.py registered > jobs.txt + python jobs.py pilot > jobs.txt + +registered (PROTOCOL.md): Pendulum, seeds 0-2, every run traced and +ledgered: the 3 controls; E54's 21 client faults and 2 log faults at doses +one, 0.01 and 1.0. pilot: the same at seed 9. The runs across machines are +cross.sh's. +""" + +from __future__ import annotations + +import sys + +from faulty_client import CONTROLS, SILENT + +LOG = ("log:drop-first", "log:short") +DOSES = ("one", "0.01", "1.0") + + +def pendulum(seed: int) -> list[str]: + jobs = [f"pendulum {c} 1.0 {seed} trace" for c in CONTROLS] + jobs += [f"pendulum {f} {d} {seed} trace" for f in SILENT + LOG for d in DOSES] + return jobs + + +def main() -> int: + which = sys.argv[1] + if which == "registered": + jobs = [j for seed in (0, 1, 2) for j in pendulum(seed)] + elif which == "pilot": + jobs = pendulum(9) + else: + raise SystemExit(f"unknown: {which}") + print("\n".join(jobs)) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/experiments/e55-step-ledger/ledger.py b/experiments/e55-step-ledger/ledger.py new file mode 100644 index 0000000..b3343c3 --- /dev/null +++ b/experiments/e55-step-ledger/ledger.py @@ -0,0 +1,170 @@ +"""E55: the trainer's view of each step against the environment's own ledger. + + python ledger.py results # writes results/ledger.csv + +For each run with both trace.npz (what the trainer sent and received, step by +step, from train.py --trace) and ledger.npz (what each environment took and +gave, from faulty_client.py --ledger), and for each env, the two step +sequences are compared in order, value for value: +- obs: the observation the trainer acted on, against the one the environment + had given before that step; +- action: the action the trainer sent, against the one the environment was + handed; +- reward: the reward the trainer got, against the one the environment + returned; +- end: whether the trainer saw the episode end, against terminated or + truncated; +- limit: whether the trainer saw a time limit (SB3's TimeLimit.truncated), + against truncated and not terminated; +- final: at an episode end, the observation the trainer got as the final one, + against the one the environment returned; +- steps: the number of steps on each side. +No fault-free run is needed, and the two sides need not be on one machine. + +A run is caught if anything differs. The first difference is (step, env, +field), the lowest step first, then the lowest env, then the order above. It +is right if that step and env are the fault's first changed cell +(fault.json), and the field is the one the fault touches. +""" + +from __future__ import annotations + +import csv +import json +import pathlib +import sys + +import numpy as np + +FIELDS = ("obs", "action", "reward", "end", "limit", "final", "steps") +EXPECTED = { + "obs": ("obs",), + "action": ("action",), + "reward": ("reward",), + "final-obs": ("final",), + "terminated:spurious": ("end", "limit"), + "truncated:drop": ("end",), + "truncated:as-term": ("limit",), + "step:fill": FIELDS, +} + + +def load(path: pathlib.Path) -> dict: + with np.load(path) as z: # an NpzFile decompresses on every access + return {k: z[k] for k in z.files} + + +def differences(trace: dict, ledger: dict) -> tuple[int, tuple[int, int, str] | None]: + """(cells that differ, first difference as (step, env, field)).""" + steps, n = trace["rewards"].shape + acted = np.concatenate([trace["first_obs"][None], trace["nexts"][:-1]]) + count, first = 0, None + for i in range(n): + k = len(ledger[f"reward{i}"]) + m = min(k, steps) + if m == 0: # one side has no steps at all (every step skipped, say) + count += abs(k - steps) + if k != steps and (first is None or (0, i) < (first[0], first[1])): + first = (0, i, "steps") + continue + te, tr = ledger[f"terminated{i}"][:m], ledger[f"truncated{i}"][:m] + ends = trace["ends"][:m, i] + per_field = { + "obs": (acted[:m, i] != ledger[f"obs_in{i}"][:m]) + .reshape(m, -1) + .any(axis=1), + "action": (trace["actions"][:m, i] != ledger[f"action{i}"][:m]) + .reshape(m, -1) + .any(axis=1), + "reward": trace["rewards"][:m, i] != ledger[f"reward{i}"][:m], + "end": ends != (te | tr), + "limit": trace["truncs"][:m, i] != (tr & ~te), + "final": ends + & (trace["finals"][:m, i] != ledger[f"obs_out{i}"][:m]) + .reshape(m, -1) + .any(axis=1), + } + bad = np.zeros(m, dtype=np.bool_) + for f in FIELDS[:-1]: + bad |= per_field[f] + count += int(bad.sum()) + abs(k - steps) + rows = np.flatnonzero(bad) + if len(rows): + t = int(rows[0]) + field = next(f for f in FIELDS[:-1] if per_field[f][t]) + here = (t, i, field) + elif k != steps: + here = (m, i, "steps") + else: + continue + if first is None or (here[0], here[1]) < (first[0], first[1]): + first = here + return count, first + + +def expected(fault: str) -> tuple[str, ...]: + return EXPECTED.get(fault, EXPECTED.get(fault.partition(":")[0], ())) + + +def main() -> int: + root = pathlib.Path(sys.argv[1]) if len(sys.argv) > 1 else pathlib.Path("results") + rows = [] + for trace_path in sorted(root.glob("**/seed*/trace.npz")): + run = trace_path.parent + ledger_path = run / "ledger.npz" + if not ledger_path.exists(): + continue + fault = run.parent.parent.name.replace("__", ":") + info = ( + json.loads((run / "fault.json").read_text()) + if (run / "fault.json").exists() + else {} + ) + result = json.loads((run / "result.json").read_text()) + cells = ( + result.get("log_cells") + if fault.startswith("log:") + else info.get("cells", 0) + ) + count, first = differences(load(trace_path), load(ledger_path)) + injected = info.get("first") + if ( + fault.startswith("log:") + or fault in ("none", "delay-1ms", "wire-float64") + or not cells + ): + right = first is None # nothing that crossed should differ + else: + right = ( + first is not None + and injected is not None + and (first[0], first[1]) == (injected[0], injected[1]) + and first[2] in expected(fault) + ) + rows.append( + dict( + run=str(run.relative_to(root)).replace("\\", "/"), + fault=fault, + dose=run.parent.name, + seed=run.name.removeprefix("seed"), + cells=cells, + caught=int(first is not None), + differing=count, + injected="" if injected is None else f"{injected[0]}/{injected[1]}", + found="" if first is None else f"{first[0]}/{first[1]} {first[2]}", + right=int(right), + ) + ) + with open(root / "ledger.csv", "w", encoding="utf-8", newline="") as f: + w = csv.DictWriter(f, fieldnames=list(rows[0])) + w.writeheader() + w.writerows(rows) + wrong = [r for r in rows if not r["right"]] + print(f"{len(rows)} runs compared; right: {len(rows) - len(wrong)}") + for r in wrong: + print(" not right:", r) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/experiments/e55-step-ledger/merge_runs.py b/experiments/e55-step-ledger/merge_runs.py new file mode 100644 index 0000000..490ece7 --- /dev/null +++ b/experiments/e55-step-ledger/merge_runs.py @@ -0,0 +1,47 @@ +"""E54: merge each run's result.json, fault.json and log tails into one file. + + python merge_runs.py results # writes results/runs.jsonl + +One line per run: its env, fault, dose and seed (from its directory), its +result.json and fault.json, and the last line of its client.log and +train.log. +""" + +from __future__ import annotations + +import json +import pathlib +import sys + + +def last_line(path: pathlib.Path) -> str: + if not path.exists(): + return "" + lines = path.read_text(encoding="utf-8", errors="replace").strip().splitlines() + return lines[-1] if lines else "" + + +def main() -> int: + root = pathlib.Path(sys.argv[1]) if len(sys.argv) > 1 else pathlib.Path("results") + out = [] + for res in sorted(root.glob("*/*/*/seed*/result.json")): + run = res.parent + line = { + "env": run.parent.parent.parent.name, + "fault": run.parent.parent.name.replace("__", ":"), + "dose": run.parent.name, + "seed": int(run.name.removeprefix("seed")), + "result": json.loads(res.read_text()), + } + if (run / "fault.json").exists(): + line["fault_json"] = json.loads((run / "fault.json").read_text()) + line["client_log"] = last_line(run / "client.log") + line["train_log"] = last_line(run / "train.log") + out.append(json.dumps(line, sort_keys=True)) + (root / "runs.jsonl").write_text("\n".join(out) + "\n", encoding="utf-8") + print(len(out), "runs") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/experiments/e55-step-ledger/results/bridges-src.sha256 b/experiments/e55-step-ledger/results/bridges-src.sha256 new file mode 100644 index 0000000..755002f --- /dev/null +++ b/experiments/e55-step-ledger/results/bridges-src.sha256 @@ -0,0 +1,6 @@ +766ad3d83be9696dff26543ce2fb35c3c31cb845fc42cb148d411b263e8bf9b5 src/plugrl_bridges/gym.py +e89ebb2c4ed69ed5788cd945bc4d36ecc023949627433818b98d9ea43d1fa7d5 src/plugrl_bridges/__init__.py +4001b6400d4031504525949fa721ad425fa0cb16a91cf30537dfd6d5859d8336 src/plugrl_bridges/observations.py +1c22fca6e0f01e8ec730ee893568cc301d2d21c3e16cc2102c22959ced00ff08 src/plugrl_bridges/rlinf.py +f02264e551925eed72ba2e4dfb5159f7e174e4ac7231aa122689ef2172484646 src/plugrl_bridges/sb3.py +0e56388fea17a73d4defcb437d3a4b6c8392c609dfca07efe92343e6cac72656 src/plugrl_bridges/server.py diff --git a/experiments/e55-step-ledger/results/by_dose.csv b/experiments/e55-step-ledger/results/by_dose.csv new file mode 100644 index 0000000..7e7b277 --- /dev/null +++ b/experiments/e55-step-ledger/results/by_dose.csv @@ -0,0 +1,10 @@ +env,kind,dose,runs,raises,rule,strict,weights,record,bridge,either +pendulum,client,one,63,0.0,0.0,,1.0,0.206,0.0,1.0 +pendulum,client,0.01,63,0.0,0.048,,1.0,0.286,0.0,1.0 +pendulum,client,1.0,63,0.0,0.429,,1.0,0.238,0.0,1.0 +pendulum,log,one,6,0.0,0.0,,0.0,1.0,1.0,1.0 +pendulum,log,0.01,6,0.0,0.0,,0.0,1.0,1.0,1.0 +pendulum,log,1.0,6,0.0,0.0,,0.0,1.0,1.0,1.0 +pendulum,all,one,69,0.0,0.0,,0.913,0.275,0.087,1.0 +pendulum,all,0.01,69,0.0,0.043,,0.913,0.348,0.087,1.0 +pendulum,all,1.0,69,0.0,0.391,,0.913,0.304,0.087,1.0 diff --git a/experiments/e55-step-ledger/results/cross/by_dose.csv b/experiments/e55-step-ledger/results/cross/by_dose.csv new file mode 100644 index 0000000..5e9e20d --- /dev/null +++ b/experiments/e55-step-ledger/results/cross/by_dose.csv @@ -0,0 +1,4 @@ +env,kind,dose,runs,raises,rule,strict,weights,record,bridge,either +pendulum,client,one,21,0.0,0.0,,1.0,0.286,0.0,1.0 +pendulum,log,one,2,0.0,0.0,,0.0,1.0,1.0,1.0 +pendulum,all,one,23,0.0,0.0,,0.913,0.348,0.087,1.0 diff --git a/experiments/e55-step-ledger/results/cross/laptop-python.txt b/experiments/e55-step-ledger/results/cross/laptop-python.txt new file mode 100644 index 0000000..0ea9946 --- /dev/null +++ b/experiments/e55-step-ledger/results/cross/laptop-python.txt @@ -0,0 +1,2 @@ +Python 3.11.14 +numpy 2.3.2 gymnasium 1.3.0 diff --git a/experiments/e55-step-ledger/results/cross/ledger.csv b/experiments/e55-step-ledger/results/cross/ledger.csv new file mode 100644 index 0000000..251de49 --- /dev/null +++ b/experiments/e55-step-ledger/results/cross/ledger.csv @@ -0,0 +1,25 @@ +run,fault,dose,seed,cells,caught,differing,injected,found,right +pendulum/action__clip/one/seed0,action:clip,one,0,1,1,1,3249/0,3249/0 action,1 +pendulum/action__f16/one/seed0,action:f16,one,0,1,1,1,3255/0,3255/0 action,1 +pendulum/action__stale/one/seed0,action:stale,one,0,1,1,1,3255/0,3255/0 action,1 +pendulum/action__swap/one/seed0,action:swap,one,0,1,1,1,3249/0,3249/0 action,1 +pendulum/action__zero/one/seed0,action:zero,one,0,1,1,1,3249/0,3249/0 action,1 +pendulum/final-obs__f16/one/seed0,final-obs:f16,one,0,1,1,1,3399/0,3399/0 final,1 +pendulum/final-obs__stale/one/seed0,final-obs:stale,one,0,1,1,1,3399/0,3399/0 final,1 +pendulum/final-obs__swap/one/seed0,final-obs:swap,one,0,1,1,1,3399/0,3399/0 final,1 +pendulum/final-obs__zero/one/seed0,final-obs:zero,one,0,1,1,1,3399/0,3399/0 final,1 +pendulum/log__drop-first/one/seed0,log:drop-first,one,0,1,0,0,,,1 +pendulum/log__short/one/seed0,log:short,one,0,1,0,0,,,1 +pendulum/none/1.0/seed0,none,1.0,0,0,0,0,,,1 +pendulum/obs__f16/one/seed0,obs:f16,one,0,1,1,1,3249/0,3249/0 obs,1 +pendulum/obs__stale/one/seed0,obs:stale,one,0,1,1,1,3249/0,3249/0 obs,1 +pendulum/obs__swap/one/seed0,obs:swap,one,0,1,1,1,3249/0,3249/0 obs,1 +pendulum/obs__zero/one/seed0,obs:zero,one,0,1,1,1,3249/0,3249/0 obs,1 +pendulum/reward__f16/one/seed0,reward:f16,one,0,1,1,1,3249/0,3249/0 reward,1 +pendulum/reward__stale/one/seed0,reward:stale,one,0,1,1,1,3249/0,3249/0 reward,1 +pendulum/reward__swap/one/seed0,reward:swap,one,0,1,1,1,3249/0,3249/0 reward,1 +pendulum/reward__zero/one/seed0,reward:zero,one,0,1,1,1,3249/0,3249/0 reward,1 +pendulum/step__fill/one/seed0,step:fill,one,0,1,1,3151,3249/0,3249/0 reward,1 +pendulum/terminated__spurious/one/seed0,terminated:spurious,one,0,1,1,1,3249/0,3249/0 end,1 +pendulum/truncated__as-term/one/seed0,truncated:as-term,one,0,1,1,1,3399/0,3399/0 limit,1 +pendulum/truncated__drop/one/seed0,truncated:drop,one,0,1,1,1,3399/0,3399/0 end,1 diff --git a/experiments/e55-step-ledger/results/cross/runs.csv b/experiments/e55-step-ledger/results/cross/runs.csv new file mode 100644 index 0000000..cda9341 --- /dev/null +++ b/experiments/e55-step-ledger/results/cross/runs.csv @@ -0,0 +1,25 @@ +env,fault,dose,seed,cells,raises,rule,strict,weights,record,bridge,gain,last,episodes,sha,learn_s,raised,complete +pendulum,action:clip,one,0,1,0,0,,1,0,0,1027.8,-197.0,512,e097951f,43.482,,0 +pendulum,action:f16,one,0,1,0,0,,1,0,0,1027.5,-197.3,512,66062869,46.664,,0 +pendulum,action:stale,one,0,1,0,0,,1,0,0,1038.5,-186.3,512,4e2dbe5f,47.071,,0 +pendulum,action:swap,one,0,1,0,0,,1,0,0,1004.3,-220.5,512,d12114c2,47.609,,0 +pendulum,action:zero,one,0,1,0,0,,1,0,0,1031.9,-192.9,512,56ff1e1c,46.927,,0 +pendulum,final-obs:f16,one,0,1,0,0,,1,0,0,1023.6,-201.2,512,bfeaff7b,44.199,,0 +pendulum,final-obs:stale,one,0,1,0,0,,1,0,0,1029.0,-195.8,512,b5e96b19,44.361,,0 +pendulum,final-obs:swap,one,0,1,0,0,,1,0,0,1031.5,-193.4,512,7b8e5fb1,42.767,,0 +pendulum,final-obs:zero,one,0,1,0,0,,1,0,0,1029.8,-195.1,512,ae6cc423,43.958,,0 +pendulum,log:drop-first,one,0,1,0,0,,0,1,1,1024.7,-200.1,512,d7a19cc0,42.401,,0 +pendulum,log:short,one,0,1,0,0,,0,1,1,1024.7,-200.1,512,d7a19cc0,42.178,,0 +pendulum,none,1.0,0,0,0,0,,0,0,0,1024.7,-200.1,512,d7a19cc0,50.798,,0 +pendulum,obs:f16,one,0,1,0,0,,1,0,0,1033.7,-191.1,512,1289e7ab,47.483,,0 +pendulum,obs:stale,one,0,1,0,0,,1,0,0,1037.2,-187.6,512,8c9e41e8,49.051,,0 +pendulum,obs:swap,one,0,1,0,0,,1,0,0,1032.9,-191.9,512,5eefdc69,46.681,,0 +pendulum,obs:zero,one,0,1,0,0,,1,0,0,1030.7,-194.1,512,dfec8b25,50.221,,0 +pendulum,reward:f16,one,0,1,0,0,,1,0,0,1025.5,-199.3,512,3884740e,44.635,,0 +pendulum,reward:stale,one,0,1,0,0,,1,1,0,1023.5,-201.3,512,8c7556e2,54.767,,0 +pendulum,reward:swap,one,0,1,0,0,,1,1,0,1038.8,-186.0,512,5c6d2c29,46.784,,0 +pendulum,reward:zero,one,0,1,0,0,,1,1,0,1022.1,-202.7,512,8aed0759,42.906,,0 +pendulum,step:fill,one,0,1,0,0,,1,1,0,1027.0,-197.8,511,69681840,43.894,,0 +pendulum,terminated:spurious,one,0,1,0,0,,1,1,0,1028.7,-196.1,513,2fbf4212,41.781,,0 +pendulum,truncated:as-term,one,0,1,0,0,,1,0,0,1015.5,-209.4,512,b6d59434,42.965,,0 +pendulum,truncated:drop,one,0,1,0,0,,1,1,0,1036.2,-188.6,511,2b9a4f45,43.384,,0 diff --git a/experiments/e55-step-ledger/results/cross/runs.jsonl b/experiments/e55-step-ledger/results/cross/runs.jsonl new file mode 100644 index 0000000..b919737 --- /dev/null +++ b/experiments/e55-step-ledger/results/cross/runs.jsonl @@ -0,0 +1,24 @@ +{"client_log": "client exit 0", "dose": "one", "env": "pendulum", "fault": "action:clip", "fault_json": {"cells": 1, "dose": "one", "fault": "action:clip", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": "external", "dose": "one", "env": "pendulum", "fault": "action:clip", "learn_s": 43.482, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "e097951fd023ae7b38aecd1ec77628ccee8cfd49d67e8755eff793256d7c7cde"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:clip\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"e097951fd023ae7b38aecd1ec77628ccee8cfd49d67e8755eff793256d7c7cde\", \"learn_s\": 43.482, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": \"external\"}"} +{"client_log": "client exit 0", "dose": "one", "env": "pendulum", "fault": "action:f16", "fault_json": {"cells": 1, "dose": "one", "fault": "action:f16", "first": [3255, 0], "steps": 6400}, "result": {"client_rc": "external", "dose": "one", "env": "pendulum", "fault": "action:f16", "learn_s": 46.664, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "66062869535a596f39b0dff25a7dcb4e4699faf188d4ad6ee36d1155cea26ede"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:f16\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"66062869535a596f39b0dff25a7dcb4e4699faf188d4ad6ee36d1155cea26ede\", \"learn_s\": 46.664, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": \"external\"}"} +{"client_log": "client exit 0", "dose": "one", "env": "pendulum", "fault": "action:stale", "fault_json": {"cells": 1, "dose": "one", "fault": "action:stale", "first": [3255, 0], "steps": 6400}, "result": {"client_rc": "external", "dose": "one", "env": "pendulum", "fault": "action:stale", "learn_s": 47.071, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "4e2dbe5f31fa090c970ad9723ffeaeecd2caed30e893eac1b011e2736bd12d47"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:stale\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"4e2dbe5f31fa090c970ad9723ffeaeecd2caed30e893eac1b011e2736bd12d47\", \"learn_s\": 47.071, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": \"external\"}"} +{"client_log": "client exit 0", "dose": "one", "env": "pendulum", "fault": "action:swap", "fault_json": {"cells": 1, "dose": "one", "fault": "action:swap", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": "external", "dose": "one", "env": "pendulum", "fault": "action:swap", "learn_s": 47.609, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "d12114c2a6140ac1fdbeae01e542342553351b23198ae475fc2d223304625172"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:swap\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"d12114c2a6140ac1fdbeae01e542342553351b23198ae475fc2d223304625172\", \"learn_s\": 47.609, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": \"external\"}"} +{"client_log": "client exit 0", "dose": "one", "env": "pendulum", "fault": "action:zero", "fault_json": {"cells": 1, "dose": "one", "fault": "action:zero", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": "external", "dose": "one", "env": "pendulum", "fault": "action:zero", "learn_s": 46.927, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "56ff1e1ca2bf0391171ba42bc457f994587efcd25b6e96a8dddd5815304cf049"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:zero\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"56ff1e1ca2bf0391171ba42bc457f994587efcd25b6e96a8dddd5815304cf049\", \"learn_s\": 46.927, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": \"external\"}"} +{"client_log": "client exit 0", "dose": "one", "env": "pendulum", "fault": "final-obs:f16", "fault_json": {"cells": 1, "dose": "one", "fault": "final-obs:f16", "first": [3399, 0], "steps": 6400}, "result": {"client_rc": "external", "dose": "one", "env": "pendulum", "fault": "final-obs:f16", "learn_s": 44.199, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "bfeaff7b6dc744164b3a01b788c0a1d6d9f9f36f672c2c9afb6332ce11b6b5b1"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:f16\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"bfeaff7b6dc744164b3a01b788c0a1d6d9f9f36f672c2c9afb6332ce11b6b5b1\", \"learn_s\": 44.199, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": \"external\"}"} +{"client_log": "client exit 0", "dose": "one", "env": "pendulum", "fault": "final-obs:stale", "fault_json": {"cells": 1, "dose": "one", "fault": "final-obs:stale", "first": [3399, 0], "steps": 6400}, "result": {"client_rc": "external", "dose": "one", "env": "pendulum", "fault": "final-obs:stale", "learn_s": 44.361, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "b5e96b19db4469fcb504fb41132fde319ca5e9bcd9b611eb11fe2901f4e0ee76"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:stale\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"b5e96b19db4469fcb504fb41132fde319ca5e9bcd9b611eb11fe2901f4e0ee76\", \"learn_s\": 44.361, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": \"external\"}"} +{"client_log": "client exit 0", "dose": "one", "env": "pendulum", "fault": "final-obs:swap", "fault_json": {"cells": 1, "dose": "one", "fault": "final-obs:swap", "first": [3399, 0], "steps": 6400}, "result": {"client_rc": "external", "dose": "one", "env": "pendulum", "fault": "final-obs:swap", "learn_s": 42.767, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "7b8e5fb1dad5b6b633ea62c80d281d80e5d422bb8d60f8fae122a95415a0d854"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:swap\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"7b8e5fb1dad5b6b633ea62c80d281d80e5d422bb8d60f8fae122a95415a0d854\", \"learn_s\": 42.767, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": \"external\"}"} +{"client_log": "client exit 0", "dose": "one", "env": "pendulum", "fault": "final-obs:zero", "fault_json": {"cells": 1, "dose": "one", "fault": "final-obs:zero", "first": [3399, 0], "steps": 6400}, "result": {"client_rc": "external", "dose": "one", "env": "pendulum", "fault": "final-obs:zero", "learn_s": 43.958, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "ae6cc423b90860693ba6f3abe6cc3c2956311fbb59e2e651aafb7bd80fac26a7"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:zero\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"ae6cc423b90860693ba6f3abe6cc3c2956311fbb59e2e651aafb7bd80fac26a7\", \"learn_s\": 43.958, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": \"external\"}"} +{"client_log": "client exit 0", "dose": "one", "env": "pendulum", "fault": "log:drop-first", "fault_json": {"cells": 0, "dose": "one", "fault": "none", "first": null, "steps": 6400}, "result": {"client_rc": "external", "dose": "one", "env": "pendulum", "fault": "log:drop-first", "learn_s": 42.401, "log_cells": 1, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "d7a19cc0845a49273a549f5d2ed858fea79eda58b1413f132795b80de2f2f733"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"log:drop-first\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"d7a19cc0845a49273a549f5d2ed858fea79eda58b1413f132795b80de2f2f733\", \"learn_s\": 42.401, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"log_cells\": 1, \"client_rc\": \"external\"}"} +{"client_log": "client exit 0", "dose": "one", "env": "pendulum", "fault": "log:short", "fault_json": {"cells": 0, "dose": "one", "fault": "none", "first": null, "steps": 6400}, "result": {"client_rc": "external", "dose": "one", "env": "pendulum", "fault": "log:short", "learn_s": 42.178, "log_cells": 1, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "d7a19cc0845a49273a549f5d2ed858fea79eda58b1413f132795b80de2f2f733"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"log:short\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"d7a19cc0845a49273a549f5d2ed858fea79eda58b1413f132795b80de2f2f733\", \"learn_s\": 42.178, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"log_cells\": 1, \"client_rc\": \"external\"}"} +{"client_log": "client exit 0", "dose": "1.0", "env": "pendulum", "fault": "none", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 6400}, "result": {"client_rc": "external", "dose": "1.0", "env": "pendulum", "fault": "none", "learn_s": 50.798, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "d7a19cc0845a49273a549f5d2ed858fea79eda58b1413f132795b80de2f2f733"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"none\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"d7a19cc0845a49273a549f5d2ed858fea79eda58b1413f132795b80de2f2f733\", \"learn_s\": 50.798, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": \"external\"}"} +{"client_log": "client exit 0", "dose": "one", "env": "pendulum", "fault": "obs:f16", "fault_json": {"cells": 1, "dose": "one", "fault": "obs:f16", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": "external", "dose": "one", "env": "pendulum", "fault": "obs:f16", "learn_s": 47.483, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "1289e7ab54b446a2dd35ceca8753e375f0723b4a2ee4d4b7697b67c9e75f0a5b"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:f16\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"1289e7ab54b446a2dd35ceca8753e375f0723b4a2ee4d4b7697b67c9e75f0a5b\", \"learn_s\": 47.483, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": \"external\"}"} +{"client_log": "client exit 0", "dose": "one", "env": "pendulum", "fault": "obs:stale", "fault_json": {"cells": 1, "dose": "one", "fault": "obs:stale", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": "external", "dose": "one", "env": "pendulum", "fault": "obs:stale", "learn_s": 49.051, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "8c9e41e83ba7b1f73baffa3b807c19f3b8e5a38b0043fabf8d84f5eb280508d1"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:stale\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"8c9e41e83ba7b1f73baffa3b807c19f3b8e5a38b0043fabf8d84f5eb280508d1\", \"learn_s\": 49.051, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": \"external\"}"} +{"client_log": "client exit 0", "dose": "one", "env": "pendulum", "fault": "obs:swap", "fault_json": {"cells": 1, "dose": "one", "fault": "obs:swap", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": "external", "dose": "one", "env": "pendulum", "fault": "obs:swap", "learn_s": 46.681, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "5eefdc6966e89189d98b606cdac395b05d82042ebb0e85aebf0602ff5952d0d4"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:swap\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"5eefdc6966e89189d98b606cdac395b05d82042ebb0e85aebf0602ff5952d0d4\", \"learn_s\": 46.681, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": \"external\"}"} +{"client_log": "client exit 0", "dose": "one", "env": "pendulum", "fault": "obs:zero", "fault_json": {"cells": 1, "dose": "one", "fault": "obs:zero", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": "external", "dose": "one", "env": "pendulum", "fault": "obs:zero", "learn_s": 50.221, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "dfec8b259ccc2a2bf9c48e4b1ed405491a2f3cfeb9ff53d57989781f98808193"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:zero\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"dfec8b259ccc2a2bf9c48e4b1ed405491a2f3cfeb9ff53d57989781f98808193\", \"learn_s\": 50.221, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": \"external\"}"} +{"client_log": "client exit 0", "dose": "one", "env": "pendulum", "fault": "reward:f16", "fault_json": {"cells": 1, "dose": "one", "fault": "reward:f16", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": "external", "dose": "one", "env": "pendulum", "fault": "reward:f16", "learn_s": 44.635, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "3884740e493d53865ddaaf91cccc30525fa41be9ad544ddcb2f5fed670a68d2c"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:f16\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"3884740e493d53865ddaaf91cccc30525fa41be9ad544ddcb2f5fed670a68d2c\", \"learn_s\": 44.635, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": \"external\"}"} +{"client_log": "client exit 0", "dose": "one", "env": "pendulum", "fault": "reward:stale", "fault_json": {"cells": 1, "dose": "one", "fault": "reward:stale", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": "external", "dose": "one", "env": "pendulum", "fault": "reward:stale", "learn_s": 54.767, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "8c7556e23272270fa95fe032766cee0e6d8fc9aa07dded1c5921f9ec84c3ceef"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:stale\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"8c7556e23272270fa95fe032766cee0e6d8fc9aa07dded1c5921f9ec84c3ceef\", \"learn_s\": 54.767, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": \"external\"}"} +{"client_log": "client exit 0", "dose": "one", "env": "pendulum", "fault": "reward:swap", "fault_json": {"cells": 1, "dose": "one", "fault": "reward:swap", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": "external", "dose": "one", "env": "pendulum", "fault": "reward:swap", "learn_s": 46.784, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "5c6d2c29176f2ef3a3055f3ff07f8483f419f79032166e8b6d4d2af507226a86"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:swap\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"5c6d2c29176f2ef3a3055f3ff07f8483f419f79032166e8b6d4d2af507226a86\", \"learn_s\": 46.784, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": \"external\"}"} +{"client_log": "client exit 0", "dose": "one", "env": "pendulum", "fault": "reward:zero", "fault_json": {"cells": 1, "dose": "one", "fault": "reward:zero", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": "external", "dose": "one", "env": "pendulum", "fault": "reward:zero", "learn_s": 42.906, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "8aed07592df91e6518acbb1db6e98f99cd3e8414ba379e09e8ff18162f47894c"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:zero\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"8aed07592df91e6518acbb1db6e98f99cd3e8414ba379e09e8ff18162f47894c\", \"learn_s\": 42.906, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": \"external\"}"} +{"client_log": "client exit 0", "dose": "one", "env": "pendulum", "fault": "step:fill", "fault_json": {"cells": 1, "dose": "one", "fault": "step:fill", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": "external", "dose": "one", "env": "pendulum", "fault": "step:fill", "learn_s": 43.894, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "6968184037b145bb436fba9243eaea9fe604963cef4162ff7a9babf6cfb1597d"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"step:fill\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"6968184037b145bb436fba9243eaea9fe604963cef4162ff7a9babf6cfb1597d\", \"learn_s\": 43.894, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": \"external\"}"} +{"client_log": "client exit 0", "dose": "one", "env": "pendulum", "fault": "terminated:spurious", "fault_json": {"cells": 1, "dose": "one", "fault": "terminated:spurious", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": "external", "dose": "one", "env": "pendulum", "fault": "terminated:spurious", "learn_s": 41.781, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "2fbf4212395743f6a0c6f16fce25054a30a4696b63b6f30bc5e19c7ec5e15bdf"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"terminated:spurious\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"2fbf4212395743f6a0c6f16fce25054a30a4696b63b6f30bc5e19c7ec5e15bdf\", \"learn_s\": 41.781, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": \"external\"}"} +{"client_log": "client exit 0", "dose": "one", "env": "pendulum", "fault": "truncated:as-term", "fault_json": {"cells": 1, "dose": "one", "fault": "truncated:as-term", "first": [3399, 0], "steps": 6400}, "result": {"client_rc": "external", "dose": "one", "env": "pendulum", "fault": "truncated:as-term", "learn_s": 42.965, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "b6d594347b70da42ed036dfc33c1a7e0567b1e62c0e48cf9eac820c5d7b093fd"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"truncated:as-term\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"b6d594347b70da42ed036dfc33c1a7e0567b1e62c0e48cf9eac820c5d7b093fd\", \"learn_s\": 42.965, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": \"external\"}"} +{"client_log": "client exit 0", "dose": "one", "env": "pendulum", "fault": "truncated:drop", "fault_json": {"cells": 1, "dose": "one", "fault": "truncated:drop", "first": [3399, 0], "steps": 6400}, "result": {"client_rc": "external", "dose": "one", "env": "pendulum", "fault": "truncated:drop", "learn_s": 43.384, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "2b9a4f45c0822282bdf6d3dabb389b2f464c8bff9fb50b4ceb142c1653858aa6"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"truncated:drop\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"2b9a4f45c0822282bdf6d3dabb389b2f464c8bff9fb50b4ceb142c1653858aa6\", \"learn_s\": 43.384, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": \"external\"}"} diff --git a/experiments/e55-step-ledger/results/cross/summary.txt b/experiments/e55-step-ledger/results/cross/summary.txt new file mode 100644 index 0000000..98a597a --- /dev/null +++ b/experiments/e55-step-ledger/results/cross/summary.txt @@ -0,0 +1,33 @@ +env fault dose cells raises rule strict weights record bridge +pendulum none 1.0 0 0/1 0/1 - 0/1 0/1 0/1 +pendulum obs:zero one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum obs:stale one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum obs:swap one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum obs:f16 one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum action:zero one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum action:stale one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum action:swap one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum action:f16 one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum action:clip one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum reward:zero one 1 0/1 0/1 - 1/1 1/1 0/1 +pendulum reward:stale one 1 0/1 0/1 - 1/1 1/1 0/1 +pendulum reward:swap one 1 0/1 0/1 - 1/1 1/1 0/1 +pendulum reward:f16 one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum final-obs:zero one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum final-obs:stale one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum final-obs:swap one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum final-obs:f16 one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum terminated:spurious one 1 0/1 0/1 - 1/1 1/1 0/1 +pendulum truncated:drop one 1 0/1 0/1 - 1/1 1/1 0/1 +pendulum truncated:as-term one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum step:fill one 1 0/1 0/1 - 1/1 1/1 0/1 +pendulum log:drop-first one 1 0/1 0/1 - 0/1 1/1 1/1 +pendulum log:short one 1 0/1 0/1 - 0/1 1/1 1/1 + +share of runs caught, by dose (runs with a changed cell; either = weights or record) + pendulum client one n= 21 raises 0.0 rule 0.0 strict weights 1.0 record 0.286 bridge 0.0 either 1.0 + pendulum log one n= 2 raises 0.0 rule 0.0 strict weights 0.0 record 1.0 bridge 1.0 either 1.0 + pendulum all one n= 23 raises 0.0 rule 0.0 strict weights 0.913 record 0.348 bridge 0.087 either 1.0 + +pendulum none at seed 0: d7a19cc0, E50's ec5b8226: DIFFERENT +incomplete without an error: [('pendulum', 'action:clip', 'one', 0), ('pendulum', 'action:f16', 'one', 0), ('pendulum', 'action:stale', 'one', 0), ('pendulum', 'action:swap', 'one', 0), ('pendulum', 'action:zero', 'one', 0), ('pendulum', 'final-obs:f16', 'one', 0), ('pendulum', 'final-obs:stale', 'one', 0), ('pendulum', 'final-obs:swap', 'one', 0), ('pendulum', 'final-obs:zero', 'one', 0), ('pendulum', 'log:drop-first', 'one', 0), ('pendulum', 'log:short', 'one', 0), ('pendulum', 'none', '1.0', 0), ('pendulum', 'obs:f16', 'one', 0), ('pendulum', 'obs:stale', 'one', 0), ('pendulum', 'obs:swap', 'one', 0), ('pendulum', 'obs:zero', 'one', 0), ('pendulum', 'reward:f16', 'one', 0), ('pendulum', 'reward:stale', 'one', 0), ('pendulum', 'reward:swap', 'one', 0), ('pendulum', 'reward:zero', 'one', 0), ('pendulum', 'step:fill', 'one', 0), ('pendulum', 'terminated:spurious', 'one', 0), ('pendulum', 'truncated:as-term', 'one', 0), ('pendulum', 'truncated:drop', 'one', 0)] diff --git a/experiments/e55-step-ledger/results/e55-src.sha256 b/experiments/e55-step-ledger/results/e55-src.sha256 new file mode 100644 index 0000000..d7b49f3 --- /dev/null +++ b/experiments/e55-step-ledger/results/e55-src.sha256 @@ -0,0 +1,3 @@ +939fdb71bae513fe07b03e20504b0ff5b2b4d3d4fb298d90bd6b7ee70f26fb4b train.py +9cdd744b2d7f0786d226d53b948c128be08fe96221c74e12bd8c202a58c94afd faulty_client.py +f55e0a1ed50f47623278fd85b211073faf02cd7b8a8ae6bccd08a2740717a8e9 jobs.py diff --git a/experiments/e55-step-ledger/results/jobs.txt b/experiments/e55-step-ledger/results/jobs.txt new file mode 100644 index 0000000..7cd3020 --- /dev/null +++ b/experiments/e55-step-ledger/results/jobs.txt @@ -0,0 +1,216 @@ +pendulum none 1.0 0 trace +pendulum delay-1ms 1.0 0 trace +pendulum wire-float64 1.0 0 trace +pendulum obs:zero one 0 trace +pendulum obs:zero 0.01 0 trace +pendulum obs:zero 1.0 0 trace +pendulum obs:stale one 0 trace +pendulum obs:stale 0.01 0 trace +pendulum obs:stale 1.0 0 trace +pendulum obs:swap one 0 trace +pendulum obs:swap 0.01 0 trace +pendulum obs:swap 1.0 0 trace +pendulum obs:f16 one 0 trace +pendulum obs:f16 0.01 0 trace +pendulum obs:f16 1.0 0 trace +pendulum action:zero one 0 trace +pendulum action:zero 0.01 0 trace +pendulum action:zero 1.0 0 trace +pendulum action:stale one 0 trace +pendulum action:stale 0.01 0 trace +pendulum action:stale 1.0 0 trace +pendulum action:swap one 0 trace +pendulum action:swap 0.01 0 trace +pendulum action:swap 1.0 0 trace +pendulum action:f16 one 0 trace +pendulum action:f16 0.01 0 trace +pendulum action:f16 1.0 0 trace +pendulum action:clip one 0 trace +pendulum action:clip 0.01 0 trace +pendulum action:clip 1.0 0 trace +pendulum reward:zero one 0 trace +pendulum reward:zero 0.01 0 trace +pendulum reward:zero 1.0 0 trace +pendulum reward:stale one 0 trace +pendulum reward:stale 0.01 0 trace +pendulum reward:stale 1.0 0 trace +pendulum reward:swap one 0 trace +pendulum reward:swap 0.01 0 trace +pendulum reward:swap 1.0 0 trace +pendulum reward:f16 one 0 trace +pendulum reward:f16 0.01 0 trace +pendulum reward:f16 1.0 0 trace +pendulum final-obs:zero one 0 trace +pendulum final-obs:zero 0.01 0 trace +pendulum final-obs:zero 1.0 0 trace +pendulum final-obs:stale one 0 trace +pendulum final-obs:stale 0.01 0 trace +pendulum final-obs:stale 1.0 0 trace +pendulum final-obs:swap one 0 trace +pendulum final-obs:swap 0.01 0 trace +pendulum final-obs:swap 1.0 0 trace +pendulum final-obs:f16 one 0 trace +pendulum final-obs:f16 0.01 0 trace +pendulum final-obs:f16 1.0 0 trace +pendulum terminated:spurious one 0 trace +pendulum terminated:spurious 0.01 0 trace +pendulum terminated:spurious 1.0 0 trace +pendulum truncated:drop one 0 trace +pendulum truncated:drop 0.01 0 trace +pendulum truncated:drop 1.0 0 trace +pendulum truncated:as-term one 0 trace +pendulum truncated:as-term 0.01 0 trace +pendulum truncated:as-term 1.0 0 trace +pendulum step:fill one 0 trace +pendulum step:fill 0.01 0 trace +pendulum step:fill 1.0 0 trace +pendulum log:drop-first one 0 trace +pendulum log:drop-first 0.01 0 trace +pendulum log:drop-first 1.0 0 trace +pendulum log:short one 0 trace +pendulum log:short 0.01 0 trace +pendulum log:short 1.0 0 trace +pendulum none 1.0 1 trace +pendulum delay-1ms 1.0 1 trace +pendulum wire-float64 1.0 1 trace +pendulum obs:zero one 1 trace +pendulum obs:zero 0.01 1 trace +pendulum obs:zero 1.0 1 trace +pendulum obs:stale one 1 trace +pendulum obs:stale 0.01 1 trace +pendulum obs:stale 1.0 1 trace +pendulum obs:swap one 1 trace +pendulum obs:swap 0.01 1 trace +pendulum obs:swap 1.0 1 trace +pendulum obs:f16 one 1 trace +pendulum obs:f16 0.01 1 trace +pendulum obs:f16 1.0 1 trace +pendulum action:zero one 1 trace +pendulum action:zero 0.01 1 trace +pendulum action:zero 1.0 1 trace +pendulum action:stale one 1 trace +pendulum action:stale 0.01 1 trace +pendulum action:stale 1.0 1 trace +pendulum action:swap one 1 trace +pendulum action:swap 0.01 1 trace +pendulum action:swap 1.0 1 trace +pendulum action:f16 one 1 trace +pendulum action:f16 0.01 1 trace +pendulum action:f16 1.0 1 trace +pendulum action:clip one 1 trace +pendulum action:clip 0.01 1 trace +pendulum action:clip 1.0 1 trace +pendulum reward:zero one 1 trace +pendulum reward:zero 0.01 1 trace +pendulum reward:zero 1.0 1 trace +pendulum reward:stale one 1 trace +pendulum reward:stale 0.01 1 trace +pendulum reward:stale 1.0 1 trace +pendulum reward:swap one 1 trace +pendulum reward:swap 0.01 1 trace +pendulum reward:swap 1.0 1 trace +pendulum reward:f16 one 1 trace +pendulum reward:f16 0.01 1 trace +pendulum reward:f16 1.0 1 trace +pendulum final-obs:zero one 1 trace +pendulum final-obs:zero 0.01 1 trace +pendulum final-obs:zero 1.0 1 trace +pendulum final-obs:stale one 1 trace +pendulum final-obs:stale 0.01 1 trace +pendulum final-obs:stale 1.0 1 trace +pendulum final-obs:swap one 1 trace +pendulum final-obs:swap 0.01 1 trace +pendulum final-obs:swap 1.0 1 trace +pendulum final-obs:f16 one 1 trace +pendulum final-obs:f16 0.01 1 trace +pendulum final-obs:f16 1.0 1 trace +pendulum terminated:spurious one 1 trace +pendulum terminated:spurious 0.01 1 trace +pendulum terminated:spurious 1.0 1 trace +pendulum truncated:drop one 1 trace +pendulum truncated:drop 0.01 1 trace +pendulum truncated:drop 1.0 1 trace +pendulum truncated:as-term one 1 trace +pendulum truncated:as-term 0.01 1 trace +pendulum truncated:as-term 1.0 1 trace +pendulum step:fill one 1 trace +pendulum step:fill 0.01 1 trace +pendulum step:fill 1.0 1 trace +pendulum log:drop-first one 1 trace +pendulum log:drop-first 0.01 1 trace +pendulum log:drop-first 1.0 1 trace +pendulum log:short one 1 trace +pendulum log:short 0.01 1 trace +pendulum log:short 1.0 1 trace +pendulum none 1.0 2 trace +pendulum delay-1ms 1.0 2 trace +pendulum wire-float64 1.0 2 trace +pendulum obs:zero one 2 trace +pendulum obs:zero 0.01 2 trace +pendulum obs:zero 1.0 2 trace +pendulum obs:stale one 2 trace +pendulum obs:stale 0.01 2 trace +pendulum obs:stale 1.0 2 trace +pendulum obs:swap one 2 trace +pendulum obs:swap 0.01 2 trace +pendulum obs:swap 1.0 2 trace +pendulum obs:f16 one 2 trace +pendulum obs:f16 0.01 2 trace +pendulum obs:f16 1.0 2 trace +pendulum action:zero one 2 trace +pendulum action:zero 0.01 2 trace +pendulum action:zero 1.0 2 trace +pendulum action:stale one 2 trace +pendulum action:stale 0.01 2 trace +pendulum action:stale 1.0 2 trace +pendulum action:swap one 2 trace +pendulum action:swap 0.01 2 trace +pendulum action:swap 1.0 2 trace +pendulum action:f16 one 2 trace +pendulum action:f16 0.01 2 trace +pendulum action:f16 1.0 2 trace +pendulum action:clip one 2 trace +pendulum action:clip 0.01 2 trace +pendulum action:clip 1.0 2 trace +pendulum reward:zero one 2 trace +pendulum reward:zero 0.01 2 trace +pendulum reward:zero 1.0 2 trace +pendulum reward:stale one 2 trace +pendulum reward:stale 0.01 2 trace +pendulum reward:stale 1.0 2 trace +pendulum reward:swap one 2 trace +pendulum reward:swap 0.01 2 trace +pendulum reward:swap 1.0 2 trace +pendulum reward:f16 one 2 trace +pendulum reward:f16 0.01 2 trace +pendulum reward:f16 1.0 2 trace +pendulum final-obs:zero one 2 trace +pendulum final-obs:zero 0.01 2 trace +pendulum final-obs:zero 1.0 2 trace +pendulum final-obs:stale one 2 trace +pendulum final-obs:stale 0.01 2 trace +pendulum final-obs:stale 1.0 2 trace +pendulum final-obs:swap one 2 trace +pendulum final-obs:swap 0.01 2 trace +pendulum final-obs:swap 1.0 2 trace +pendulum final-obs:f16 one 2 trace +pendulum final-obs:f16 0.01 2 trace +pendulum final-obs:f16 1.0 2 trace +pendulum terminated:spurious one 2 trace +pendulum terminated:spurious 0.01 2 trace +pendulum terminated:spurious 1.0 2 trace +pendulum truncated:drop one 2 trace +pendulum truncated:drop 0.01 2 trace +pendulum truncated:drop 1.0 2 trace +pendulum truncated:as-term one 2 trace +pendulum truncated:as-term 0.01 2 trace +pendulum truncated:as-term 1.0 2 trace +pendulum step:fill one 2 trace +pendulum step:fill 0.01 2 trace +pendulum step:fill 1.0 2 trace +pendulum log:drop-first one 2 trace +pendulum log:drop-first 0.01 2 trace +pendulum log:drop-first 1.0 2 trace +pendulum log:short one 2 trace +pendulum log:short 0.01 2 trace +pendulum log:short 1.0 2 trace diff --git a/experiments/e55-step-ledger/results/ledger.csv b/experiments/e55-step-ledger/results/ledger.csv new file mode 100644 index 0000000..fa363b0 --- /dev/null +++ b/experiments/e55-step-ledger/results/ledger.csv @@ -0,0 +1,217 @@ +run,fault,dose,seed,cells,caught,differing,injected,found,right +pendulum/action__clip/0.01/seed0,action:clip,0.01,0,564,1,564,32/11,32/11 action,1 +pendulum/action__clip/0.01/seed1,action:clip,0.01,1,518,1,518,5/7,5/7 action,1 +pendulum/action__clip/0.01/seed2,action:clip,0.01,2,529,1,529,5/7,5/7 action,1 +pendulum/action__clip/1.0/seed0,action:clip,1.0,0,63653,1,63653,0/3,0/3 action,1 +pendulum/action__clip/1.0/seed1,action:clip,1.0,1,63417,1,63417,0/2,0/2 action,1 +pendulum/action__clip/1.0/seed2,action:clip,1.0,2,58306,1,58306,0/0,0/0 action,1 +pendulum/action__clip/one/seed0,action:clip,one,0,1,1,1,3249/0,3249/0 action,1 +pendulum/action__clip/one/seed1,action:clip,one,1,1,1,1,3252/0,3252/0 action,1 +pendulum/action__clip/one/seed2,action:clip,one,2,1,1,1,3256/0,3256/0 action,1 +pendulum/action__f16/0.01/seed0,action:f16,0.01,0,746,1,746,5/7,5/7 action,1 +pendulum/action__f16/0.01/seed1,action:f16,0.01,1,707,1,707,32/11,32/11 action,1 +pendulum/action__f16/0.01/seed2,action:f16,0.01,2,751,1,751,32/11,32/11 action,1 +pendulum/action__f16/1.0/seed0,action:f16,1.0,0,70086,1,70086,0/0,0/0 action,1 +pendulum/action__f16/1.0/seed1,action:f16,1.0,1,69306,1,69306,0/0,0/0 action,1 +pendulum/action__f16/1.0/seed2,action:f16,1.0,2,70621,1,70621,0/0,0/0 action,1 +pendulum/action__f16/one/seed0,action:f16,one,0,1,1,1,3251/0,3251/0 action,1 +pendulum/action__f16/one/seed1,action:f16,one,1,1,1,1,3249/0,3249/0 action,1 +pendulum/action__f16/one/seed2,action:f16,one,2,1,1,1,3249/0,3249/0 action,1 +pendulum/action__stale/0.01/seed0,action:stale,0.01,0,817,1,817,5/7,5/7 action,1 +pendulum/action__stale/0.01/seed1,action:stale,0.01,1,769,1,769,5/7,5/7 action,1 +pendulum/action__stale/0.01/seed2,action:stale,0.01,2,802,1,802,32/11,32/11 action,1 +pendulum/action__stale/1.0/seed0,action:stale,1.0,0,77023,1,77023,0/0,0/0 action,1 +pendulum/action__stale/1.0/seed1,action:stale,1.0,1,74754,1,74754,0/0,0/0 action,1 +pendulum/action__stale/1.0/seed2,action:stale,1.0,2,78333,1,78333,0/0,0/0 action,1 +pendulum/action__stale/one/seed0,action:stale,one,0,1,1,1,3251/0,3251/0 action,1 +pendulum/action__stale/one/seed1,action:stale,one,1,1,1,1,3249/0,3249/0 action,1 +pendulum/action__stale/one/seed2,action:stale,one,2,1,1,1,3249/0,3249/0 action,1 +pendulum/action__swap/0.01/seed0,action:swap,0.01,0,976,1,976,5/7,5/7 action,1 +pendulum/action__swap/0.01/seed1,action:swap,0.01,1,979,1,979,5/7,5/7 action,1 +pendulum/action__swap/0.01/seed2,action:swap,0.01,2,987,1,987,5/7,5/7 action,1 +pendulum/action__swap/1.0/seed0,action:swap,1.0,0,85056,1,85056,0/0,0/0 action,1 +pendulum/action__swap/1.0/seed1,action:swap,1.0,1,84269,1,84269,0/0,0/0 action,1 +pendulum/action__swap/1.0/seed2,action:swap,1.0,2,82169,1,82169,0/0,0/0 action,1 +pendulum/action__swap/one/seed0,action:swap,one,0,1,1,1,3249/0,3249/0 action,1 +pendulum/action__swap/one/seed1,action:swap,one,1,1,1,1,3249/0,3249/0 action,1 +pendulum/action__swap/one/seed2,action:swap,one,2,1,1,1,3249/0,3249/0 action,1 +pendulum/action__zero/0.01/seed0,action:zero,0.01,0,1068,1,1068,5/7,5/7 action,1 +pendulum/action__zero/0.01/seed1,action:zero,0.01,1,1068,1,1068,5/7,5/7 action,1 +pendulum/action__zero/0.01/seed2,action:zero,0.01,2,1068,1,1068,5/7,5/7 action,1 +pendulum/action__zero/1.0/seed0,action:zero,1.0,0,102400,1,102400,0/0,0/0 action,1 +pendulum/action__zero/1.0/seed1,action:zero,1.0,1,102400,1,102400,0/0,0/0 action,1 +pendulum/action__zero/1.0/seed2,action:zero,1.0,2,102400,1,102400,0/0,0/0 action,1 +pendulum/action__zero/one/seed0,action:zero,one,0,1,1,1,3249/0,3249/0 action,1 +pendulum/action__zero/one/seed1,action:zero,one,1,1,1,1,3249/0,3249/0 action,1 +pendulum/action__zero/one/seed2,action:zero,one,2,1,1,1,3249/0,3249/0 action,1 +pendulum/delay-1ms/1.0/seed0,delay-1ms,1.0,0,0,0,0,,,1 +pendulum/delay-1ms/1.0/seed1,delay-1ms,1.0,1,0,0,0,,,1 +pendulum/delay-1ms/1.0/seed2,delay-1ms,1.0,2,0,0,0,,,1 +pendulum/final-obs__f16/0.01/seed0,final-obs:f16,0.01,0,9,1,9,199/12,199/12 final,1 +pendulum/final-obs__f16/0.01/seed1,final-obs:f16,0.01,1,9,1,9,199/12,199/12 final,1 +pendulum/final-obs__f16/0.01/seed2,final-obs:f16,0.01,2,9,1,9,199/12,199/12 final,1 +pendulum/final-obs__f16/1.0/seed0,final-obs:f16,1.0,0,512,1,512,199/0,199/0 final,1 +pendulum/final-obs__f16/1.0/seed1,final-obs:f16,1.0,1,512,1,512,199/0,199/0 final,1 +pendulum/final-obs__f16/1.0/seed2,final-obs:f16,1.0,2,512,1,512,199/0,199/0 final,1 +pendulum/final-obs__f16/one/seed0,final-obs:f16,one,0,1,1,1,3399/0,3399/0 final,1 +pendulum/final-obs__f16/one/seed1,final-obs:f16,one,1,1,1,1,3399/0,3399/0 final,1 +pendulum/final-obs__f16/one/seed2,final-obs:f16,one,2,1,1,1,3399/0,3399/0 final,1 +pendulum/final-obs__stale/0.01/seed0,final-obs:stale,0.01,0,9,1,9,199/12,199/12 final,1 +pendulum/final-obs__stale/0.01/seed1,final-obs:stale,0.01,1,9,1,9,199/12,199/12 final,1 +pendulum/final-obs__stale/0.01/seed2,final-obs:stale,0.01,2,9,1,9,199/12,199/12 final,1 +pendulum/final-obs__stale/1.0/seed0,final-obs:stale,1.0,0,512,1,512,199/0,199/0 final,1 +pendulum/final-obs__stale/1.0/seed1,final-obs:stale,1.0,1,512,1,512,199/0,199/0 final,1 +pendulum/final-obs__stale/1.0/seed2,final-obs:stale,1.0,2,512,1,512,199/0,199/0 final,1 +pendulum/final-obs__stale/one/seed0,final-obs:stale,one,0,1,1,1,3399/0,3399/0 final,1 +pendulum/final-obs__stale/one/seed1,final-obs:stale,one,1,1,1,1,3399/0,3399/0 final,1 +pendulum/final-obs__stale/one/seed2,final-obs:stale,one,2,1,1,1,3399/0,3399/0 final,1 +pendulum/final-obs__swap/0.01/seed0,final-obs:swap,0.01,0,9,1,9,199/12,199/12 final,1 +pendulum/final-obs__swap/0.01/seed1,final-obs:swap,0.01,1,9,1,9,199/12,199/12 final,1 +pendulum/final-obs__swap/0.01/seed2,final-obs:swap,0.01,2,9,1,9,199/12,199/12 final,1 +pendulum/final-obs__swap/1.0/seed0,final-obs:swap,1.0,0,512,1,512,199/0,199/0 final,1 +pendulum/final-obs__swap/1.0/seed1,final-obs:swap,1.0,1,512,1,512,199/0,199/0 final,1 +pendulum/final-obs__swap/1.0/seed2,final-obs:swap,1.0,2,512,1,512,199/0,199/0 final,1 +pendulum/final-obs__swap/one/seed0,final-obs:swap,one,0,1,1,1,3399/0,3399/0 final,1 +pendulum/final-obs__swap/one/seed1,final-obs:swap,one,1,1,1,1,3399/0,3399/0 final,1 +pendulum/final-obs__swap/one/seed2,final-obs:swap,one,2,1,1,1,3399/0,3399/0 final,1 +pendulum/final-obs__zero/0.01/seed0,final-obs:zero,0.01,0,9,1,9,199/12,199/12 final,1 +pendulum/final-obs__zero/0.01/seed1,final-obs:zero,0.01,1,9,1,9,199/12,199/12 final,1 +pendulum/final-obs__zero/0.01/seed2,final-obs:zero,0.01,2,9,1,9,199/12,199/12 final,1 +pendulum/final-obs__zero/1.0/seed0,final-obs:zero,1.0,0,512,1,512,199/0,199/0 final,1 +pendulum/final-obs__zero/1.0/seed1,final-obs:zero,1.0,1,512,1,512,199/0,199/0 final,1 +pendulum/final-obs__zero/1.0/seed2,final-obs:zero,1.0,2,512,1,512,199/0,199/0 final,1 +pendulum/final-obs__zero/one/seed0,final-obs:zero,one,0,1,1,1,3399/0,3399/0 final,1 +pendulum/final-obs__zero/one/seed1,final-obs:zero,one,1,1,1,1,3399/0,3399/0 final,1 +pendulum/final-obs__zero/one/seed2,final-obs:zero,one,2,1,1,1,3399/0,3399/0 final,1 +pendulum/log__drop-first/0.01/seed0,log:drop-first,0.01,0,2,0,0,,,1 +pendulum/log__drop-first/0.01/seed1,log:drop-first,0.01,1,2,0,0,,,1 +pendulum/log__drop-first/0.01/seed2,log:drop-first,0.01,2,2,0,0,,,1 +pendulum/log__drop-first/1.0/seed0,log:drop-first,1.0,0,512,0,0,,,1 +pendulum/log__drop-first/1.0/seed1,log:drop-first,1.0,1,512,0,0,,,1 +pendulum/log__drop-first/1.0/seed2,log:drop-first,1.0,2,512,0,0,,,1 +pendulum/log__drop-first/one/seed0,log:drop-first,one,0,1,0,0,,,1 +pendulum/log__drop-first/one/seed1,log:drop-first,one,1,1,0,0,,,1 +pendulum/log__drop-first/one/seed2,log:drop-first,one,2,1,0,0,,,1 +pendulum/log__short/0.01/seed0,log:short,0.01,0,2,0,0,,,1 +pendulum/log__short/0.01/seed1,log:short,0.01,1,2,0,0,,,1 +pendulum/log__short/0.01/seed2,log:short,0.01,2,2,0,0,,,1 +pendulum/log__short/1.0/seed0,log:short,1.0,0,512,0,0,,,1 +pendulum/log__short/1.0/seed1,log:short,1.0,1,512,0,0,,,1 +pendulum/log__short/1.0/seed2,log:short,1.0,2,512,0,0,,,1 +pendulum/log__short/one/seed0,log:short,one,0,1,0,0,,,1 +pendulum/log__short/one/seed1,log:short,one,1,1,0,0,,,1 +pendulum/log__short/one/seed2,log:short,one,2,1,0,0,,,1 +pendulum/none/1.0/seed0,none,1.0,0,0,0,0,,,1 +pendulum/none/1.0/seed1,none,1.0,1,0,0,0,,,1 +pendulum/none/1.0/seed2,none,1.0,2,0,0,0,,,1 +pendulum/obs__f16/0.01/seed0,obs:f16,0.01,0,1068,1,1068,5/7,5/7 obs,1 +pendulum/obs__f16/0.01/seed1,obs:f16,0.01,1,1068,1,1068,5/7,5/7 obs,1 +pendulum/obs__f16/0.01/seed2,obs:f16,0.01,2,1068,1,1068,5/7,5/7 obs,1 +pendulum/obs__f16/1.0/seed0,obs:f16,1.0,0,102416,1,102400,0/0,0/0 obs,1 +pendulum/obs__f16/1.0/seed1,obs:f16,1.0,1,102416,1,102400,0/0,0/0 obs,1 +pendulum/obs__f16/1.0/seed2,obs:f16,1.0,2,102416,1,102400,0/0,0/0 obs,1 +pendulum/obs__f16/one/seed0,obs:f16,one,0,1,1,1,3249/0,3249/0 obs,1 +pendulum/obs__f16/one/seed1,obs:f16,one,1,1,1,1,3249/0,3249/0 obs,1 +pendulum/obs__f16/one/seed2,obs:f16,one,2,1,1,1,3249/0,3249/0 obs,1 +pendulum/obs__stale/0.01/seed0,obs:stale,0.01,0,1068,1,1068,5/7,5/7 obs,1 +pendulum/obs__stale/0.01/seed1,obs:stale,0.01,1,1068,1,1068,5/7,5/7 obs,1 +pendulum/obs__stale/0.01/seed2,obs:stale,0.01,2,1068,1,1068,5/7,5/7 obs,1 +pendulum/obs__stale/1.0/seed0,obs:stale,1.0,0,102400,1,102384,1/0,1/0 obs,1 +pendulum/obs__stale/1.0/seed1,obs:stale,1.0,1,102400,1,102384,1/0,1/0 obs,1 +pendulum/obs__stale/1.0/seed2,obs:stale,1.0,2,102400,1,102384,1/0,1/0 obs,1 +pendulum/obs__stale/one/seed0,obs:stale,one,0,1,1,1,3249/0,3249/0 obs,1 +pendulum/obs__stale/one/seed1,obs:stale,one,1,1,1,1,3249/0,3249/0 obs,1 +pendulum/obs__stale/one/seed2,obs:stale,one,2,1,1,1,3249/0,3249/0 obs,1 +pendulum/obs__swap/0.01/seed0,obs:swap,0.01,0,1068,1,1068,5/7,5/7 obs,1 +pendulum/obs__swap/0.01/seed1,obs:swap,0.01,1,1068,1,1068,5/7,5/7 obs,1 +pendulum/obs__swap/0.01/seed2,obs:swap,0.01,2,1068,1,1068,5/7,5/7 obs,1 +pendulum/obs__swap/1.0/seed0,obs:swap,1.0,0,102416,1,102400,0/0,0/0 obs,1 +pendulum/obs__swap/1.0/seed1,obs:swap,1.0,1,102416,1,102400,0/0,0/0 obs,1 +pendulum/obs__swap/1.0/seed2,obs:swap,1.0,2,102416,1,102400,0/0,0/0 obs,1 +pendulum/obs__swap/one/seed0,obs:swap,one,0,1,1,1,3249/0,3249/0 obs,1 +pendulum/obs__swap/one/seed1,obs:swap,one,1,1,1,1,3249/0,3249/0 obs,1 +pendulum/obs__swap/one/seed2,obs:swap,one,2,1,1,1,3249/0,3249/0 obs,1 +pendulum/obs__zero/0.01/seed0,obs:zero,0.01,0,1068,1,1068,5/7,5/7 obs,1 +pendulum/obs__zero/0.01/seed1,obs:zero,0.01,1,1068,1,1068,5/7,5/7 obs,1 +pendulum/obs__zero/0.01/seed2,obs:zero,0.01,2,1068,1,1068,5/7,5/7 obs,1 +pendulum/obs__zero/1.0/seed0,obs:zero,1.0,0,102416,1,102400,0/0,0/0 obs,1 +pendulum/obs__zero/1.0/seed1,obs:zero,1.0,1,102416,1,102400,0/0,0/0 obs,1 +pendulum/obs__zero/1.0/seed2,obs:zero,1.0,2,102416,1,102400,0/0,0/0 obs,1 +pendulum/obs__zero/one/seed0,obs:zero,one,0,1,1,1,3249/0,3249/0 obs,1 +pendulum/obs__zero/one/seed1,obs:zero,one,1,1,1,1,3249/0,3249/0 obs,1 +pendulum/obs__zero/one/seed2,obs:zero,one,2,1,1,1,3249/0,3249/0 obs,1 +pendulum/reward__f16/0.01/seed0,reward:f16,0.01,0,1068,1,1068,5/7,5/7 reward,1 +pendulum/reward__f16/0.01/seed1,reward:f16,0.01,1,1068,1,1068,5/7,5/7 reward,1 +pendulum/reward__f16/0.01/seed2,reward:f16,0.01,2,1068,1,1068,5/7,5/7 reward,1 +pendulum/reward__f16/1.0/seed0,reward:f16,1.0,0,102385,1,102385,0/0,0/0 reward,1 +pendulum/reward__f16/1.0/seed1,reward:f16,1.0,1,102393,1,102393,0/0,0/0 reward,1 +pendulum/reward__f16/1.0/seed2,reward:f16,1.0,2,102378,1,102378,0/0,0/0 reward,1 +pendulum/reward__f16/one/seed0,reward:f16,one,0,1,1,1,3249/0,3249/0 reward,1 +pendulum/reward__f16/one/seed1,reward:f16,one,1,1,1,1,3249/0,3249/0 reward,1 +pendulum/reward__f16/one/seed2,reward:f16,one,2,1,1,1,3249/0,3249/0 reward,1 +pendulum/reward__stale/0.01/seed0,reward:stale,0.01,0,1068,1,1068,5/7,5/7 reward,1 +pendulum/reward__stale/0.01/seed1,reward:stale,0.01,1,1068,1,1068,5/7,5/7 reward,1 +pendulum/reward__stale/0.01/seed2,reward:stale,0.01,2,1068,1,1068,5/7,5/7 reward,1 +pendulum/reward__stale/1.0/seed0,reward:stale,1.0,0,102400,1,102400,0/0,0/0 reward,1 +pendulum/reward__stale/1.0/seed1,reward:stale,1.0,1,102400,1,102400,0/0,0/0 reward,1 +pendulum/reward__stale/1.0/seed2,reward:stale,1.0,2,102400,1,102400,0/0,0/0 reward,1 +pendulum/reward__stale/one/seed0,reward:stale,one,0,1,1,1,3249/0,3249/0 reward,1 +pendulum/reward__stale/one/seed1,reward:stale,one,1,1,1,1,3249/0,3249/0 reward,1 +pendulum/reward__stale/one/seed2,reward:stale,one,2,1,1,1,3249/0,3249/0 reward,1 +pendulum/reward__swap/0.01/seed0,reward:swap,0.01,0,1068,1,1068,5/7,5/7 reward,1 +pendulum/reward__swap/0.01/seed1,reward:swap,0.01,1,1068,1,1068,5/7,5/7 reward,1 +pendulum/reward__swap/0.01/seed2,reward:swap,0.01,2,1068,1,1068,5/7,5/7 reward,1 +pendulum/reward__swap/1.0/seed0,reward:swap,1.0,0,102400,1,102400,0/0,0/0 reward,1 +pendulum/reward__swap/1.0/seed1,reward:swap,1.0,1,102400,1,102400,0/0,0/0 reward,1 +pendulum/reward__swap/1.0/seed2,reward:swap,1.0,2,102400,1,102400,0/0,0/0 reward,1 +pendulum/reward__swap/one/seed0,reward:swap,one,0,1,1,1,3249/0,3249/0 reward,1 +pendulum/reward__swap/one/seed1,reward:swap,one,1,1,1,1,3249/0,3249/0 reward,1 +pendulum/reward__swap/one/seed2,reward:swap,one,2,1,1,1,3249/0,3249/0 reward,1 +pendulum/reward__zero/0.01/seed0,reward:zero,0.01,0,1068,1,1068,5/7,5/7 reward,1 +pendulum/reward__zero/0.01/seed1,reward:zero,0.01,1,1068,1,1068,5/7,5/7 reward,1 +pendulum/reward__zero/0.01/seed2,reward:zero,0.01,2,1068,1,1068,5/7,5/7 reward,1 +pendulum/reward__zero/1.0/seed0,reward:zero,1.0,0,102400,1,102400,0/0,0/0 reward,1 +pendulum/reward__zero/1.0/seed1,reward:zero,1.0,1,102400,1,102400,0/0,0/0 reward,1 +pendulum/reward__zero/1.0/seed2,reward:zero,1.0,2,102400,1,102400,0/0,0/0 reward,1 +pendulum/reward__zero/one/seed0,reward:zero,one,0,1,1,1,3249/0,3249/0 reward,1 +pendulum/reward__zero/one/seed1,reward:zero,one,1,1,1,1,3249/0,3249/0 reward,1 +pendulum/reward__zero/one/seed2,reward:zero,one,2,1,1,1,3249/0,3249/0 reward,1 +pendulum/step__fill/0.01/seed0,step:fill,0.01,0,1068,1,100458,5/7,5/7 reward,1 +pendulum/step__fill/0.01/seed1,step:fill,0.01,1,1068,1,100458,5/7,5/7 reward,1 +pendulum/step__fill/0.01/seed2,step:fill,0.01,2,1068,1,100458,5/7,5/7 reward,1 +pendulum/step__fill/1.0/seed0,step:fill,1.0,0,102400,1,102400,0/0,0/0 steps,1 +pendulum/step__fill/1.0/seed1,step:fill,1.0,1,102400,1,102400,0/0,0/0 steps,1 +pendulum/step__fill/1.0/seed2,step:fill,1.0,2,102400,1,102400,0/0,0/0 steps,1 +pendulum/step__fill/one/seed0,step:fill,one,0,1,1,3151,3249/0,3249/0 reward,1 +pendulum/step__fill/one/seed1,step:fill,one,1,1,1,3151,3249/0,3249/0 reward,1 +pendulum/step__fill/one/seed2,step:fill,one,2,1,1,3151,3249/0,3249/0 reward,1 +pendulum/terminated__spurious/0.01/seed0,terminated:spurious,0.01,0,1068,1,1068,5/7,5/7 end,1 +pendulum/terminated__spurious/0.01/seed1,terminated:spurious,0.01,1,1068,1,1068,5/7,5/7 end,1 +pendulum/terminated__spurious/0.01/seed2,terminated:spurious,0.01,2,1068,1,1068,5/7,5/7 end,1 +pendulum/terminated__spurious/1.0/seed0,terminated:spurious,1.0,0,102400,1,102400,0/0,0/0 end,1 +pendulum/terminated__spurious/1.0/seed1,terminated:spurious,1.0,1,102400,1,102400,0/0,0/0 end,1 +pendulum/terminated__spurious/1.0/seed2,terminated:spurious,1.0,2,102400,1,102400,0/0,0/0 end,1 +pendulum/terminated__spurious/one/seed0,terminated:spurious,one,0,1,1,1,3249/0,3249/0 end,1 +pendulum/terminated__spurious/one/seed1,terminated:spurious,one,1,1,1,1,3249/0,3249/0 end,1 +pendulum/terminated__spurious/one/seed2,terminated:spurious,one,2,1,1,1,3249/0,3249/0 end,1 +pendulum/truncated__as-term/0.01/seed0,truncated:as-term,0.01,0,9,1,9,199/12,199/12 limit,1 +pendulum/truncated__as-term/0.01/seed1,truncated:as-term,0.01,1,9,1,9,199/12,199/12 limit,1 +pendulum/truncated__as-term/0.01/seed2,truncated:as-term,0.01,2,9,1,9,199/12,199/12 limit,1 +pendulum/truncated__as-term/1.0/seed0,truncated:as-term,1.0,0,512,1,512,199/0,199/0 limit,1 +pendulum/truncated__as-term/1.0/seed1,truncated:as-term,1.0,1,512,1,512,199/0,199/0 limit,1 +pendulum/truncated__as-term/1.0/seed2,truncated:as-term,1.0,2,512,1,512,199/0,199/0 limit,1 +pendulum/truncated__as-term/one/seed0,truncated:as-term,one,0,1,1,1,3399/0,3399/0 limit,1 +pendulum/truncated__as-term/one/seed1,truncated:as-term,one,1,1,1,1,3399/0,3399/0 limit,1 +pendulum/truncated__as-term/one/seed2,truncated:as-term,one,2,1,1,1,3399/0,3399/0 limit,1 +pendulum/truncated__drop/0.01/seed0,truncated:drop,0.01,0,9,1,9,199/12,199/12 end,1 +pendulum/truncated__drop/0.01/seed1,truncated:drop,0.01,1,9,1,9,199/12,199/12 end,1 +pendulum/truncated__drop/0.01/seed2,truncated:drop,0.01,2,9,1,9,199/12,199/12 end,1 +pendulum/truncated__drop/1.0/seed0,truncated:drop,1.0,0,512,1,512,199/0,199/0 end,1 +pendulum/truncated__drop/1.0/seed1,truncated:drop,1.0,1,512,1,512,199/0,199/0 end,1 +pendulum/truncated__drop/1.0/seed2,truncated:drop,1.0,2,512,1,512,199/0,199/0 end,1 +pendulum/truncated__drop/one/seed0,truncated:drop,one,0,1,1,1,3399/0,3399/0 end,1 +pendulum/truncated__drop/one/seed1,truncated:drop,one,1,1,1,1,3399/0,3399/0 end,1 +pendulum/truncated__drop/one/seed2,truncated:drop,one,2,1,1,1,3399/0,3399/0 end,1 +pendulum/wire-float64/1.0/seed0,wire-float64,1.0,0,0,0,0,,,1 +pendulum/wire-float64/1.0/seed1,wire-float64,1.0,1,0,0,0,,,1 +pendulum/wire-float64/1.0/seed2,wire-float64,1.0,2,0,0,0,,,1 diff --git a/experiments/e55-step-ledger/results/load.txt b/experiments/e55-step-ledger/results/load.txt new file mode 100644 index 0000000..d5e590c --- /dev/null +++ b/experiments/e55-step-ledger/results/load.txt @@ -0,0 +1,2 @@ + 17:24:50 up 28 days, 6:26, 1 user, load average: 0.11, 1.21, 3.57 + 17:33:15 up 28 days, 6:35, 1 user, load average: 8.87, 8.82, 6.62 diff --git a/experiments/e55-step-ledger/results/pilot/cross-laptop-python.txt b/experiments/e55-step-ledger/results/pilot/cross-laptop-python.txt new file mode 100644 index 0000000..0ea9946 --- /dev/null +++ b/experiments/e55-step-ledger/results/pilot/cross-laptop-python.txt @@ -0,0 +1,2 @@ +Python 3.11.14 +numpy 2.3.2 gymnasium 1.3.0 diff --git a/experiments/e55-step-ledger/results/pilot/cross-ledger.csv b/experiments/e55-step-ledger/results/pilot/cross-ledger.csv new file mode 100644 index 0000000..33c1812 --- /dev/null +++ b/experiments/e55-step-ledger/results/pilot/cross-ledger.csv @@ -0,0 +1,8 @@ +run,fault,dose,seed,cells,caught,differing,injected,found,right +pendulum/action__zero/one/seed9,action:zero,one,9,1,1,1,3249/0,3249/0 action,1 +pendulum/log__short/one/seed9,log:short,one,9,1,0,0,,,1 +pendulum/none/1.0/seed9,none,1.0,9,0,0,0,,,1 +pendulum/obs__stale/one/seed9,obs:stale,one,9,1,1,1,3249/0,3249/0 obs,1 +pendulum/reward__stale/one/seed9,reward:stale,one,9,1,1,1,3249/0,3249/0 reward,1 +pendulum/step__fill/one/seed9,step:fill,one,9,1,1,3151,3249/0,3249/0 reward,1 +pendulum/truncated__as-term/one/seed9,truncated:as-term,one,9,1,1,1,3399/0,3399/0 limit,1 diff --git a/experiments/e55-step-ledger/results/pilot/same-ledger.csv b/experiments/e55-step-ledger/results/pilot/same-ledger.csv new file mode 100644 index 0000000..de460fb --- /dev/null +++ b/experiments/e55-step-ledger/results/pilot/same-ledger.csv @@ -0,0 +1,73 @@ +run,fault,dose,seed,cells,caught,differing,injected,found,right +pendulum/action__clip/0.01/seed9,action:clip,0.01,9,570,1,570,5/7,5/7 action,1 +pendulum/action__clip/1.0/seed9,action:clip,1.0,9,65640,1,65640,0/2,0/2 action,1 +pendulum/action__clip/one/seed9,action:clip,one,9,1,1,1,3256/0,3256/0 action,1 +pendulum/action__f16/0.01/seed9,action:f16,0.01,9,709,1,709,50/10,50/10 action,1 +pendulum/action__f16/1.0/seed9,action:f16,1.0,9,64943,1,64943,0/0,0/0 action,1 +pendulum/action__f16/one/seed9,action:f16,one,9,1,1,1,3249/0,3249/0 action,1 +pendulum/action__stale/0.01/seed9,action:stale,0.01,9,784,1,784,50/10,50/10 action,1 +pendulum/action__stale/1.0/seed9,action:stale,1.0,9,75433,1,75433,0/0,0/0 action,1 +pendulum/action__stale/one/seed9,action:stale,one,9,1,1,1,3249/0,3249/0 action,1 +pendulum/action__swap/0.01/seed9,action:swap,0.01,9,969,1,969,5/7,5/7 action,1 +pendulum/action__swap/1.0/seed9,action:swap,1.0,9,87162,1,87162,0/0,0/0 action,1 +pendulum/action__swap/one/seed9,action:swap,one,9,1,1,1,3249/0,3249/0 action,1 +pendulum/action__zero/0.01/seed9,action:zero,0.01,9,1068,1,1068,5/7,5/7 action,1 +pendulum/action__zero/1.0/seed9,action:zero,1.0,9,102400,1,102400,0/0,0/0 action,1 +pendulum/action__zero/one/seed9,action:zero,one,9,1,1,1,3249/0,3249/0 action,1 +pendulum/delay-1ms/1.0/seed9,delay-1ms,1.0,9,0,0,0,,,1 +pendulum/final-obs__f16/0.01/seed9,final-obs:f16,0.01,9,9,1,9,199/12,199/12 final,1 +pendulum/final-obs__f16/1.0/seed9,final-obs:f16,1.0,9,512,1,512,199/0,199/0 final,1 +pendulum/final-obs__f16/one/seed9,final-obs:f16,one,9,1,1,1,3399/0,3399/0 final,1 +pendulum/final-obs__stale/0.01/seed9,final-obs:stale,0.01,9,9,1,9,199/12,199/12 final,1 +pendulum/final-obs__stale/1.0/seed9,final-obs:stale,1.0,9,512,1,512,199/0,199/0 final,1 +pendulum/final-obs__stale/one/seed9,final-obs:stale,one,9,1,1,1,3399/0,3399/0 final,1 +pendulum/final-obs__swap/0.01/seed9,final-obs:swap,0.01,9,9,1,9,199/12,199/12 final,1 +pendulum/final-obs__swap/1.0/seed9,final-obs:swap,1.0,9,512,1,512,199/0,199/0 final,1 +pendulum/final-obs__swap/one/seed9,final-obs:swap,one,9,1,1,1,3399/0,3399/0 final,1 +pendulum/final-obs__zero/0.01/seed9,final-obs:zero,0.01,9,9,1,9,199/12,199/12 final,1 +pendulum/final-obs__zero/1.0/seed9,final-obs:zero,1.0,9,512,1,512,199/0,199/0 final,1 +pendulum/final-obs__zero/one/seed9,final-obs:zero,one,9,1,1,1,3399/0,3399/0 final,1 +pendulum/log__drop-first/0.01/seed9,log:drop-first,0.01,9,2,0,0,,,1 +pendulum/log__drop-first/1.0/seed9,log:drop-first,1.0,9,512,0,0,,,1 +pendulum/log__drop-first/one/seed9,log:drop-first,one,9,1,0,0,,,1 +pendulum/log__short/0.01/seed9,log:short,0.01,9,2,0,0,,,1 +pendulum/log__short/1.0/seed9,log:short,1.0,9,512,0,0,,,1 +pendulum/log__short/one/seed9,log:short,one,9,1,0,0,,,1 +pendulum/none/1.0/seed9,none,1.0,9,0,0,0,,,1 +pendulum/obs__f16/0.01/seed9,obs:f16,0.01,9,1068,1,1068,5/7,5/7 obs,1 +pendulum/obs__f16/1.0/seed9,obs:f16,1.0,9,102416,1,102400,0/0,0/0 obs,1 +pendulum/obs__f16/one/seed9,obs:f16,one,9,1,1,1,3249/0,3249/0 obs,1 +pendulum/obs__stale/0.01/seed9,obs:stale,0.01,9,1068,1,1068,5/7,5/7 obs,1 +pendulum/obs__stale/1.0/seed9,obs:stale,1.0,9,102400,1,102384,1/0,1/0 obs,1 +pendulum/obs__stale/one/seed9,obs:stale,one,9,1,1,1,3249/0,3249/0 obs,1 +pendulum/obs__swap/0.01/seed9,obs:swap,0.01,9,1068,1,1068,5/7,5/7 obs,1 +pendulum/obs__swap/1.0/seed9,obs:swap,1.0,9,102416,1,102400,0/0,0/0 obs,1 +pendulum/obs__swap/one/seed9,obs:swap,one,9,1,1,1,3249/0,3249/0 obs,1 +pendulum/obs__zero/0.01/seed9,obs:zero,0.01,9,1068,1,1068,5/7,5/7 obs,1 +pendulum/obs__zero/1.0/seed9,obs:zero,1.0,9,102416,1,102400,0/0,0/0 obs,1 +pendulum/obs__zero/one/seed9,obs:zero,one,9,1,1,1,3249/0,3249/0 obs,1 +pendulum/reward__f16/0.01/seed9,reward:f16,0.01,9,1068,1,1068,5/7,5/7 reward,1 +pendulum/reward__f16/1.0/seed9,reward:f16,1.0,9,102388,1,102388,0/0,0/0 reward,1 +pendulum/reward__f16/one/seed9,reward:f16,one,9,1,1,1,3249/0,3249/0 reward,1 +pendulum/reward__stale/0.01/seed9,reward:stale,0.01,9,1068,1,1068,5/7,5/7 reward,1 +pendulum/reward__stale/1.0/seed9,reward:stale,1.0,9,102400,1,102400,0/0,0/0 reward,1 +pendulum/reward__stale/one/seed9,reward:stale,one,9,1,1,1,3249/0,3249/0 reward,1 +pendulum/reward__swap/0.01/seed9,reward:swap,0.01,9,1068,1,1068,5/7,5/7 reward,1 +pendulum/reward__swap/1.0/seed9,reward:swap,1.0,9,102400,1,102400,0/0,0/0 reward,1 +pendulum/reward__swap/one/seed9,reward:swap,one,9,1,1,1,3249/0,3249/0 reward,1 +pendulum/reward__zero/0.01/seed9,reward:zero,0.01,9,1068,1,1068,5/7,5/7 reward,1 +pendulum/reward__zero/1.0/seed9,reward:zero,1.0,9,102400,1,102400,0/0,0/0 reward,1 +pendulum/reward__zero/one/seed9,reward:zero,one,9,1,1,1,3249/0,3249/0 reward,1 +pendulum/step__fill/0.01/seed9,step:fill,0.01,9,1068,1,100458,5/7,5/7 reward,1 +pendulum/step__fill/1.0/seed9,step:fill,1.0,9,102400,1,102400,0/0,0/0 steps,1 +pendulum/step__fill/one/seed9,step:fill,one,9,1,1,3151,3249/0,3249/0 reward,1 +pendulum/terminated__spurious/0.01/seed9,terminated:spurious,0.01,9,1068,1,1068,5/7,5/7 end,1 +pendulum/terminated__spurious/1.0/seed9,terminated:spurious,1.0,9,102400,1,102400,0/0,0/0 end,1 +pendulum/terminated__spurious/one/seed9,terminated:spurious,one,9,1,1,1,3249/0,3249/0 end,1 +pendulum/truncated__as-term/0.01/seed9,truncated:as-term,0.01,9,9,1,9,199/12,199/12 limit,1 +pendulum/truncated__as-term/1.0/seed9,truncated:as-term,1.0,9,512,1,512,199/0,199/0 limit,1 +pendulum/truncated__as-term/one/seed9,truncated:as-term,one,9,1,1,1,3399/0,3399/0 limit,1 +pendulum/truncated__drop/0.01/seed9,truncated:drop,0.01,9,9,1,9,199/12,199/12 end,1 +pendulum/truncated__drop/1.0/seed9,truncated:drop,1.0,9,512,1,512,199/0,199/0 end,1 +pendulum/truncated__drop/one/seed9,truncated:drop,one,9,1,1,1,3399/0,3399/0 end,1 +pendulum/wire-float64/1.0/seed9,wire-float64,1.0,9,0,0,0,,,1 diff --git a/experiments/e55-step-ledger/results/pilot/same-summary.txt b/experiments/e55-step-ledger/results/pilot/same-summary.txt new file mode 100644 index 0000000..df31367 --- /dev/null +++ b/experiments/e55-step-ledger/results/pilot/same-summary.txt @@ -0,0 +1,87 @@ +env fault dose cells raises rule strict weights record bridge +pendulum none 1.0 0 0/1 0/1 - 0/1 0/1 0/1 +pendulum delay-1ms 1.0 0 0/1 0/1 - 0/1 0/1 0/1 +pendulum wire-float64 1.0 0 0/1 0/1 - 0/1 0/1 0/1 +pendulum obs:zero 0.01 1068 0/1 0/1 - 1/1 0/1 0/1 +pendulum obs:zero 1.0 102416 0/1 1/1 - 1/1 0/1 0/1 +pendulum obs:zero one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum obs:stale 0.01 1068 0/1 0/1 - 1/1 0/1 0/1 +pendulum obs:stale 1.0 102400 0/1 0/1 - 1/1 0/1 0/1 +pendulum obs:stale one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum obs:swap 0.01 1068 0/1 0/1 - 1/1 0/1 0/1 +pendulum obs:swap 1.0 102416 0/1 1/1 - 1/1 0/1 0/1 +pendulum obs:swap one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum obs:f16 0.01 1068 0/1 0/1 - 1/1 0/1 0/1 +pendulum obs:f16 1.0 102416 0/1 0/1 - 1/1 0/1 0/1 +pendulum obs:f16 one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum action:zero 0.01 1068 0/1 0/1 - 1/1 0/1 0/1 +pendulum action:zero 1.0 102400 0/1 1/1 - 1/1 0/1 0/1 +pendulum action:zero one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum action:stale 0.01 784 0/1 0/1 - 1/1 0/1 0/1 +pendulum action:stale 1.0 75433 0/1 0/1 - 1/1 0/1 0/1 +pendulum action:stale one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum action:swap 0.01 969 0/1 0/1 - 1/1 0/1 0/1 +pendulum action:swap 1.0 87162 0/1 1/1 - 1/1 0/1 0/1 +pendulum action:swap one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum action:f16 0.01 709 0/1 0/1 - 1/1 0/1 0/1 +pendulum action:f16 1.0 64943 0/1 0/1 - 1/1 0/1 0/1 +pendulum action:f16 one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum action:clip 0.01 570 0/1 0/1 - 1/1 0/1 0/1 +pendulum action:clip 1.0 65640 0/1 0/1 - 1/1 0/1 0/1 +pendulum action:clip one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum reward:zero 0.01 1068 0/1 0/1 - 1/1 1/1 0/1 +pendulum reward:zero 1.0 102400 0/1 1/1 - 1/1 1/1 0/1 +pendulum reward:zero one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum reward:stale 0.01 1068 0/1 0/1 - 1/1 1/1 0/1 +pendulum reward:stale 1.0 102400 0/1 0/1 - 1/1 1/1 0/1 +pendulum reward:stale one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum reward:swap 0.01 1068 0/1 0/1 - 1/1 1/1 0/1 +pendulum reward:swap 1.0 102400 0/1 1/1 - 1/1 1/1 0/1 +pendulum reward:swap one 1 0/1 0/1 - 1/1 1/1 0/1 +pendulum reward:f16 0.01 1068 0/1 0/1 - 1/1 0/1 0/1 +pendulum reward:f16 1.0 102388 0/1 0/1 - 1/1 0/1 0/1 +pendulum reward:f16 one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum final-obs:zero 0.01 9 0/1 0/1 - 1/1 0/1 0/1 +pendulum final-obs:zero 1.0 512 0/1 0/1 - 1/1 0/1 0/1 +pendulum final-obs:zero one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum final-obs:stale 0.01 9 0/1 0/1 - 1/1 0/1 0/1 +pendulum final-obs:stale 1.0 512 0/1 0/1 - 1/1 0/1 0/1 +pendulum final-obs:stale one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum final-obs:swap 0.01 9 0/1 0/1 - 1/1 0/1 0/1 +pendulum final-obs:swap 1.0 512 0/1 0/1 - 1/1 0/1 0/1 +pendulum final-obs:swap one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum final-obs:f16 0.01 9 0/1 0/1 - 1/1 0/1 0/1 +pendulum final-obs:f16 1.0 512 0/1 0/1 - 1/1 0/1 0/1 +pendulum final-obs:f16 one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum terminated:spurious 0.01 1068 0/1 1/1 - 1/1 1/1 0/1 +pendulum terminated:spurious 1.0 102400 0/1 1/1 - 1/1 1/1 0/1 +pendulum terminated:spurious one 1 0/1 0/1 - 1/1 1/1 0/1 +pendulum truncated:drop 0.01 9 0/1 0/1 - 1/1 1/1 0/1 +pendulum truncated:drop 1.0 512 0/1 1/1 - 1/1 1/1 0/1 +pendulum truncated:drop one 1 0/1 0/1 - 1/1 1/1 0/1 +pendulum truncated:as-term 0.01 9 0/1 0/1 - 1/1 0/1 0/1 +pendulum truncated:as-term 1.0 512 0/1 0/1 - 1/1 0/1 0/1 +pendulum truncated:as-term one 1 0/1 0/1 - 1/1 0/1 0/1 +pendulum step:fill 0.01 1068 0/1 0/1 - 1/1 1/1 0/1 +pendulum step:fill 1.0 102400 0/1 1/1 - 1/1 0/1 0/1 +pendulum step:fill one 1 0/1 0/1 - 1/1 1/1 0/1 +pendulum log:drop-first 0.01 2 0/1 0/1 - 0/1 1/1 1/1 +pendulum log:drop-first 1.0 512 0/1 0/1 - 0/1 1/1 1/1 +pendulum log:drop-first one 1 0/1 0/1 - 0/1 1/1 1/1 +pendulum log:short 0.01 2 0/1 0/1 - 0/1 1/1 1/1 +pendulum log:short 1.0 512 0/1 0/1 - 0/1 1/1 1/1 +pendulum log:short one 1 0/1 0/1 - 0/1 1/1 1/1 + +share of runs caught, by dose (runs with a changed cell; either = weights or record) + pendulum client one n= 21 raises 0.0 rule 0.0 strict weights 1.0 record 0.19 bridge 0.0 either 1.0 + pendulum client 0.01 n= 21 raises 0.0 rule 0.048 strict weights 1.0 record 0.286 bridge 0.0 either 1.0 + pendulum client 1.0 n= 21 raises 0.0 rule 0.429 strict weights 1.0 record 0.238 bridge 0.0 either 1.0 + pendulum log one n= 2 raises 0.0 rule 0.0 strict weights 0.0 record 1.0 bridge 1.0 either 1.0 + pendulum log 0.01 n= 2 raises 0.0 rule 0.0 strict weights 0.0 record 1.0 bridge 1.0 either 1.0 + pendulum log 1.0 n= 2 raises 0.0 rule 0.0 strict weights 0.0 record 1.0 bridge 1.0 either 1.0 + pendulum all one n= 23 raises 0.0 rule 0.0 strict weights 0.913 record 0.261 bridge 0.087 either 1.0 + pendulum all 0.01 n= 23 raises 0.0 rule 0.043 strict weights 0.913 record 0.348 bridge 0.087 either 1.0 + pendulum all 1.0 n= 23 raises 0.0 rule 0.391 strict weights 0.913 record 0.304 bridge 0.087 either 1.0 + +pendulum none at seed 9: 3721266c, E50's 3721266c: same +incomplete without an error: none diff --git a/experiments/e55-step-ledger/results/registered.out b/experiments/e55-step-ledger/results/registered.out new file mode 100644 index 0000000..7118682 --- /dev/null +++ b/experiments/e55-step-ledger/results/registered.out @@ -0,0 +1,14 @@ + 17:24:50 up 28 days, 6:26, 1 user, load average: 0.11, 1.21, 3.57 +216 runs, 10 at a time +worker 0 done +worker 8 done +worker 9 done +worker 7 done +worker 5 done +worker 3 done +worker 1 done +worker 6 done +worker 4 done +worker 2 done + 17:33:15 up 28 days, 6:35, 1 user, load average: 8.87, 8.82, 6.62 +E55_DONE diff --git a/experiments/e55-step-ledger/results/runs.csv b/experiments/e55-step-ledger/results/runs.csv new file mode 100644 index 0000000..baffd4d --- /dev/null +++ b/experiments/e55-step-ledger/results/runs.csv @@ -0,0 +1,217 @@ +env,fault,dose,seed,cells,raises,rule,strict,weights,record,bridge,gain,last,episodes,sha,learn_s,raised,complete +pendulum,action:clip,0.01,0,564,0,0,,1,0,0,1002.3,-227.8,512,96d41f53,20.565,,1 +pendulum,action:clip,0.01,1,518,0,0,,1,0,0,1066.9,-183.0,512,f6c883c2,20.174,,1 +pendulum,action:clip,0.01,2,529,0,0,,1,0,0,989.3,-229.0,512,d6eebc9c,20.646,,1 +pendulum,action:clip,1.0,0,63653,0,0,,1,0,0,868.8,-369.2,512,9c89fd2e,20.305,,1 +pendulum,action:clip,1.0,1,63417,0,0,,1,0,0,863.6,-362.0,512,319f69be,20.678,,1 +pendulum,action:clip,1.0,2,58306,0,0,,1,0,0,861.9,-361.2,512,f19dd117,20.204,,1 +pendulum,action:clip,one,0,1,0,0,,1,0,0,1036.9,-187.9,512,46222c2a,20.59,,1 +pendulum,action:clip,one,1,1,0,0,,1,0,0,1020.2,-213.9,512,ba4ba4cc,20.637,,1 +pendulum,action:clip,one,2,1,0,0,,1,0,0,1008.9,-196.7,512,6ccbd988,20.389,,1 +pendulum,action:f16,0.01,0,746,0,0,,1,0,0,1027.3,-197.7,512,0b05a50a,20.493,,1 +pendulum,action:f16,0.01,1,707,0,0,,1,0,0,1041.3,-192.7,512,b4f02fd1,20.389,,1 +pendulum,action:f16,0.01,2,751,0,0,,1,0,0,1012.4,-195.5,512,d0384b0f,20.274,,1 +pendulum,action:f16,1.0,0,70086,0,0,,1,0,0,1028.9,-194.0,512,9f5f03a4,19.994,,1 +pendulum,action:f16,1.0,1,69306,0,0,,1,0,0,1058.6,-177.8,512,490d8a3f,20.349,,1 +pendulum,action:f16,1.0,2,70621,0,0,,1,0,0,1018.3,-192.1,512,42e1ffc3,20.16,,1 +pendulum,action:f16,one,0,1,0,0,,1,0,0,1013.2,-211.6,512,c86def24,20.535,,1 +pendulum,action:f16,one,1,1,0,0,,1,0,0,1046.5,-187.6,512,93384ed4,20.17,,1 +pendulum,action:f16,one,2,1,0,0,,1,0,0,1004.0,-201.6,512,32901a88,20.386,,1 +pendulum,action:stale,0.01,0,817,0,0,,1,0,0,1043.7,-187.1,512,523f9fdb,20.737,,1 +pendulum,action:stale,0.01,1,769,0,0,,1,0,0,1035.8,-214.2,512,a5ebc8a2,20.072,,1 +pendulum,action:stale,0.01,2,802,0,0,,1,0,0,1020.7,-195.0,512,02583893,20.136,,1 +pendulum,action:stale,1.0,0,77023,0,0,,1,0,0,1057.1,-193.6,512,bcbbc6fc,20.587,,1 +pendulum,action:stale,1.0,1,74754,0,0,,1,0,0,1076.9,-175.8,512,86d9270e,19.767,,1 +pendulum,action:stale,1.0,2,78333,0,0,,1,0,0,1046.9,-181.2,512,fb489c27,20.654,,1 +pendulum,action:stale,one,0,1,0,0,,1,0,0,1019.7,-205.2,512,aa1a75e2,20.07,,1 +pendulum,action:stale,one,1,1,0,0,,1,0,0,1046.1,-187.9,512,fd625f6e,20.93,,1 +pendulum,action:stale,one,2,1,0,0,,1,0,0,1001.5,-204.1,512,d00464b8,20.611,,1 +pendulum,action:swap,0.01,0,976,0,0,,1,0,0,1043.0,-196.3,512,e5ad4cab,20.377,,1 +pendulum,action:swap,0.01,1,979,0,0,,1,0,0,1038.2,-214.4,512,27dd148a,20.444,,1 +pendulum,action:swap,0.01,2,987,0,0,,1,0,0,1031.5,-208.3,512,a87eaf38,20.882,,1 +pendulum,action:swap,1.0,0,85056,0,1,,1,0,0,-46.1,-1244.2,512,889766d5,20.667,,1 +pendulum,action:swap,1.0,1,84269,0,1,,1,0,0,-35.3,-1223.7,512,fe95f321,20.254,,1 +pendulum,action:swap,1.0,2,82169,0,1,,1,0,0,-77.7,-1231.5,512,93086fa0,20.885,,1 +pendulum,action:swap,one,0,1,0,0,,1,0,0,1032.2,-192.6,512,9b3b2cd8,20.636,,1 +pendulum,action:swap,one,1,1,0,0,,1,0,0,1039.2,-194.8,512,c5240226,19.998,,1 +pendulum,action:swap,one,2,1,0,0,,1,0,0,1012.1,-193.6,512,7a44221a,20.662,,1 +pendulum,action:zero,0.01,0,1068,0,0,,1,0,0,1027.3,-209.8,512,ce2f2d84,20.697,,1 +pendulum,action:zero,0.01,1,1068,0,0,,1,0,0,1040.6,-195.1,512,414ad5c5,20.584,,1 +pendulum,action:zero,0.01,2,1068,0,0,,1,0,0,1025.7,-195.7,512,32a19fe7,20.637,,1 +pendulum,action:zero,1.0,0,102400,0,1,,1,0,0,10.5,-1214.6,512,fc69c04c,21.278,,1 +pendulum,action:zero,1.0,1,102400,0,1,,1,0,0,-4.3,-1219.7,512,b2feb45b,20.094,,1 +pendulum,action:zero,1.0,2,102400,0,1,,1,0,0,-15.9,-1232.7,512,9fd2c154,20.496,,1 +pendulum,action:zero,one,0,1,0,0,,1,0,0,1010.1,-214.8,512,f4f801a9,20.93,,1 +pendulum,action:zero,one,1,1,0,0,,1,0,0,1035.1,-199.0,512,476aadb0,19.991,,1 +pendulum,action:zero,one,2,1,0,0,,1,0,0,1002.7,-203.0,512,2d5728a9,20.015,,1 +pendulum,delay-1ms,1.0,0,0,0,0,,0,0,0,1025.1,-199.8,512,ec5b8226,30.331,,1 +pendulum,delay-1ms,1.0,1,0,0,0,,0,0,0,1025.3,-208.8,512,062e92e3,29.73,,1 +pendulum,delay-1ms,1.0,2,0,0,0,,0,0,0,959.6,-246.0,512,3a8d968f,29.664,,1 +pendulum,final-obs:f16,0.01,0,9,0,0,,1,0,0,990.4,-234.5,512,8b050884,20.543,,1 +pendulum,final-obs:f16,0.01,1,9,0,0,,1,0,0,1044.7,-189.3,512,d1fea845,20.45,,1 +pendulum,final-obs:f16,0.01,2,9,0,0,,1,0,0,996.8,-208.8,512,8d4f5d81,20.755,,1 +pendulum,final-obs:f16,1.0,0,512,0,0,,1,0,0,1033.4,-191.5,512,3aaf60a0,20.453,,1 +pendulum,final-obs:f16,1.0,1,512,0,0,,1,0,0,1047.4,-186.7,512,209d2f10,20.398,,1 +pendulum,final-obs:f16,1.0,2,512,0,0,,1,0,0,1020.4,-185.3,512,3b34c6f2,20.383,,1 +pendulum,final-obs:f16,one,0,1,0,0,,1,0,0,1025.5,-199.3,512,bf6e41a3,20.469,,1 +pendulum,final-obs:f16,one,1,1,0,0,,1,0,0,1037.4,-196.6,512,18d8ddf9,20.557,,1 +pendulum,final-obs:f16,one,2,1,0,0,,1,0,0,1003.1,-202.5,512,ab939388,20.857,,1 +pendulum,final-obs:stale,0.01,0,9,0,0,,1,0,0,1010.9,-214.0,512,a059213f,20.629,,1 +pendulum,final-obs:stale,0.01,1,9,0,0,,1,0,0,1039.5,-194.7,512,f99f790f,20.207,,1 +pendulum,final-obs:stale,0.01,2,9,0,0,,1,0,0,979.6,-228.3,512,e3e423de,20.474,,1 +pendulum,final-obs:stale,1.0,0,512,0,0,,1,0,0,963.9,-260.8,512,114f86a0,20.654,,1 +pendulum,final-obs:stale,1.0,1,512,0,0,,1,0,0,1021.3,-206.3,512,2a99cc39,20.436,,1 +pendulum,final-obs:stale,1.0,2,512,0,0,,1,0,0,1006.6,-201.2,512,64ddd2f4,21.143,,1 +pendulum,final-obs:stale,one,0,1,0,0,,1,0,0,1021.8,-203.0,512,2cd3a46f,20.484,,1 +pendulum,final-obs:stale,one,1,1,0,0,,1,0,0,1044.1,-190.0,512,3d2b49b0,20.497,,1 +pendulum,final-obs:stale,one,2,1,0,0,,1,0,0,1012.2,-193.4,512,9080a4bf,20.265,,1 +pendulum,final-obs:swap,0.01,0,9,0,0,,1,0,0,1025.7,-198.7,512,5bd0a6b2,20.595,,1 +pendulum,final-obs:swap,0.01,1,9,0,0,,1,0,0,1029.2,-199.0,512,c97adf0d,20.615,,1 +pendulum,final-obs:swap,0.01,2,9,0,0,,1,0,0,1010.8,-200.6,512,56c13906,20.584,,1 +pendulum,final-obs:swap,1.0,0,512,0,0,,1,0,0,1007.3,-212.6,512,3f8956ed,20.781,,1 +pendulum,final-obs:swap,1.0,1,512,0,0,,1,0,0,1028.5,-203.2,512,c81ec51a,20.556,,1 +pendulum,final-obs:swap,1.0,2,512,0,0,,1,0,0,1008.5,-202.0,512,1b6b79fd,19.876,,1 +pendulum,final-obs:swap,one,0,1,0,0,,1,0,0,1035.3,-189.5,512,4e8492f7,20.696,,1 +pendulum,final-obs:swap,one,1,1,0,0,,1,0,0,1035.4,-198.7,512,a85f2e22,20.874,,1 +pendulum,final-obs:swap,one,2,1,0,0,,1,0,0,1014.7,-191.0,512,8f41be4c,20.596,,1 +pendulum,final-obs:zero,0.01,0,9,0,0,,1,0,0,1035.7,-188.6,512,010adf87,20.562,,1 +pendulum,final-obs:zero,0.01,1,9,0,0,,1,0,0,1011.9,-217.2,512,fcdec6da,20.612,,1 +pendulum,final-obs:zero,0.01,2,9,0,0,,1,0,0,968.6,-239.8,512,4e34a328,19.869,,1 +pendulum,final-obs:zero,1.0,0,512,0,0,,1,0,0,908.5,-313.6,512,efd619dc,20.323,,1 +pendulum,final-obs:zero,1.0,1,512,0,0,,1,0,0,982.1,-253.0,512,b56b40ae,20.377,,1 +pendulum,final-obs:zero,1.0,2,512,0,0,,1,0,0,950.9,-258.0,512,226ab780,20.818,,1 +pendulum,final-obs:zero,one,0,1,0,0,,1,0,0,1017.8,-207.0,512,bf033c56,20.04,,1 +pendulum,final-obs:zero,one,1,1,0,0,,1,0,0,1031.6,-202.5,512,d0314318,20.413,,1 +pendulum,final-obs:zero,one,2,1,0,0,,1,0,0,989.6,-216.0,512,81a24d76,20.695,,1 +pendulum,log:drop-first,0.01,0,2,0,0,,0,1,1,1025.1,-199.8,512,ec5b8226,20.408,,1 +pendulum,log:drop-first,0.01,1,2,0,0,,0,1,1,1025.3,-208.8,512,062e92e3,20.136,,1 +pendulum,log:drop-first,0.01,2,2,0,0,,0,1,1,959.6,-246.0,512,3a8d968f,18.95,,1 +pendulum,log:drop-first,1.0,0,512,0,0,,0,1,1,1025.0,-196.5,512,ec5b8226,20.716,,1 +pendulum,log:drop-first,1.0,1,512,0,0,,0,1,1,1025.4,-205.4,512,062e92e3,20.596,,1 +pendulum,log:drop-first,1.0,2,512,0,0,,0,1,1,959.8,-242.6,512,3a8d968f,18.828,,1 +pendulum,log:drop-first,one,0,1,0,0,,0,1,1,1025.1,-199.8,512,ec5b8226,19.794,,1 +pendulum,log:drop-first,one,1,1,0,0,,0,1,1,1025.3,-208.8,512,062e92e3,19.859,,1 +pendulum,log:drop-first,one,2,1,0,0,,0,1,1,959.6,-246.0,512,3a8d968f,19.13,,1 +pendulum,log:short,0.01,0,2,0,0,,0,1,1,1025.1,-199.8,512,ec5b8226,20.326,,1 +pendulum,log:short,0.01,1,2,0,0,,0,1,1,1025.3,-208.8,512,062e92e3,20.347,,1 +pendulum,log:short,0.01,2,2,0,0,,0,1,1,959.6,-246.0,512,3a8d968f,18.755,,1 +pendulum,log:short,1.0,0,512,0,0,,0,1,1,1025.1,-199.8,512,ec5b8226,20.245,,1 +pendulum,log:short,1.0,1,512,0,0,,0,1,1,1025.3,-208.8,512,062e92e3,20.37,,1 +pendulum,log:short,1.0,2,512,0,0,,0,1,1,959.6,-246.0,512,3a8d968f,18.64,,1 +pendulum,log:short,one,0,1,0,0,,0,1,1,1025.1,-199.8,512,ec5b8226,19.832,,1 +pendulum,log:short,one,1,1,0,0,,0,1,1,1025.3,-208.8,512,062e92e3,20.728,,1 +pendulum,log:short,one,2,1,0,0,,0,1,1,959.6,-246.0,512,3a8d968f,18.654,,1 +pendulum,none,1.0,0,0,0,0,,0,0,0,1025.1,-199.8,512,ec5b8226,20.86,,1 +pendulum,none,1.0,1,0,0,0,,0,0,0,1025.3,-208.8,512,062e92e3,20.149,,1 +pendulum,none,1.0,2,0,0,0,,0,0,0,959.6,-246.0,512,3a8d968f,20.007,,1 +pendulum,obs:f16,0.01,0,1068,0,0,,1,0,0,1003.1,-216.6,512,8cdce0a6,20.594,,1 +pendulum,obs:f16,0.01,1,1068,0,0,,1,0,0,1037.2,-191.9,512,9efc34bd,20.083,,1 +pendulum,obs:f16,0.01,2,1068,0,0,,1,0,0,1023.2,-184.8,512,a291b401,20.501,,1 +pendulum,obs:f16,1.0,0,102416,0,0,,1,0,0,1019.9,-200.7,512,6bd93edb,20.993,,1 +pendulum,obs:f16,1.0,1,102416,0,0,,1,0,0,1047.4,-194.5,512,db006462,20.721,,1 +pendulum,obs:f16,1.0,2,102416,0,0,,1,0,0,987.4,-214.1,512,0655bd23,20.319,,1 +pendulum,obs:f16,one,0,1,0,0,,1,0,0,1003.9,-220.9,512,d1484e30,20.828,,1 +pendulum,obs:f16,one,1,1,0,0,,1,0,0,1042.8,-191.3,512,7809451b,20.613,,1 +pendulum,obs:f16,one,2,1,0,0,,1,0,0,1012.5,-193.1,512,3026d8df,20.095,,1 +pendulum,obs:stale,0.01,0,1068,0,0,,1,0,0,1026.5,-201.1,512,0cbb3296,20.301,,1 +pendulum,obs:stale,0.01,1,1068,0,0,,1,0,0,1023.7,-208.3,512,2a0550ff,20.14,,1 +pendulum,obs:stale,0.01,2,1068,0,0,,1,0,0,1027.2,-191.2,512,08b18278,20.147,,1 +pendulum,obs:stale,1.0,0,102400,0,0,,1,0,0,971.8,-270.1,512,bd9261b4,20.747,,1 +pendulum,obs:stale,1.0,1,102400,0,0,,1,0,0,1056.3,-187.7,512,3b8e0f67,20.544,,1 +pendulum,obs:stale,1.0,2,102400,0,0,,1,0,0,1051.2,-186.1,512,b2634e34,20.333,,1 +pendulum,obs:stale,one,0,1,0,0,,1,0,0,992.2,-232.6,512,765a1ee0,20.704,,1 +pendulum,obs:stale,one,1,1,0,0,,1,0,0,995.9,-238.2,512,12613a2a,20.751,,1 +pendulum,obs:stale,one,2,1,0,0,,1,0,0,1005.0,-200.6,512,978b430d,21.01,,1 +pendulum,obs:swap,0.01,0,1068,0,0,,1,0,0,1044.0,-200.0,512,f6cb32fa,20.708,,1 +pendulum,obs:swap,0.01,1,1068,0,0,,1,0,0,1037.0,-212.2,512,deeb971c,20.105,,1 +pendulum,obs:swap,0.01,2,1068,0,0,,1,0,0,987.8,-244.6,512,407d9729,20.49,,1 +pendulum,obs:swap,1.0,0,102416,0,1,,1,0,0,12.4,-1217.5,512,516c7ce6,21.18,,1 +pendulum,obs:swap,1.0,1,102416,0,1,,1,0,0,60.6,-1219.5,512,ee7dcd35,20.598,,1 +pendulum,obs:swap,1.0,2,102416,0,1,,1,0,0,-13.4,-1214.5,512,220ba53a,20.141,,1 +pendulum,obs:swap,one,0,1,0,0,,1,0,0,1016.0,-208.8,512,3fb58b16,20.436,,1 +pendulum,obs:swap,one,1,1,0,0,,1,0,0,1047.2,-186.8,512,9e1f81cd,20.335,,1 +pendulum,obs:swap,one,2,1,0,0,,1,0,0,998.8,-206.9,512,bfb37b1a,20.166,,1 +pendulum,obs:zero,0.01,0,1068,0,0,,1,0,0,1013.1,-230.2,512,ed34c167,20.291,,1 +pendulum,obs:zero,0.01,1,1068,0,0,,1,0,0,1007.0,-216.9,512,3f052f94,20.381,,1 +pendulum,obs:zero,0.01,2,1068,0,0,,1,0,0,1014.7,-210.3,512,7b02c343,20.56,,1 +pendulum,obs:zero,1.0,0,102416,0,1,,1,0,0,10.5,-1214.6,512,6f23c454,21.114,,1 +pendulum,obs:zero,1.0,1,102416,0,1,,1,0,0,-4.3,-1219.7,512,bfbe3209,20.327,,1 +pendulum,obs:zero,1.0,2,102416,0,1,,1,0,0,-15.9,-1232.7,512,e1dbe226,20.55,,1 +pendulum,obs:zero,one,0,1,0,0,,1,0,0,1031.5,-193.3,512,e2f06a8f,20.411,,1 +pendulum,obs:zero,one,1,1,0,0,,1,0,0,1036.7,-197.4,512,9be2e057,20.368,,1 +pendulum,obs:zero,one,2,1,0,0,,1,0,0,1014.9,-190.7,512,2f7f6acc,19.845,,1 +pendulum,reward:f16,0.01,0,1068,0,0,,1,0,0,1024.1,-200.8,512,957547ea,20.716,,1 +pendulum,reward:f16,0.01,1,1068,0,0,,1,0,0,1040.1,-188.9,512,ff01fa2a,20.748,,1 +pendulum,reward:f16,0.01,2,1068,0,0,,1,0,0,1000.6,-207.3,512,1404abe1,20.375,,1 +pendulum,reward:f16,1.0,0,102385,0,0,,1,0,0,1018.1,-205.8,512,1d482f24,20.635,,1 +pendulum,reward:f16,1.0,1,102393,0,0,,1,0,0,987.4,-246.8,512,add3c078,21.022,,1 +pendulum,reward:f16,1.0,2,102378,0,0,,1,0,0,1005.9,-205.1,512,c6599770,20.515,,1 +pendulum,reward:f16,one,0,1,0,0,,1,0,0,1012.7,-212.2,512,e95cad4d,20.248,,1 +pendulum,reward:f16,one,1,1,0,0,,1,0,0,1028.8,-205.3,512,833fe81c,20.382,,1 +pendulum,reward:f16,one,2,1,0,0,,1,0,0,1007.6,-198.1,512,9bbbf32e,20.475,,1 +pendulum,reward:stale,0.01,0,1068,0,0,,1,1,0,1021.3,-201.5,512,c3ecfd3a,20.43,,1 +pendulum,reward:stale,0.01,1,1068,0,0,,1,1,0,1046.9,-186.4,512,3d6114f7,20.488,,1 +pendulum,reward:stale,0.01,2,1068,0,0,,1,1,0,1007.4,-202.1,512,70133a54,20.337,,1 +pendulum,reward:stale,1.0,0,102400,0,0,,1,1,0,1013.0,-201.7,512,982f942a,20.331,,1 +pendulum,reward:stale,1.0,1,102400,0,0,,1,1,0,1048.9,-187.4,512,0cddc6e3,20.407,,1 +pendulum,reward:stale,1.0,2,102400,0,0,,1,1,0,1014.2,-191.7,512,87c6042c,20.712,,1 +pendulum,reward:stale,one,0,1,0,0,,1,1,0,1016.9,-207.9,512,755acd6f,20.452,,1 +pendulum,reward:stale,one,1,1,0,0,,1,0,0,1041.5,-192.6,512,29a4a30e,20.636,,1 +pendulum,reward:stale,one,2,1,0,0,,1,0,0,1006.1,-199.5,512,8b012764,20.283,,1 +pendulum,reward:swap,0.01,0,1068,0,0,,1,1,0,1027.2,-193.7,512,c5bef941,20.339,,1 +pendulum,reward:swap,0.01,1,1068,0,0,,1,1,0,1061.2,-185.5,512,49df93d6,20.943,,1 +pendulum,reward:swap,0.01,2,1068,0,0,,1,1,0,985.0,-220.7,512,1f2b8986,19.842,,1 +pendulum,reward:swap,1.0,0,102400,0,1,,1,1,0,10.0,-1213.8,512,f15ee7af,20.717,,1 +pendulum,reward:swap,1.0,1,102400,0,1,,1,1,0,72.1,-1173.4,512,333cd4cd,20.626,,1 +pendulum,reward:swap,1.0,2,102400,0,1,,1,1,0,-147.4,-1353.2,512,5a1c7763,20.831,,1 +pendulum,reward:swap,one,0,1,0,0,,1,1,0,1014.3,-210.5,512,67f6552c,20.654,,1 +pendulum,reward:swap,one,1,1,0,0,,1,1,0,1022.3,-211.7,512,38b7ad55,20.415,,1 +pendulum,reward:swap,one,2,1,0,0,,1,0,0,1016.7,-188.9,512,dd11b659,20.458,,1 +pendulum,reward:zero,0.01,0,1068,0,0,,1,1,0,1009.4,-196.9,512,11d1d7dc,20.766,,1 +pendulum,reward:zero,0.01,1,1068,0,0,,1,1,0,1023.4,-196.3,512,e90c654b,20.778,,1 +pendulum,reward:zero,0.01,2,1068,0,0,,1,1,0,982.4,-216.0,512,57614cea,20.474,,1 +pendulum,reward:zero,1.0,0,102400,0,1,,1,1,0,0.0,0.0,512,f3c1c4c3,20.641,,1 +pendulum,reward:zero,1.0,1,102400,0,1,,1,1,0,0.0,0.0,512,d483503e,19.952,,1 +pendulum,reward:zero,1.0,2,102400,0,1,,1,1,0,0.0,0.0,512,092cb09b,20.62,,1 +pendulum,reward:zero,one,0,1,0,0,,1,1,0,1021.3,-203.5,512,e42c5fa8,20.363,,1 +pendulum,reward:zero,one,1,1,0,0,,1,0,0,1025.0,-209.0,512,b0cdde97,20.792,,1 +pendulum,reward:zero,one,2,1,0,0,,1,0,0,1000.8,-204.8,512,77163c4c,20.257,,1 +pendulum,step:fill,0.01,0,1068,0,0,,1,1,0,1032.1,-188.7,496,32ba03dd,20.191,,1 +pendulum,step:fill,0.01,1,1068,0,0,,1,1,0,1059.6,-199.4,496,c201aca0,20.287,,1 +pendulum,step:fill,0.01,2,1068,0,0,,1,1,0,996.5,-206.3,496,b14b76d2,19.893,,1 +pendulum,step:fill,1.0,0,102400,0,1,,1,0,0,,,0,7c353631,18.361,,1 +pendulum,step:fill,1.0,1,102400,0,1,,1,0,0,,,0,d303871d,18.855,,1 +pendulum,step:fill,1.0,2,102400,0,1,,1,0,0,,,0,36f6d91e,18.523,,1 +pendulum,step:fill,one,0,1,0,0,,1,1,0,1016.2,-208.6,511,1426c402,19.933,,1 +pendulum,step:fill,one,1,1,0,0,,1,1,0,1021.7,-212.3,511,1b86e0d9,20.638,,1 +pendulum,step:fill,one,2,1,0,0,,1,1,0,1011.2,-194.4,511,e2d1cee4,20.871,,1 +pendulum,terminated:spurious,0.01,0,1068,0,1,,1,1,0,195.6,-178.6,1571,bfaf6961,20.615,,1 +pendulum,terminated:spurious,0.01,1,1068,0,1,,1,1,0,242.7,-142.4,1571,d166081a,20.513,,1 +pendulum,terminated:spurious,0.01,2,1068,0,1,,1,1,0,236.3,-152.5,1571,66d62461,20.608,,1 +pendulum,terminated:spurious,1.0,0,102400,0,1,,1,1,0,-2.9,-6.5,102400,f885d396,21.815,,1 +pendulum,terminated:spurious,1.0,1,102400,0,1,,1,1,0,-2.8,-6.3,102400,ef551e57,21.687,,1 +pendulum,terminated:spurious,1.0,2,102400,0,1,,1,1,0,-2.1,-6.0,102400,1611c255,21.308,,1 +pendulum,terminated:spurious,one,0,1,0,0,,1,1,0,1014.4,-210.5,513,44d6e670,20.366,,1 +pendulum,terminated:spurious,one,1,1,0,0,,1,1,0,1040.4,-193.6,513,ad8c101a,20.716,,1 +pendulum,terminated:spurious,one,2,1,0,0,,1,1,0,1012.5,-193.1,513,b9f30a62,20.396,,1 +pendulum,truncated:as-term,0.01,0,9,0,0,,1,0,0,999.9,-224.4,512,9ea56785,20.515,,1 +pendulum,truncated:as-term,0.01,1,9,0,0,,1,0,0,1034.0,-195.1,512,5e225449,20.474,,1 +pendulum,truncated:as-term,0.01,2,9,0,0,,1,0,0,1001.8,-206.6,512,8ffa7e42,19.974,,1 +pendulum,truncated:as-term,1.0,0,512,0,0,,1,0,0,1017.5,-204.6,512,57eb5601,20.741,,1 +pendulum,truncated:as-term,1.0,1,512,0,0,,1,0,0,997.2,-237.9,512,2c8a0d7a,19.935,,1 +pendulum,truncated:as-term,1.0,2,512,0,0,,1,0,0,1000.1,-208.8,512,3292a6ce,20.243,,1 +pendulum,truncated:as-term,one,0,1,0,0,,1,0,0,1037.8,-187.0,512,1778bb25,20.138,,1 +pendulum,truncated:as-term,one,1,1,0,0,,1,0,0,1039.2,-194.8,512,31459006,20.312,,1 +pendulum,truncated:as-term,one,2,1,0,0,,1,0,0,1005.7,-200.0,512,bb2c9d55,20.33,,1 +pendulum,truncated:drop,0.01,0,9,0,0,,1,1,0,1072.0,-194.0,503,bfafb0fb,20.589,,1 +pendulum,truncated:drop,0.01,1,9,0,0,,1,1,0,1067.8,-197.2,503,db17509e,20.563,,1 +pendulum,truncated:drop,0.01,2,9,0,0,,1,1,0,1018.8,-222.3,503,8c5d0450,20.523,,1 +pendulum,truncated:drop,1.0,0,512,0,1,,1,1,0,,,0,1a833295,20.466,,1 +pendulum,truncated:drop,1.0,1,512,0,1,,1,1,0,,,0,c077fca8,20.671,,1 +pendulum,truncated:drop,1.0,2,512,0,1,,1,1,0,,,0,85691232,20.145,,1 +pendulum,truncated:drop,one,0,1,0,0,,1,1,0,1032.8,-192.0,511,754e49b9,20.076,,1 +pendulum,truncated:drop,one,1,1,0,0,,1,1,0,1008.6,-225.5,511,b21d8718,20.183,,1 +pendulum,truncated:drop,one,2,1,0,0,,1,1,0,1004.0,-201.6,511,4bc2ef7b,19.847,,1 +pendulum,wire-float64,1.0,0,0,0,0,,0,0,0,1025.1,-199.8,512,ec5b8226,20.351,,1 +pendulum,wire-float64,1.0,1,0,0,0,,0,0,0,1025.3,-208.8,512,062e92e3,19.837,,1 +pendulum,wire-float64,1.0,2,0,0,0,,0,0,0,959.6,-246.0,512,3a8d968f,19.963,,1 diff --git a/experiments/e55-step-ledger/results/runs.jsonl b/experiments/e55-step-ledger/results/runs.jsonl new file mode 100644 index 0000000..949f01b --- /dev/null +++ b/experiments/e55-step-ledger/results/runs.jsonl @@ -0,0 +1,216 @@ +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 564 cells changed", "dose": "0.01", "env": "pendulum", "fault": "action:clip", "fault_json": {"cells": 564, "dose": "0.01", "fault": "action:clip", "first": [32, 11], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "action:clip", "learn_s": 20.565, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "96d41f53f22400b33876cf75f798b3b5b7fa73ab3fb37fdda78db5f65f9829b4"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:clip\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"96d41f53f22400b33876cf75f798b3b5b7fa73ab3fb37fdda78db5f65f9829b4\", \"learn_s\": 20.565, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 518 cells changed", "dose": "0.01", "env": "pendulum", "fault": "action:clip", "fault_json": {"cells": 518, "dose": "0.01", "fault": "action:clip", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "action:clip", "learn_s": 20.174, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "f6c883c2e50c9edb2b55dfcd8b754f5e9ef8c04d59f9970c5650a6ccb9404571"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:clip\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"f6c883c2e50c9edb2b55dfcd8b754f5e9ef8c04d59f9970c5650a6ccb9404571\", \"learn_s\": 20.174, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 529 cells changed", "dose": "0.01", "env": "pendulum", "fault": "action:clip", "fault_json": {"cells": 529, "dose": "0.01", "fault": "action:clip", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "action:clip", "learn_s": 20.646, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "d6eebc9ce2d2b4eddc7624f5a084754a8075e5967e0044e432b4adfd22930b5d"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:clip\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"d6eebc9ce2d2b4eddc7624f5a084754a8075e5967e0044e432b4adfd22930b5d\", \"learn_s\": 20.646, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 63653 cells changed", "dose": "1.0", "env": "pendulum", "fault": "action:clip", "fault_json": {"cells": 63653, "dose": "1.0", "fault": "action:clip", "first": [0, 3], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "action:clip", "learn_s": 20.305, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "9c89fd2ef5db4c246d990daef84dd670ca0424f7d4c3a42fbe5ae3e63e529c4d"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:clip\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"9c89fd2ef5db4c246d990daef84dd670ca0424f7d4c3a42fbe5ae3e63e529c4d\", \"learn_s\": 20.305, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 63417 cells changed", "dose": "1.0", "env": "pendulum", "fault": "action:clip", "fault_json": {"cells": 63417, "dose": "1.0", "fault": "action:clip", "first": [0, 2], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "action:clip", "learn_s": 20.678, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "319f69beae8ffbc924e1a45df5b82928042b55ee0c6e68ed5e8bf84cc3bc3a91"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:clip\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"319f69beae8ffbc924e1a45df5b82928042b55ee0c6e68ed5e8bf84cc3bc3a91\", \"learn_s\": 20.678, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 58306 cells changed", "dose": "1.0", "env": "pendulum", "fault": "action:clip", "fault_json": {"cells": 58306, "dose": "1.0", "fault": "action:clip", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "action:clip", "learn_s": 20.204, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "f19dd117a422727abe12ec9962703059eadb7bbcef5e3a912cd9e1e8e2868cbe"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:clip\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"f19dd117a422727abe12ec9962703059eadb7bbcef5e3a912cd9e1e8e2868cbe\", \"learn_s\": 20.204, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "action:clip", "fault_json": {"cells": 1, "dose": "one", "fault": "action:clip", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "action:clip", "learn_s": 20.59, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "46222c2ac9e9ef6c837bf29ced5a6d51cf19ed5b1fc397829919ce6f3059f43c"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:clip\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"46222c2ac9e9ef6c837bf29ced5a6d51cf19ed5b1fc397829919ce6f3059f43c\", \"learn_s\": 20.59, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "action:clip", "fault_json": {"cells": 1, "dose": "one", "fault": "action:clip", "first": [3252, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "action:clip", "learn_s": 20.637, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "ba4ba4ccf2224b64a173705cdabf84ece11ee1be7ce53785e8f2d33ea1f68747"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:clip\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"ba4ba4ccf2224b64a173705cdabf84ece11ee1be7ce53785e8f2d33ea1f68747\", \"learn_s\": 20.637, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "action:clip", "fault_json": {"cells": 1, "dose": "one", "fault": "action:clip", "first": [3256, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "action:clip", "learn_s": 20.389, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "6ccbd98824ae0f2535858c7d445d7cac78ee1f73546411face32e68cef86cbca"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:clip\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"6ccbd98824ae0f2535858c7d445d7cac78ee1f73546411face32e68cef86cbca\", \"learn_s\": 20.389, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 746 cells changed", "dose": "0.01", "env": "pendulum", "fault": "action:f16", "fault_json": {"cells": 746, "dose": "0.01", "fault": "action:f16", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "action:f16", "learn_s": 20.493, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "0b05a50a2214f78ddd8253db5cb3d1e09b64eb5b7f81d1df812b806fab3d1e31"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:f16\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"0b05a50a2214f78ddd8253db5cb3d1e09b64eb5b7f81d1df812b806fab3d1e31\", \"learn_s\": 20.493, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 707 cells changed", "dose": "0.01", "env": "pendulum", "fault": "action:f16", "fault_json": {"cells": 707, "dose": "0.01", "fault": "action:f16", "first": [32, 11], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "action:f16", "learn_s": 20.389, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "b4f02fd1092798ded1d6b3838885188b18409718e11d62a929596b43a2ac78d0"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:f16\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"b4f02fd1092798ded1d6b3838885188b18409718e11d62a929596b43a2ac78d0\", \"learn_s\": 20.389, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 751 cells changed", "dose": "0.01", "env": "pendulum", "fault": "action:f16", "fault_json": {"cells": 751, "dose": "0.01", "fault": "action:f16", "first": [32, 11], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "action:f16", "learn_s": 20.274, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "d0384b0f2944f29c914582039cc3695a4681332f6eede0bd4afdeb67fdf0cb09"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:f16\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"d0384b0f2944f29c914582039cc3695a4681332f6eede0bd4afdeb67fdf0cb09\", \"learn_s\": 20.274, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 70086 cells changed", "dose": "1.0", "env": "pendulum", "fault": "action:f16", "fault_json": {"cells": 70086, "dose": "1.0", "fault": "action:f16", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "action:f16", "learn_s": 19.994, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "9f5f03a4a7cf8e897468d10d93cd29a677cb328249f859b656d7ac281061559b"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:f16\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"9f5f03a4a7cf8e897468d10d93cd29a677cb328249f859b656d7ac281061559b\", \"learn_s\": 19.994, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 69306 cells changed", "dose": "1.0", "env": "pendulum", "fault": "action:f16", "fault_json": {"cells": 69306, "dose": "1.0", "fault": "action:f16", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "action:f16", "learn_s": 20.349, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "490d8a3f2a2b48ffc85a44f6364145c84691790c3fa3425e3af05938c2197b2e"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:f16\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"490d8a3f2a2b48ffc85a44f6364145c84691790c3fa3425e3af05938c2197b2e\", \"learn_s\": 20.349, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 70621 cells changed", "dose": "1.0", "env": "pendulum", "fault": "action:f16", "fault_json": {"cells": 70621, "dose": "1.0", "fault": "action:f16", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "action:f16", "learn_s": 20.16, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "42e1ffc388c7b5e931a24a0ac7046be883b0ac48b362af99c2387590a32010a2"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:f16\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"42e1ffc388c7b5e931a24a0ac7046be883b0ac48b362af99c2387590a32010a2\", \"learn_s\": 20.16, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "action:f16", "fault_json": {"cells": 1, "dose": "one", "fault": "action:f16", "first": [3251, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "action:f16", "learn_s": 20.535, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "c86def24127ae86f70f35418cc10c779b26a2ead72472da4cd40bac0157fc19d"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:f16\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"c86def24127ae86f70f35418cc10c779b26a2ead72472da4cd40bac0157fc19d\", \"learn_s\": 20.535, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "action:f16", "fault_json": {"cells": 1, "dose": "one", "fault": "action:f16", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "action:f16", "learn_s": 20.17, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "93384ed4dd2ea65601acedacac83a175e8ab3c9a6c3bbb893f97c84e3f834247"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:f16\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"93384ed4dd2ea65601acedacac83a175e8ab3c9a6c3bbb893f97c84e3f834247\", \"learn_s\": 20.17, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "action:f16", "fault_json": {"cells": 1, "dose": "one", "fault": "action:f16", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "action:f16", "learn_s": 20.386, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "32901a883850194eb724338ccf14d10e48767ede2394cac9b6e24546a680239a"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:f16\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"32901a883850194eb724338ccf14d10e48767ede2394cac9b6e24546a680239a\", \"learn_s\": 20.386, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 817 cells changed", "dose": "0.01", "env": "pendulum", "fault": "action:stale", "fault_json": {"cells": 817, "dose": "0.01", "fault": "action:stale", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "action:stale", "learn_s": 20.737, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "523f9fdb055224b01e6089af237246b60960e2cb006c0176f1e1ab741b2e502b"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:stale\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"523f9fdb055224b01e6089af237246b60960e2cb006c0176f1e1ab741b2e502b\", \"learn_s\": 20.737, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 769 cells changed", "dose": "0.01", "env": "pendulum", "fault": "action:stale", "fault_json": {"cells": 769, "dose": "0.01", "fault": "action:stale", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "action:stale", "learn_s": 20.072, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "a5ebc8a21cdd415daa065cdf5ccc6bff4dad08c3e59136585e30a5a62aee5024"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:stale\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"a5ebc8a21cdd415daa065cdf5ccc6bff4dad08c3e59136585e30a5a62aee5024\", \"learn_s\": 20.072, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 802 cells changed", "dose": "0.01", "env": "pendulum", "fault": "action:stale", "fault_json": {"cells": 802, "dose": "0.01", "fault": "action:stale", "first": [32, 11], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "action:stale", "learn_s": 20.136, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "025838930fde0b281de7d48a1c1c9cfad23ab0252025added2e7233cc974367b"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:stale\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"025838930fde0b281de7d48a1c1c9cfad23ab0252025added2e7233cc974367b\", \"learn_s\": 20.136, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 77023 cells changed", "dose": "1.0", "env": "pendulum", "fault": "action:stale", "fault_json": {"cells": 77023, "dose": "1.0", "fault": "action:stale", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "action:stale", "learn_s": 20.587, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "bcbbc6fc9a71d6943b283211dc799850c89633f63bf5c569df694129a6296cd4"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:stale\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"bcbbc6fc9a71d6943b283211dc799850c89633f63bf5c569df694129a6296cd4\", \"learn_s\": 20.587, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 74754 cells changed", "dose": "1.0", "env": "pendulum", "fault": "action:stale", "fault_json": {"cells": 74754, "dose": "1.0", "fault": "action:stale", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "action:stale", "learn_s": 19.767, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "86d9270e81df1bf64caeecb07fa202417463cb2f7ea9f1e5d751494d9e41a540"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:stale\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"86d9270e81df1bf64caeecb07fa202417463cb2f7ea9f1e5d751494d9e41a540\", \"learn_s\": 19.767, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 78333 cells changed", "dose": "1.0", "env": "pendulum", "fault": "action:stale", "fault_json": {"cells": 78333, "dose": "1.0", "fault": "action:stale", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "action:stale", "learn_s": 20.654, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "fb489c27538cd52c51aaf38f8f7eef8f77d4f87085eaa9f36b6ee9ac46f43200"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:stale\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"fb489c27538cd52c51aaf38f8f7eef8f77d4f87085eaa9f36b6ee9ac46f43200\", \"learn_s\": 20.654, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "action:stale", "fault_json": {"cells": 1, "dose": "one", "fault": "action:stale", "first": [3251, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "action:stale", "learn_s": 20.07, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "aa1a75e2c0527e79b38dd9e7f3370c56521baa5489a297ce62c959b719e2e9df"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:stale\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"aa1a75e2c0527e79b38dd9e7f3370c56521baa5489a297ce62c959b719e2e9df\", \"learn_s\": 20.07, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "action:stale", "fault_json": {"cells": 1, "dose": "one", "fault": "action:stale", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "action:stale", "learn_s": 20.93, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "fd625f6eecbba9d9efaa670aabc740842a78d2258794a4b5b23a1986f841a46c"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:stale\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"fd625f6eecbba9d9efaa670aabc740842a78d2258794a4b5b23a1986f841a46c\", \"learn_s\": 20.93, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "action:stale", "fault_json": {"cells": 1, "dose": "one", "fault": "action:stale", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "action:stale", "learn_s": 20.611, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "d00464b8c9908106cf3634b2563ba0834a9a6b2e0979067ef12c0a57ac166a7a"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:stale\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"d00464b8c9908106cf3634b2563ba0834a9a6b2e0979067ef12c0a57ac166a7a\", \"learn_s\": 20.611, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 976 cells changed", "dose": "0.01", "env": "pendulum", "fault": "action:swap", "fault_json": {"cells": 976, "dose": "0.01", "fault": "action:swap", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "action:swap", "learn_s": 20.377, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "e5ad4cabb6cfec4d9794863d9d373482591b0bf26aff2ac081d69cccb49b6c61"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:swap\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"e5ad4cabb6cfec4d9794863d9d373482591b0bf26aff2ac081d69cccb49b6c61\", \"learn_s\": 20.377, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 979 cells changed", "dose": "0.01", "env": "pendulum", "fault": "action:swap", "fault_json": {"cells": 979, "dose": "0.01", "fault": "action:swap", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "action:swap", "learn_s": 20.444, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "27dd148af798ee12689b46b27433eb1e7b6aeef555ce3fa458fec499142b8c45"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:swap\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"27dd148af798ee12689b46b27433eb1e7b6aeef555ce3fa458fec499142b8c45\", \"learn_s\": 20.444, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 987 cells changed", "dose": "0.01", "env": "pendulum", "fault": "action:swap", "fault_json": {"cells": 987, "dose": "0.01", "fault": "action:swap", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "action:swap", "learn_s": 20.882, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "a87eaf38a3569159d7a3567af79cd6016f48abe65bdcec7eea8a58a388083566"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:swap\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"a87eaf38a3569159d7a3567af79cd6016f48abe65bdcec7eea8a58a388083566\", \"learn_s\": 20.882, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 85056 cells changed", "dose": "1.0", "env": "pendulum", "fault": "action:swap", "fault_json": {"cells": 85056, "dose": "1.0", "fault": "action:swap", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "action:swap", "learn_s": 20.667, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "889766d5f40475c64d20872fbbb4f75878de477b4f8ace87a6e4b8e3739ca7ff"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:swap\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"889766d5f40475c64d20872fbbb4f75878de477b4f8ace87a6e4b8e3739ca7ff\", \"learn_s\": 20.667, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 84269 cells changed", "dose": "1.0", "env": "pendulum", "fault": "action:swap", "fault_json": {"cells": 84269, "dose": "1.0", "fault": "action:swap", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "action:swap", "learn_s": 20.254, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "fe95f321add54abfd8136bf8d806db1ca28810775f43ce6dd5d797c626df4527"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:swap\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"fe95f321add54abfd8136bf8d806db1ca28810775f43ce6dd5d797c626df4527\", \"learn_s\": 20.254, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 82169 cells changed", "dose": "1.0", "env": "pendulum", "fault": "action:swap", "fault_json": {"cells": 82169, "dose": "1.0", "fault": "action:swap", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "action:swap", "learn_s": 20.885, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "93086fa02b1a5b436c8721f57926a53bc66eebf3a2bc7aa3443220701d2d41ac"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:swap\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"93086fa02b1a5b436c8721f57926a53bc66eebf3a2bc7aa3443220701d2d41ac\", \"learn_s\": 20.885, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "action:swap", "fault_json": {"cells": 1, "dose": "one", "fault": "action:swap", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "action:swap", "learn_s": 20.636, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "9b3b2cd817cf4966e3248067ba7b8472acd8bf433ca00c631cfaf51748a2a57e"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:swap\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"9b3b2cd817cf4966e3248067ba7b8472acd8bf433ca00c631cfaf51748a2a57e\", \"learn_s\": 20.636, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "action:swap", "fault_json": {"cells": 1, "dose": "one", "fault": "action:swap", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "action:swap", "learn_s": 19.998, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "c52402263b502f74ca980357deeccf55df10545ca76978f20249b588ee7140d5"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:swap\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"c52402263b502f74ca980357deeccf55df10545ca76978f20249b588ee7140d5\", \"learn_s\": 19.998, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "action:swap", "fault_json": {"cells": 1, "dose": "one", "fault": "action:swap", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "action:swap", "learn_s": 20.662, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "7a44221a59d68ea5bcf9070835adc80b5b7ae9012541f9d39238e57ec8cd1d69"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:swap\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"7a44221a59d68ea5bcf9070835adc80b5b7ae9012541f9d39238e57ec8cd1d69\", \"learn_s\": 20.662, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "action:zero", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "action:zero", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "action:zero", "learn_s": 20.697, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "ce2f2d84f1fb7db785e449247338b21ed0b0f200bfe340d78f04728a69b8db4c"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:zero\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"ce2f2d84f1fb7db785e449247338b21ed0b0f200bfe340d78f04728a69b8db4c\", \"learn_s\": 20.697, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "action:zero", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "action:zero", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "action:zero", "learn_s": 20.584, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "414ad5c56fdd4998416013e4ce332491cb19f067c86fc0001b13170f2dc38e1d"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:zero\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"414ad5c56fdd4998416013e4ce332491cb19f067c86fc0001b13170f2dc38e1d\", \"learn_s\": 20.584, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "action:zero", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "action:zero", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "action:zero", "learn_s": 20.637, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "32a19fe79ecfa6ff2cc93f65444f9382cf50395bac69dff0aaec628d867cb048"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:zero\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"32a19fe79ecfa6ff2cc93f65444f9382cf50395bac69dff0aaec628d867cb048\", \"learn_s\": 20.637, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102400 cells changed", "dose": "1.0", "env": "pendulum", "fault": "action:zero", "fault_json": {"cells": 102400, "dose": "1.0", "fault": "action:zero", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "action:zero", "learn_s": 21.278, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "fc69c04c872f8e85c9e67e576bfaa45a3bef579b0ab4823a3b23c0366b9e5d9c"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:zero\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"fc69c04c872f8e85c9e67e576bfaa45a3bef579b0ab4823a3b23c0366b9e5d9c\", \"learn_s\": 21.278, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102400 cells changed", "dose": "1.0", "env": "pendulum", "fault": "action:zero", "fault_json": {"cells": 102400, "dose": "1.0", "fault": "action:zero", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "action:zero", "learn_s": 20.094, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "b2feb45b80e90d9c951ff87181a5b74b8e79b3c6c5ea9ff226ed71f43c195f5f"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:zero\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"b2feb45b80e90d9c951ff87181a5b74b8e79b3c6c5ea9ff226ed71f43c195f5f\", \"learn_s\": 20.094, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102400 cells changed", "dose": "1.0", "env": "pendulum", "fault": "action:zero", "fault_json": {"cells": 102400, "dose": "1.0", "fault": "action:zero", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "action:zero", "learn_s": 20.496, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "9fd2c154ea0b92aa6ca9477d4d6e3bfad96835450aa3bb046c81558cf3a51d37"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:zero\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"9fd2c154ea0b92aa6ca9477d4d6e3bfad96835450aa3bb046c81558cf3a51d37\", \"learn_s\": 20.496, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "action:zero", "fault_json": {"cells": 1, "dose": "one", "fault": "action:zero", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "action:zero", "learn_s": 20.93, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "f4f801a958cb0c7cb2ba354490de040cff162302e1cfa700053508b1ce1ff2f1"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:zero\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"f4f801a958cb0c7cb2ba354490de040cff162302e1cfa700053508b1ce1ff2f1\", \"learn_s\": 20.93, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "action:zero", "fault_json": {"cells": 1, "dose": "one", "fault": "action:zero", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "action:zero", "learn_s": 19.991, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "476aadb0c510f70c285e3ec41aa491c9dabb5f3b59f0bb1183f16ff282f05b6b"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:zero\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"476aadb0c510f70c285e3ec41aa491c9dabb5f3b59f0bb1183f16ff282f05b6b\", \"learn_s\": 19.991, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "action:zero", "fault_json": {"cells": 1, "dose": "one", "fault": "action:zero", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "action:zero", "learn_s": 20.015, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "2d5728a96abd3c67f02d5079856a04da02e1bdfe5ce15082f8a1fefb65caf9f7"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"action:zero\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"2d5728a96abd3c67f02d5079856a04da02e1bdfe5ce15082f8a1fefb65caf9f7\", \"learn_s\": 20.015, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pendulum", "fault": "delay-1ms", "fault_json": {"cells": 0, "dose": "1.0", "fault": "delay-1ms", "first": null, "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "delay-1ms", "learn_s": 30.331, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "ec5b8226b227f3fa58bd771b411e3673b751ec2c062b010cf0dcef60baed42bc"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"delay-1ms\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"ec5b8226b227f3fa58bd771b411e3673b751ec2c062b010cf0dcef60baed42bc\", \"learn_s\": 30.331, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pendulum", "fault": "delay-1ms", "fault_json": {"cells": 0, "dose": "1.0", "fault": "delay-1ms", "first": null, "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "delay-1ms", "learn_s": 29.73, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "062e92e3bab334bb20d04f963612273166bef926f9edb017a624b133313733d6"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"delay-1ms\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"062e92e3bab334bb20d04f963612273166bef926f9edb017a624b133313733d6\", \"learn_s\": 29.73, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pendulum", "fault": "delay-1ms", "fault_json": {"cells": 0, "dose": "1.0", "fault": "delay-1ms", "first": null, "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "delay-1ms", "learn_s": 29.664, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "3a8d968f19e2a8b5dc01540e41c4a64c02cb7a8c99ccdedf4a016008cf8bcd41"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"delay-1ms\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"3a8d968f19e2a8b5dc01540e41c4a64c02cb7a8c99ccdedf4a016008cf8bcd41\", \"learn_s\": 29.664, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 9 cells changed", "dose": "0.01", "env": "pendulum", "fault": "final-obs:f16", "fault_json": {"cells": 9, "dose": "0.01", "fault": "final-obs:f16", "first": [199, 12], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "final-obs:f16", "learn_s": 20.543, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "8b050884e7a7cbccffc3be5ae3a32937bcae1e3d6685e1d68dff584cce28b796"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:f16\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"8b050884e7a7cbccffc3be5ae3a32937bcae1e3d6685e1d68dff584cce28b796\", \"learn_s\": 20.543, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 9 cells changed", "dose": "0.01", "env": "pendulum", "fault": "final-obs:f16", "fault_json": {"cells": 9, "dose": "0.01", "fault": "final-obs:f16", "first": [199, 12], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "final-obs:f16", "learn_s": 20.45, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "d1fea8457f157db62f89e622b7cc02666b053da329f4e749812c75bc23b7da85"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:f16\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"d1fea8457f157db62f89e622b7cc02666b053da329f4e749812c75bc23b7da85\", \"learn_s\": 20.45, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 9 cells changed", "dose": "0.01", "env": "pendulum", "fault": "final-obs:f16", "fault_json": {"cells": 9, "dose": "0.01", "fault": "final-obs:f16", "first": [199, 12], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "final-obs:f16", "learn_s": 20.755, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "8d4f5d81057c0a22f31ffd59f4a81791d32f980807bb2f8759c8ae53addec1e6"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:f16\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"8d4f5d81057c0a22f31ffd59f4a81791d32f980807bb2f8759c8ae53addec1e6\", \"learn_s\": 20.755, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 512 cells changed", "dose": "1.0", "env": "pendulum", "fault": "final-obs:f16", "fault_json": {"cells": 512, "dose": "1.0", "fault": "final-obs:f16", "first": [199, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "final-obs:f16", "learn_s": 20.453, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "3aaf60a0ae8b9f1e0fa6f8e5d50923a21aa371468fd0d3a192f402cee58ad1bb"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:f16\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"3aaf60a0ae8b9f1e0fa6f8e5d50923a21aa371468fd0d3a192f402cee58ad1bb\", \"learn_s\": 20.453, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 512 cells changed", "dose": "1.0", "env": "pendulum", "fault": "final-obs:f16", "fault_json": {"cells": 512, "dose": "1.0", "fault": "final-obs:f16", "first": [199, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "final-obs:f16", "learn_s": 20.398, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "209d2f10fce87e29e406d667d582dc18d849e3838afcdba1efd90504dd609405"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:f16\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"209d2f10fce87e29e406d667d582dc18d849e3838afcdba1efd90504dd609405\", \"learn_s\": 20.398, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 512 cells changed", "dose": "1.0", "env": "pendulum", "fault": "final-obs:f16", "fault_json": {"cells": 512, "dose": "1.0", "fault": "final-obs:f16", "first": [199, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "final-obs:f16", "learn_s": 20.383, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "3b34c6f27670f8c084c869f3cc09b782d1bce50d243dbb16c6d34d023ffa9bdc"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:f16\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"3b34c6f27670f8c084c869f3cc09b782d1bce50d243dbb16c6d34d023ffa9bdc\", \"learn_s\": 20.383, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "final-obs:f16", "fault_json": {"cells": 1, "dose": "one", "fault": "final-obs:f16", "first": [3399, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "final-obs:f16", "learn_s": 20.469, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "bf6e41a3f0ceb0c193ecb992636b3726b0daec67ee5c57a746f5abd9ec0d131c"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:f16\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"bf6e41a3f0ceb0c193ecb992636b3726b0daec67ee5c57a746f5abd9ec0d131c\", \"learn_s\": 20.469, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "final-obs:f16", "fault_json": {"cells": 1, "dose": "one", "fault": "final-obs:f16", "first": [3399, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "final-obs:f16", "learn_s": 20.557, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "18d8ddf9b6becdbaf078363e570d09fa5dc95233cf74fe779a21f030d3240956"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:f16\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"18d8ddf9b6becdbaf078363e570d09fa5dc95233cf74fe779a21f030d3240956\", \"learn_s\": 20.557, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "final-obs:f16", "fault_json": {"cells": 1, "dose": "one", "fault": "final-obs:f16", "first": [3399, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "final-obs:f16", "learn_s": 20.857, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "ab9393885ec9665cc9b1747f383fef439ff097758a4267e023d8481d4c7c6f14"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:f16\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"ab9393885ec9665cc9b1747f383fef439ff097758a4267e023d8481d4c7c6f14\", \"learn_s\": 20.857, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 9 cells changed", "dose": "0.01", "env": "pendulum", "fault": "final-obs:stale", "fault_json": {"cells": 9, "dose": "0.01", "fault": "final-obs:stale", "first": [199, 12], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "final-obs:stale", "learn_s": 20.629, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "a059213f9a51983d3726ea447137bed2a6bf9519f2ea1f917f9c243df752ad10"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:stale\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"a059213f9a51983d3726ea447137bed2a6bf9519f2ea1f917f9c243df752ad10\", \"learn_s\": 20.629, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 9 cells changed", "dose": "0.01", "env": "pendulum", "fault": "final-obs:stale", "fault_json": {"cells": 9, "dose": "0.01", "fault": "final-obs:stale", "first": [199, 12], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "final-obs:stale", "learn_s": 20.207, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "f99f790f415b77551540202871b902ec97f60157738211160c59263dcd838dba"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:stale\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"f99f790f415b77551540202871b902ec97f60157738211160c59263dcd838dba\", \"learn_s\": 20.207, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 9 cells changed", "dose": "0.01", "env": "pendulum", "fault": "final-obs:stale", "fault_json": {"cells": 9, "dose": "0.01", "fault": "final-obs:stale", "first": [199, 12], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "final-obs:stale", "learn_s": 20.474, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "e3e423de26c09fa86cb191c7da7b7b20ae5f4b3862e7da93671e0b5559642d90"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:stale\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"e3e423de26c09fa86cb191c7da7b7b20ae5f4b3862e7da93671e0b5559642d90\", \"learn_s\": 20.474, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 512 cells changed", "dose": "1.0", "env": "pendulum", "fault": "final-obs:stale", "fault_json": {"cells": 512, "dose": "1.0", "fault": "final-obs:stale", "first": [199, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "final-obs:stale", "learn_s": 20.654, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "114f86a008c9ada8bbd475c88959bc55e9cc87afec3e325543a0035522994bcc"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:stale\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"114f86a008c9ada8bbd475c88959bc55e9cc87afec3e325543a0035522994bcc\", \"learn_s\": 20.654, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 512 cells changed", "dose": "1.0", "env": "pendulum", "fault": "final-obs:stale", "fault_json": {"cells": 512, "dose": "1.0", "fault": "final-obs:stale", "first": [199, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "final-obs:stale", "learn_s": 20.436, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "2a99cc39f6694e15dd94f69256e1dc6f9e7d9f0feb13ee59c6c9a9511a5bae0f"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:stale\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"2a99cc39f6694e15dd94f69256e1dc6f9e7d9f0feb13ee59c6c9a9511a5bae0f\", \"learn_s\": 20.436, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 512 cells changed", "dose": "1.0", "env": "pendulum", "fault": "final-obs:stale", "fault_json": {"cells": 512, "dose": "1.0", "fault": "final-obs:stale", "first": [199, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "final-obs:stale", "learn_s": 21.143, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "64ddd2f4a3ffa875a359e39d3990f903dac65c27b59c77974f8d923508d12784"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:stale\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"64ddd2f4a3ffa875a359e39d3990f903dac65c27b59c77974f8d923508d12784\", \"learn_s\": 21.143, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "final-obs:stale", "fault_json": {"cells": 1, "dose": "one", "fault": "final-obs:stale", "first": [3399, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "final-obs:stale", "learn_s": 20.484, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "2cd3a46ffbc36bc948331f6c31cc78c6f67e47bc7073ce5ea6790f0a2f9797f4"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:stale\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"2cd3a46ffbc36bc948331f6c31cc78c6f67e47bc7073ce5ea6790f0a2f9797f4\", \"learn_s\": 20.484, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "final-obs:stale", "fault_json": {"cells": 1, "dose": "one", "fault": "final-obs:stale", "first": [3399, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "final-obs:stale", "learn_s": 20.497, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "3d2b49b0fc04b73703aefec2ffcb2cc15e2477d73afa9a2892caa6b57579f63a"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:stale\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"3d2b49b0fc04b73703aefec2ffcb2cc15e2477d73afa9a2892caa6b57579f63a\", \"learn_s\": 20.497, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "final-obs:stale", "fault_json": {"cells": 1, "dose": "one", "fault": "final-obs:stale", "first": [3399, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "final-obs:stale", "learn_s": 20.265, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "9080a4bff5c8e9a56c7d052d0cf1eae523162715bbdc4b453da3f6cf0e8f43a0"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:stale\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"9080a4bff5c8e9a56c7d052d0cf1eae523162715bbdc4b453da3f6cf0e8f43a0\", \"learn_s\": 20.265, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 9 cells changed", "dose": "0.01", "env": "pendulum", "fault": "final-obs:swap", "fault_json": {"cells": 9, "dose": "0.01", "fault": "final-obs:swap", "first": [199, 12], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "final-obs:swap", "learn_s": 20.595, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "5bd0a6b2253befb36074287448ff38d62cb92dfc604818d178f3e0c1a184386e"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:swap\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"5bd0a6b2253befb36074287448ff38d62cb92dfc604818d178f3e0c1a184386e\", \"learn_s\": 20.595, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 9 cells changed", "dose": "0.01", "env": "pendulum", "fault": "final-obs:swap", "fault_json": {"cells": 9, "dose": "0.01", "fault": "final-obs:swap", "first": [199, 12], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "final-obs:swap", "learn_s": 20.615, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "c97adf0d51eb0b2ae9e308f40d6d0cf7bdd5ed60e880dc21127f4c36f498d51b"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:swap\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"c97adf0d51eb0b2ae9e308f40d6d0cf7bdd5ed60e880dc21127f4c36f498d51b\", \"learn_s\": 20.615, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 9 cells changed", "dose": "0.01", "env": "pendulum", "fault": "final-obs:swap", "fault_json": {"cells": 9, "dose": "0.01", "fault": "final-obs:swap", "first": [199, 12], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "final-obs:swap", "learn_s": 20.584, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "56c13906e0339e42240176691f45495f3157d23fb5ec51ae69e6af43346107c0"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:swap\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"56c13906e0339e42240176691f45495f3157d23fb5ec51ae69e6af43346107c0\", \"learn_s\": 20.584, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 512 cells changed", "dose": "1.0", "env": "pendulum", "fault": "final-obs:swap", "fault_json": {"cells": 512, "dose": "1.0", "fault": "final-obs:swap", "first": [199, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "final-obs:swap", "learn_s": 20.781, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "3f8956ed04bbcdf4dd66a99be02377c128b2a61abfc5ce812abdd1b67efe6770"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:swap\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"3f8956ed04bbcdf4dd66a99be02377c128b2a61abfc5ce812abdd1b67efe6770\", \"learn_s\": 20.781, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 512 cells changed", "dose": "1.0", "env": "pendulum", "fault": "final-obs:swap", "fault_json": {"cells": 512, "dose": "1.0", "fault": "final-obs:swap", "first": [199, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "final-obs:swap", "learn_s": 20.556, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "c81ec51ab9a779c34c7a263d58ce594d31670b7e5df683b02852b94350ff4665"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:swap\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"c81ec51ab9a779c34c7a263d58ce594d31670b7e5df683b02852b94350ff4665\", \"learn_s\": 20.556, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 512 cells changed", "dose": "1.0", "env": "pendulum", "fault": "final-obs:swap", "fault_json": {"cells": 512, "dose": "1.0", "fault": "final-obs:swap", "first": [199, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "final-obs:swap", "learn_s": 19.876, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "1b6b79fdb5aff464d1bac921258e333eac7360ba93f31e634b09ca6ac6652ddd"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:swap\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"1b6b79fdb5aff464d1bac921258e333eac7360ba93f31e634b09ca6ac6652ddd\", \"learn_s\": 19.876, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "final-obs:swap", "fault_json": {"cells": 1, "dose": "one", "fault": "final-obs:swap", "first": [3399, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "final-obs:swap", "learn_s": 20.696, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "4e8492f728a2071c925c7cd81501a2a2c729c9be743fbedb6a91a70aa80d6644"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:swap\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"4e8492f728a2071c925c7cd81501a2a2c729c9be743fbedb6a91a70aa80d6644\", \"learn_s\": 20.696, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "final-obs:swap", "fault_json": {"cells": 1, "dose": "one", "fault": "final-obs:swap", "first": [3399, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "final-obs:swap", "learn_s": 20.874, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "a85f2e226bb75bda7066bb7416b78c9c0a1b01a8f27e0fd0d03366af8d5013cb"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:swap\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"a85f2e226bb75bda7066bb7416b78c9c0a1b01a8f27e0fd0d03366af8d5013cb\", \"learn_s\": 20.874, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "final-obs:swap", "fault_json": {"cells": 1, "dose": "one", "fault": "final-obs:swap", "first": [3399, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "final-obs:swap", "learn_s": 20.596, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "8f41be4c2c30e0eca95d4872d6595fed1a326a230426151ad07343d2603dbef2"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:swap\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"8f41be4c2c30e0eca95d4872d6595fed1a326a230426151ad07343d2603dbef2\", \"learn_s\": 20.596, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 9 cells changed", "dose": "0.01", "env": "pendulum", "fault": "final-obs:zero", "fault_json": {"cells": 9, "dose": "0.01", "fault": "final-obs:zero", "first": [199, 12], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "final-obs:zero", "learn_s": 20.562, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "010adf8755a199bbfac74753c48f4b8d87ed6e55dab05f8cf37a4b4ebedb19eb"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:zero\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"010adf8755a199bbfac74753c48f4b8d87ed6e55dab05f8cf37a4b4ebedb19eb\", \"learn_s\": 20.562, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 9 cells changed", "dose": "0.01", "env": "pendulum", "fault": "final-obs:zero", "fault_json": {"cells": 9, "dose": "0.01", "fault": "final-obs:zero", "first": [199, 12], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "final-obs:zero", "learn_s": 20.612, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "fcdec6dae576622ac43a4c713e1212a9c5534c718751ebeee2a0eec38f36e7ca"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:zero\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"fcdec6dae576622ac43a4c713e1212a9c5534c718751ebeee2a0eec38f36e7ca\", \"learn_s\": 20.612, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 9 cells changed", "dose": "0.01", "env": "pendulum", "fault": "final-obs:zero", "fault_json": {"cells": 9, "dose": "0.01", "fault": "final-obs:zero", "first": [199, 12], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "final-obs:zero", "learn_s": 19.869, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "4e34a3288d28eb0360c5d2bba33569949249ffe6799ead1eef30bda7bbdcb97e"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:zero\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"4e34a3288d28eb0360c5d2bba33569949249ffe6799ead1eef30bda7bbdcb97e\", \"learn_s\": 19.869, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 512 cells changed", "dose": "1.0", "env": "pendulum", "fault": "final-obs:zero", "fault_json": {"cells": 512, "dose": "1.0", "fault": "final-obs:zero", "first": [199, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "final-obs:zero", "learn_s": 20.323, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "efd619dccba3a2882efdb949b98cb67f586bef6ce3ed7d6b4518bc5864d274fa"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:zero\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"efd619dccba3a2882efdb949b98cb67f586bef6ce3ed7d6b4518bc5864d274fa\", \"learn_s\": 20.323, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 512 cells changed", "dose": "1.0", "env": "pendulum", "fault": "final-obs:zero", "fault_json": {"cells": 512, "dose": "1.0", "fault": "final-obs:zero", "first": [199, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "final-obs:zero", "learn_s": 20.377, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "b56b40aeb286b0f57274d53eb1cb0c93771ac0a82c03d6e3780d61724db7a614"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:zero\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"b56b40aeb286b0f57274d53eb1cb0c93771ac0a82c03d6e3780d61724db7a614\", \"learn_s\": 20.377, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 512 cells changed", "dose": "1.0", "env": "pendulum", "fault": "final-obs:zero", "fault_json": {"cells": 512, "dose": "1.0", "fault": "final-obs:zero", "first": [199, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "final-obs:zero", "learn_s": 20.818, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "226ab78061bdfa60b64a33cd37ad23bc5978a14207bec12862999debdbdf5729"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:zero\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"226ab78061bdfa60b64a33cd37ad23bc5978a14207bec12862999debdbdf5729\", \"learn_s\": 20.818, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "final-obs:zero", "fault_json": {"cells": 1, "dose": "one", "fault": "final-obs:zero", "first": [3399, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "final-obs:zero", "learn_s": 20.04, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "bf033c564b5f5a8908143ef2a613f874461337e9f389069d7858995a94f199b4"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:zero\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"bf033c564b5f5a8908143ef2a613f874461337e9f389069d7858995a94f199b4\", \"learn_s\": 20.04, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "final-obs:zero", "fault_json": {"cells": 1, "dose": "one", "fault": "final-obs:zero", "first": [3399, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "final-obs:zero", "learn_s": 20.413, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "d031431893d9def8a1744e839b4354b76f92caa2ad817ec5bd3efb05367e4b0d"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:zero\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"d031431893d9def8a1744e839b4354b76f92caa2ad817ec5bd3efb05367e4b0d\", \"learn_s\": 20.413, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "final-obs:zero", "fault_json": {"cells": 1, "dose": "one", "fault": "final-obs:zero", "first": [3399, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "final-obs:zero", "learn_s": 20.695, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "81a24d76a1ef284c301a4b76df3139b72aad27e8028af0ce5286cdc32ccdba39"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"final-obs:zero\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"81a24d76a1ef284c301a4b76df3139b72aad27e8028af0ce5286cdc32ccdba39\", \"learn_s\": 20.695, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "0.01", "env": "pendulum", "fault": "log:drop-first", "fault_json": {"cells": 0, "dose": "0.01", "fault": "none", "first": null, "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "log:drop-first", "learn_s": 20.408, "log_cells": 2, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "ec5b8226b227f3fa58bd771b411e3673b751ec2c062b010cf0dcef60baed42bc"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"log:drop-first\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"ec5b8226b227f3fa58bd771b411e3673b751ec2c062b010cf0dcef60baed42bc\", \"learn_s\": 20.408, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"log_cells\": 2, \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "0.01", "env": "pendulum", "fault": "log:drop-first", "fault_json": {"cells": 0, "dose": "0.01", "fault": "none", "first": null, "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "log:drop-first", "learn_s": 20.136, "log_cells": 2, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "062e92e3bab334bb20d04f963612273166bef926f9edb017a624b133313733d6"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"log:drop-first\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"062e92e3bab334bb20d04f963612273166bef926f9edb017a624b133313733d6\", \"learn_s\": 20.136, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"log_cells\": 2, \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "0.01", "env": "pendulum", "fault": "log:drop-first", "fault_json": {"cells": 0, "dose": "0.01", "fault": "none", "first": null, "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "log:drop-first", "learn_s": 18.95, "log_cells": 2, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "3a8d968f19e2a8b5dc01540e41c4a64c02cb7a8c99ccdedf4a016008cf8bcd41"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"log:drop-first\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"3a8d968f19e2a8b5dc01540e41c4a64c02cb7a8c99ccdedf4a016008cf8bcd41\", \"learn_s\": 18.95, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"log_cells\": 2, \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pendulum", "fault": "log:drop-first", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "log:drop-first", "learn_s": 20.716, "log_cells": 512, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "ec5b8226b227f3fa58bd771b411e3673b751ec2c062b010cf0dcef60baed42bc"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"log:drop-first\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"ec5b8226b227f3fa58bd771b411e3673b751ec2c062b010cf0dcef60baed42bc\", \"learn_s\": 20.716, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"log_cells\": 512, \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pendulum", "fault": "log:drop-first", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "log:drop-first", "learn_s": 20.596, "log_cells": 512, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "062e92e3bab334bb20d04f963612273166bef926f9edb017a624b133313733d6"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"log:drop-first\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"062e92e3bab334bb20d04f963612273166bef926f9edb017a624b133313733d6\", \"learn_s\": 20.596, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"log_cells\": 512, \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pendulum", "fault": "log:drop-first", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "log:drop-first", "learn_s": 18.828, "log_cells": 512, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "3a8d968f19e2a8b5dc01540e41c4a64c02cb7a8c99ccdedf4a016008cf8bcd41"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"log:drop-first\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"3a8d968f19e2a8b5dc01540e41c4a64c02cb7a8c99ccdedf4a016008cf8bcd41\", \"learn_s\": 18.828, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"log_cells\": 512, \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "one", "env": "pendulum", "fault": "log:drop-first", "fault_json": {"cells": 0, "dose": "one", "fault": "none", "first": null, "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "log:drop-first", "learn_s": 19.794, "log_cells": 1, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "ec5b8226b227f3fa58bd771b411e3673b751ec2c062b010cf0dcef60baed42bc"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"log:drop-first\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"ec5b8226b227f3fa58bd771b411e3673b751ec2c062b010cf0dcef60baed42bc\", \"learn_s\": 19.794, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"log_cells\": 1, \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "one", "env": "pendulum", "fault": "log:drop-first", "fault_json": {"cells": 0, "dose": "one", "fault": "none", "first": null, "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "log:drop-first", "learn_s": 19.859, "log_cells": 1, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "062e92e3bab334bb20d04f963612273166bef926f9edb017a624b133313733d6"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"log:drop-first\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"062e92e3bab334bb20d04f963612273166bef926f9edb017a624b133313733d6\", \"learn_s\": 19.859, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"log_cells\": 1, \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "one", "env": "pendulum", "fault": "log:drop-first", "fault_json": {"cells": 0, "dose": "one", "fault": "none", "first": null, "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "log:drop-first", "learn_s": 19.13, "log_cells": 1, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "3a8d968f19e2a8b5dc01540e41c4a64c02cb7a8c99ccdedf4a016008cf8bcd41"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"log:drop-first\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"3a8d968f19e2a8b5dc01540e41c4a64c02cb7a8c99ccdedf4a016008cf8bcd41\", \"learn_s\": 19.13, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"log_cells\": 1, \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "0.01", "env": "pendulum", "fault": "log:short", "fault_json": {"cells": 0, "dose": "0.01", "fault": "none", "first": null, "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "log:short", "learn_s": 20.326, "log_cells": 2, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "ec5b8226b227f3fa58bd771b411e3673b751ec2c062b010cf0dcef60baed42bc"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"log:short\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"ec5b8226b227f3fa58bd771b411e3673b751ec2c062b010cf0dcef60baed42bc\", \"learn_s\": 20.326, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"log_cells\": 2, \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "0.01", "env": "pendulum", "fault": "log:short", "fault_json": {"cells": 0, "dose": "0.01", "fault": "none", "first": null, "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "log:short", "learn_s": 20.347, "log_cells": 2, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "062e92e3bab334bb20d04f963612273166bef926f9edb017a624b133313733d6"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"log:short\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"062e92e3bab334bb20d04f963612273166bef926f9edb017a624b133313733d6\", \"learn_s\": 20.347, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"log_cells\": 2, \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "0.01", "env": "pendulum", "fault": "log:short", "fault_json": {"cells": 0, "dose": "0.01", "fault": "none", "first": null, "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "log:short", "learn_s": 18.755, "log_cells": 2, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "3a8d968f19e2a8b5dc01540e41c4a64c02cb7a8c99ccdedf4a016008cf8bcd41"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"log:short\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"3a8d968f19e2a8b5dc01540e41c4a64c02cb7a8c99ccdedf4a016008cf8bcd41\", \"learn_s\": 18.755, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"log_cells\": 2, \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pendulum", "fault": "log:short", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "log:short", "learn_s": 20.245, "log_cells": 512, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "ec5b8226b227f3fa58bd771b411e3673b751ec2c062b010cf0dcef60baed42bc"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"log:short\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"ec5b8226b227f3fa58bd771b411e3673b751ec2c062b010cf0dcef60baed42bc\", \"learn_s\": 20.245, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"log_cells\": 512, \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pendulum", "fault": "log:short", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "log:short", "learn_s": 20.37, "log_cells": 512, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "062e92e3bab334bb20d04f963612273166bef926f9edb017a624b133313733d6"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"log:short\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"062e92e3bab334bb20d04f963612273166bef926f9edb017a624b133313733d6\", \"learn_s\": 20.37, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"log_cells\": 512, \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pendulum", "fault": "log:short", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "log:short", "learn_s": 18.64, "log_cells": 512, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "3a8d968f19e2a8b5dc01540e41c4a64c02cb7a8c99ccdedf4a016008cf8bcd41"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"log:short\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"3a8d968f19e2a8b5dc01540e41c4a64c02cb7a8c99ccdedf4a016008cf8bcd41\", \"learn_s\": 18.64, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"log_cells\": 512, \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "one", "env": "pendulum", "fault": "log:short", "fault_json": {"cells": 0, "dose": "one", "fault": "none", "first": null, "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "log:short", "learn_s": 19.832, "log_cells": 1, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "ec5b8226b227f3fa58bd771b411e3673b751ec2c062b010cf0dcef60baed42bc"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"log:short\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"ec5b8226b227f3fa58bd771b411e3673b751ec2c062b010cf0dcef60baed42bc\", \"learn_s\": 19.832, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"log_cells\": 1, \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "one", "env": "pendulum", "fault": "log:short", "fault_json": {"cells": 0, "dose": "one", "fault": "none", "first": null, "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "log:short", "learn_s": 20.728, "log_cells": 1, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "062e92e3bab334bb20d04f963612273166bef926f9edb017a624b133313733d6"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"log:short\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"062e92e3bab334bb20d04f963612273166bef926f9edb017a624b133313733d6\", \"learn_s\": 20.728, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"log_cells\": 1, \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "one", "env": "pendulum", "fault": "log:short", "fault_json": {"cells": 0, "dose": "one", "fault": "none", "first": null, "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "log:short", "learn_s": 18.654, "log_cells": 1, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "3a8d968f19e2a8b5dc01540e41c4a64c02cb7a8c99ccdedf4a016008cf8bcd41"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"log:short\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"3a8d968f19e2a8b5dc01540e41c4a64c02cb7a8c99ccdedf4a016008cf8bcd41\", \"learn_s\": 18.654, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"log_cells\": 1, \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pendulum", "fault": "none", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "none", "learn_s": 20.86, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "ec5b8226b227f3fa58bd771b411e3673b751ec2c062b010cf0dcef60baed42bc"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"none\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"ec5b8226b227f3fa58bd771b411e3673b751ec2c062b010cf0dcef60baed42bc\", \"learn_s\": 20.86, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pendulum", "fault": "none", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "none", "learn_s": 20.149, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "062e92e3bab334bb20d04f963612273166bef926f9edb017a624b133313733d6"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"none\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"062e92e3bab334bb20d04f963612273166bef926f9edb017a624b133313733d6\", \"learn_s\": 20.149, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pendulum", "fault": "none", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "none", "learn_s": 20.007, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "3a8d968f19e2a8b5dc01540e41c4a64c02cb7a8c99ccdedf4a016008cf8bcd41"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"none\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"3a8d968f19e2a8b5dc01540e41c4a64c02cb7a8c99ccdedf4a016008cf8bcd41\", \"learn_s\": 20.007, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "obs:f16", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "obs:f16", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "obs:f16", "learn_s": 20.594, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "8cdce0a678f699032d28ae88e38af1fea6787a5bb69fb9bf90b55c13863ae41c"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:f16\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"8cdce0a678f699032d28ae88e38af1fea6787a5bb69fb9bf90b55c13863ae41c\", \"learn_s\": 20.594, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "obs:f16", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "obs:f16", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "obs:f16", "learn_s": 20.083, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "9efc34bdde7cca5437aa810fb18f74c510183960c26cee57747d669a79274f78"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:f16\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"9efc34bdde7cca5437aa810fb18f74c510183960c26cee57747d669a79274f78\", \"learn_s\": 20.083, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "obs:f16", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "obs:f16", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "obs:f16", "learn_s": 20.501, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "a291b401fd158855988cbb7a9c72d834533a8a73f0dc6154e4d81b4dc2098c16"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:f16\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"a291b401fd158855988cbb7a9c72d834533a8a73f0dc6154e4d81b4dc2098c16\", \"learn_s\": 20.501, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102416 cells changed", "dose": "1.0", "env": "pendulum", "fault": "obs:f16", "fault_json": {"cells": 102416, "dose": "1.0", "fault": "obs:f16", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "obs:f16", "learn_s": 20.993, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "6bd93edb7230cacb85550b44354f730ce295ba935b79400d7b0a0eee27feb54c"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:f16\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"6bd93edb7230cacb85550b44354f730ce295ba935b79400d7b0a0eee27feb54c\", \"learn_s\": 20.993, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102416 cells changed", "dose": "1.0", "env": "pendulum", "fault": "obs:f16", "fault_json": {"cells": 102416, "dose": "1.0", "fault": "obs:f16", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "obs:f16", "learn_s": 20.721, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "db006462b90e388aa772c051059cc7171b2515366fbfef77513f9c4e8f4fbe1c"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:f16\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"db006462b90e388aa772c051059cc7171b2515366fbfef77513f9c4e8f4fbe1c\", \"learn_s\": 20.721, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102416 cells changed", "dose": "1.0", "env": "pendulum", "fault": "obs:f16", "fault_json": {"cells": 102416, "dose": "1.0", "fault": "obs:f16", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "obs:f16", "learn_s": 20.319, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "0655bd234b5dfbf0a5b9cf81a0f2914b9602f5a5720ab30dedd5315e4da95965"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:f16\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"0655bd234b5dfbf0a5b9cf81a0f2914b9602f5a5720ab30dedd5315e4da95965\", \"learn_s\": 20.319, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "obs:f16", "fault_json": {"cells": 1, "dose": "one", "fault": "obs:f16", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "obs:f16", "learn_s": 20.828, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "d1484e30901ce6447ef4b3af9b91f71627d3cd5bed95d5875e867e70a573b122"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:f16\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"d1484e30901ce6447ef4b3af9b91f71627d3cd5bed95d5875e867e70a573b122\", \"learn_s\": 20.828, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "obs:f16", "fault_json": {"cells": 1, "dose": "one", "fault": "obs:f16", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "obs:f16", "learn_s": 20.613, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "7809451b7987784ca0286a6147c8194e1b02967122892d72e4453a842c160bda"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:f16\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"7809451b7987784ca0286a6147c8194e1b02967122892d72e4453a842c160bda\", \"learn_s\": 20.613, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "obs:f16", "fault_json": {"cells": 1, "dose": "one", "fault": "obs:f16", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "obs:f16", "learn_s": 20.095, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "3026d8dfe37562adf49c1918a69d43e270e3bea0eebe04d358684eb27352837e"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:f16\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"3026d8dfe37562adf49c1918a69d43e270e3bea0eebe04d358684eb27352837e\", \"learn_s\": 20.095, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "obs:stale", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "obs:stale", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "obs:stale", "learn_s": 20.301, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "0cbb329655d41f97f09f93038c0ef0c372deba32c6c1f23772fa17218b68f46e"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:stale\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"0cbb329655d41f97f09f93038c0ef0c372deba32c6c1f23772fa17218b68f46e\", \"learn_s\": 20.301, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "obs:stale", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "obs:stale", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "obs:stale", "learn_s": 20.14, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "2a0550ffa81b09b27d29fd00d09758b7dcdd1d137e29f3340e289fd37971af76"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:stale\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"2a0550ffa81b09b27d29fd00d09758b7dcdd1d137e29f3340e289fd37971af76\", \"learn_s\": 20.14, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "obs:stale", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "obs:stale", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "obs:stale", "learn_s": 20.147, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "08b182787f2be4697b993cbd45953951eaa0e3bf3a48ec2ba0e6da08f2cbcf3c"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:stale\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"08b182787f2be4697b993cbd45953951eaa0e3bf3a48ec2ba0e6da08f2cbcf3c\", \"learn_s\": 20.147, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102400 cells changed", "dose": "1.0", "env": "pendulum", "fault": "obs:stale", "fault_json": {"cells": 102400, "dose": "1.0", "fault": "obs:stale", "first": [1, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "obs:stale", "learn_s": 20.747, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "bd9261b440e317296257afc47eb905aff06e7a23b9e2012e3bb438f3c41711f3"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:stale\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"bd9261b440e317296257afc47eb905aff06e7a23b9e2012e3bb438f3c41711f3\", \"learn_s\": 20.747, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102400 cells changed", "dose": "1.0", "env": "pendulum", "fault": "obs:stale", "fault_json": {"cells": 102400, "dose": "1.0", "fault": "obs:stale", "first": [1, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "obs:stale", "learn_s": 20.544, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "3b8e0f674f787435b2a4a7d5ab9e79c653e9adffd9048cdbf31fa0107f689e78"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:stale\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"3b8e0f674f787435b2a4a7d5ab9e79c653e9adffd9048cdbf31fa0107f689e78\", \"learn_s\": 20.544, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102400 cells changed", "dose": "1.0", "env": "pendulum", "fault": "obs:stale", "fault_json": {"cells": 102400, "dose": "1.0", "fault": "obs:stale", "first": [1, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "obs:stale", "learn_s": 20.333, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "b2634e34a82a6fe4633e391ca6b69368054d5c8393fa92284e9ef7839b2fa451"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:stale\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"b2634e34a82a6fe4633e391ca6b69368054d5c8393fa92284e9ef7839b2fa451\", \"learn_s\": 20.333, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "obs:stale", "fault_json": {"cells": 1, "dose": "one", "fault": "obs:stale", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "obs:stale", "learn_s": 20.704, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "765a1ee00df5050240447605d7053ec11fe47d3b77836d04ea6cfbaacadcbc8e"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:stale\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"765a1ee00df5050240447605d7053ec11fe47d3b77836d04ea6cfbaacadcbc8e\", \"learn_s\": 20.704, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "obs:stale", "fault_json": {"cells": 1, "dose": "one", "fault": "obs:stale", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "obs:stale", "learn_s": 20.751, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "12613a2a86182794ea5eaa7dcaf740766aefd26fbbd6e6e95b72e01596507a6b"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:stale\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"12613a2a86182794ea5eaa7dcaf740766aefd26fbbd6e6e95b72e01596507a6b\", \"learn_s\": 20.751, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "obs:stale", "fault_json": {"cells": 1, "dose": "one", "fault": "obs:stale", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "obs:stale", "learn_s": 21.01, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "978b430d48a030d3ae2f6a499e8265cae75aee7b4614df8558ef74a15072df2c"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:stale\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"978b430d48a030d3ae2f6a499e8265cae75aee7b4614df8558ef74a15072df2c\", \"learn_s\": 21.01, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "obs:swap", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "obs:swap", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "obs:swap", "learn_s": 20.708, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "f6cb32fa21faeae504dffb487b48b1ec6ef4b152b83bb743492dbb729cf8480c"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:swap\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"f6cb32fa21faeae504dffb487b48b1ec6ef4b152b83bb743492dbb729cf8480c\", \"learn_s\": 20.708, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "obs:swap", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "obs:swap", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "obs:swap", "learn_s": 20.105, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "deeb971c43f7d912415db8f046f82afa66044dadbb0c9f422328b40881904a66"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:swap\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"deeb971c43f7d912415db8f046f82afa66044dadbb0c9f422328b40881904a66\", \"learn_s\": 20.105, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "obs:swap", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "obs:swap", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "obs:swap", "learn_s": 20.49, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "407d972936eee1c0dabed26ee7c1c46884e4e7d1b9c59c4b827a5edfd0e0c3de"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:swap\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"407d972936eee1c0dabed26ee7c1c46884e4e7d1b9c59c4b827a5edfd0e0c3de\", \"learn_s\": 20.49, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102416 cells changed", "dose": "1.0", "env": "pendulum", "fault": "obs:swap", "fault_json": {"cells": 102416, "dose": "1.0", "fault": "obs:swap", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "obs:swap", "learn_s": 21.18, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "516c7ce6400c6a3a19deb69d7606e4d8fbe3329ac6dd206fe89c57c0a7e0c50b"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:swap\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"516c7ce6400c6a3a19deb69d7606e4d8fbe3329ac6dd206fe89c57c0a7e0c50b\", \"learn_s\": 21.18, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102416 cells changed", "dose": "1.0", "env": "pendulum", "fault": "obs:swap", "fault_json": {"cells": 102416, "dose": "1.0", "fault": "obs:swap", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "obs:swap", "learn_s": 20.598, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "ee7dcd3570d80af56add4403347418389a149337d4b44ac15370a143f6b39078"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:swap\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"ee7dcd3570d80af56add4403347418389a149337d4b44ac15370a143f6b39078\", \"learn_s\": 20.598, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102416 cells changed", "dose": "1.0", "env": "pendulum", "fault": "obs:swap", "fault_json": {"cells": 102416, "dose": "1.0", "fault": "obs:swap", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "obs:swap", "learn_s": 20.141, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "220ba53a7e6b7342527d26087b31757ca3ab886a3606f1d6be22a86122d5ddbb"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:swap\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"220ba53a7e6b7342527d26087b31757ca3ab886a3606f1d6be22a86122d5ddbb\", \"learn_s\": 20.141, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "obs:swap", "fault_json": {"cells": 1, "dose": "one", "fault": "obs:swap", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "obs:swap", "learn_s": 20.436, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "3fb58b1697cb788d14af8783f2bcf8a010882fb96265c54ce9e7644798f54b73"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:swap\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"3fb58b1697cb788d14af8783f2bcf8a010882fb96265c54ce9e7644798f54b73\", \"learn_s\": 20.436, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "obs:swap", "fault_json": {"cells": 1, "dose": "one", "fault": "obs:swap", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "obs:swap", "learn_s": 20.335, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "9e1f81cd7cccc69f75c4d4221d193dc9eae536461ddc4cfb48d0035e9316bccb"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:swap\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"9e1f81cd7cccc69f75c4d4221d193dc9eae536461ddc4cfb48d0035e9316bccb\", \"learn_s\": 20.335, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "obs:swap", "fault_json": {"cells": 1, "dose": "one", "fault": "obs:swap", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "obs:swap", "learn_s": 20.166, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "bfb37b1ab2802687916eec1d24e4e9b89191371adb7a86c50fef5c622330b806"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:swap\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"bfb37b1ab2802687916eec1d24e4e9b89191371adb7a86c50fef5c622330b806\", \"learn_s\": 20.166, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "obs:zero", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "obs:zero", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "obs:zero", "learn_s": 20.291, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "ed34c167047802d1b929940038834178b87cc1d3f708a946f1cbac9317cf0c8d"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:zero\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"ed34c167047802d1b929940038834178b87cc1d3f708a946f1cbac9317cf0c8d\", \"learn_s\": 20.291, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "obs:zero", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "obs:zero", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "obs:zero", "learn_s": 20.381, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "3f052f949e2769ddc17e4e4b3e8da3da21499dab05935b06a6831f7855a96856"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:zero\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"3f052f949e2769ddc17e4e4b3e8da3da21499dab05935b06a6831f7855a96856\", \"learn_s\": 20.381, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "obs:zero", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "obs:zero", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "obs:zero", "learn_s": 20.56, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "7b02c343814eb81994e76e8c27de213c691102caf9995c2ed55f33a0975cbcab"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:zero\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"7b02c343814eb81994e76e8c27de213c691102caf9995c2ed55f33a0975cbcab\", \"learn_s\": 20.56, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102416 cells changed", "dose": "1.0", "env": "pendulum", "fault": "obs:zero", "fault_json": {"cells": 102416, "dose": "1.0", "fault": "obs:zero", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "obs:zero", "learn_s": 21.114, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "6f23c4542c383c67954edeb9410c0a47b90810944523ae5caecac59c38b87a9c"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:zero\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"6f23c4542c383c67954edeb9410c0a47b90810944523ae5caecac59c38b87a9c\", \"learn_s\": 21.114, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102416 cells changed", "dose": "1.0", "env": "pendulum", "fault": "obs:zero", "fault_json": {"cells": 102416, "dose": "1.0", "fault": "obs:zero", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "obs:zero", "learn_s": 20.327, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "bfbe320981744a238dd58b3501e7863aff2802d07b24f7936ff2483a72cdd6b8"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:zero\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"bfbe320981744a238dd58b3501e7863aff2802d07b24f7936ff2483a72cdd6b8\", \"learn_s\": 20.327, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102416 cells changed", "dose": "1.0", "env": "pendulum", "fault": "obs:zero", "fault_json": {"cells": 102416, "dose": "1.0", "fault": "obs:zero", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "obs:zero", "learn_s": 20.55, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "e1dbe2264235904c765fe9cadf7f088e3320738b3ee6491ccac49aab9993f90d"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:zero\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"e1dbe2264235904c765fe9cadf7f088e3320738b3ee6491ccac49aab9993f90d\", \"learn_s\": 20.55, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "obs:zero", "fault_json": {"cells": 1, "dose": "one", "fault": "obs:zero", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "obs:zero", "learn_s": 20.411, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "e2f06a8fe71d8aa7df2da2aef28db1400636d7fb372fd1276e27f13eef858364"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:zero\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"e2f06a8fe71d8aa7df2da2aef28db1400636d7fb372fd1276e27f13eef858364\", \"learn_s\": 20.411, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "obs:zero", "fault_json": {"cells": 1, "dose": "one", "fault": "obs:zero", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "obs:zero", "learn_s": 20.368, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "9be2e0574b3de12492ec5083d1be87928bed8236c32f9b53a9d35c2857f51c6b"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:zero\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"9be2e0574b3de12492ec5083d1be87928bed8236c32f9b53a9d35c2857f51c6b\", \"learn_s\": 20.368, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "obs:zero", "fault_json": {"cells": 1, "dose": "one", "fault": "obs:zero", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "obs:zero", "learn_s": 19.845, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "2f7f6acc16ee9d75dd384ab1f39b8d42b3c369fb46610f8829eb31ea968d0530"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"obs:zero\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"2f7f6acc16ee9d75dd384ab1f39b8d42b3c369fb46610f8829eb31ea968d0530\", \"learn_s\": 19.845, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "reward:f16", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "reward:f16", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "reward:f16", "learn_s": 20.716, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "957547eacc352fc84abd671c0746e5d10cfa9ef7cb6d845fa792054af23d2591"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:f16\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"957547eacc352fc84abd671c0746e5d10cfa9ef7cb6d845fa792054af23d2591\", \"learn_s\": 20.716, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "reward:f16", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "reward:f16", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "reward:f16", "learn_s": 20.748, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "ff01fa2aa13eafbf224ed6a223becc97ff5c899f64cf33386c8ca584d1ff40f4"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:f16\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"ff01fa2aa13eafbf224ed6a223becc97ff5c899f64cf33386c8ca584d1ff40f4\", \"learn_s\": 20.748, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "reward:f16", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "reward:f16", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "reward:f16", "learn_s": 20.375, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "1404abe167649fe5ce336c1622911d02e47ab9d5c2d190ed254d604a29ebadab"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:f16\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"1404abe167649fe5ce336c1622911d02e47ab9d5c2d190ed254d604a29ebadab\", \"learn_s\": 20.375, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102385 cells changed", "dose": "1.0", "env": "pendulum", "fault": "reward:f16", "fault_json": {"cells": 102385, "dose": "1.0", "fault": "reward:f16", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "reward:f16", "learn_s": 20.635, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "1d482f2411705675308f3eb7c079976c9169d1525ea2bbe99f5daa9d0cd5cf7c"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:f16\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"1d482f2411705675308f3eb7c079976c9169d1525ea2bbe99f5daa9d0cd5cf7c\", \"learn_s\": 20.635, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102393 cells changed", "dose": "1.0", "env": "pendulum", "fault": "reward:f16", "fault_json": {"cells": 102393, "dose": "1.0", "fault": "reward:f16", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "reward:f16", "learn_s": 21.022, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "add3c07891d96792275f5727b50fd158a7c2358b429c343322bac9ce104516f3"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:f16\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"add3c07891d96792275f5727b50fd158a7c2358b429c343322bac9ce104516f3\", \"learn_s\": 21.022, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102378 cells changed", "dose": "1.0", "env": "pendulum", "fault": "reward:f16", "fault_json": {"cells": 102378, "dose": "1.0", "fault": "reward:f16", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "reward:f16", "learn_s": 20.515, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "c65997706ff6818dac93747664a12ad686358c477d3ae462050eda88c2c3ed57"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:f16\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"c65997706ff6818dac93747664a12ad686358c477d3ae462050eda88c2c3ed57\", \"learn_s\": 20.515, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "reward:f16", "fault_json": {"cells": 1, "dose": "one", "fault": "reward:f16", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "reward:f16", "learn_s": 20.248, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "e95cad4deb7cbb61a29e7517893cc4c71b58f6176055cdd55002f93fd8a81e88"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:f16\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"e95cad4deb7cbb61a29e7517893cc4c71b58f6176055cdd55002f93fd8a81e88\", \"learn_s\": 20.248, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "reward:f16", "fault_json": {"cells": 1, "dose": "one", "fault": "reward:f16", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "reward:f16", "learn_s": 20.382, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "833fe81c6d85bbd8c036aca29efeba2336b38e46b1ef364ab651c7868c3d8652"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:f16\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"833fe81c6d85bbd8c036aca29efeba2336b38e46b1ef364ab651c7868c3d8652\", \"learn_s\": 20.382, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "reward:f16", "fault_json": {"cells": 1, "dose": "one", "fault": "reward:f16", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "reward:f16", "learn_s": 20.475, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "9bbbf32e4f41722bbed75eac366a9aea2174d17520c6b2b406886061d6fb3e87"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:f16\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"9bbbf32e4f41722bbed75eac366a9aea2174d17520c6b2b406886061d6fb3e87\", \"learn_s\": 20.475, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "reward:stale", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "reward:stale", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "reward:stale", "learn_s": 20.43, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "c3ecfd3a78cf68e15f380e1d695933422978cba840c2c8e5425c1a8227cd0de8"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:stale\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"c3ecfd3a78cf68e15f380e1d695933422978cba840c2c8e5425c1a8227cd0de8\", \"learn_s\": 20.43, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "reward:stale", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "reward:stale", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "reward:stale", "learn_s": 20.488, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "3d6114f7fac5d32b803abcbe24e12fb371bdc50c956f92348d25da63b24f951f"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:stale\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"3d6114f7fac5d32b803abcbe24e12fb371bdc50c956f92348d25da63b24f951f\", \"learn_s\": 20.488, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "reward:stale", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "reward:stale", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "reward:stale", "learn_s": 20.337, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "70133a548fd853a5ade0729ba145cddba8b1ffa7c820bbb67d2cdaba2ad31aa0"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:stale\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"70133a548fd853a5ade0729ba145cddba8b1ffa7c820bbb67d2cdaba2ad31aa0\", \"learn_s\": 20.337, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102400 cells changed", "dose": "1.0", "env": "pendulum", "fault": "reward:stale", "fault_json": {"cells": 102400, "dose": "1.0", "fault": "reward:stale", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "reward:stale", "learn_s": 20.331, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "982f942af8968885de881e4971c725f1c43f13848ad6d72d1666f9b030201f55"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:stale\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"982f942af8968885de881e4971c725f1c43f13848ad6d72d1666f9b030201f55\", \"learn_s\": 20.331, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102400 cells changed", "dose": "1.0", "env": "pendulum", "fault": "reward:stale", "fault_json": {"cells": 102400, "dose": "1.0", "fault": "reward:stale", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "reward:stale", "learn_s": 20.407, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "0cddc6e30dc1289993a3d11f11a7717a2c3d7602a346a422f5350dde94db0f96"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:stale\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"0cddc6e30dc1289993a3d11f11a7717a2c3d7602a346a422f5350dde94db0f96\", \"learn_s\": 20.407, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102400 cells changed", "dose": "1.0", "env": "pendulum", "fault": "reward:stale", "fault_json": {"cells": 102400, "dose": "1.0", "fault": "reward:stale", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "reward:stale", "learn_s": 20.712, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "87c6042c1c473ef8bdf9b801c96dd2b6d9e37eba6dbc4de09ed54db63e7779ba"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:stale\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"87c6042c1c473ef8bdf9b801c96dd2b6d9e37eba6dbc4de09ed54db63e7779ba\", \"learn_s\": 20.712, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "reward:stale", "fault_json": {"cells": 1, "dose": "one", "fault": "reward:stale", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "reward:stale", "learn_s": 20.452, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "755acd6f9a46980c62d081a0171b479de4c8a7337c76a5f6b1728cf237339f37"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:stale\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"755acd6f9a46980c62d081a0171b479de4c8a7337c76a5f6b1728cf237339f37\", \"learn_s\": 20.452, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "reward:stale", "fault_json": {"cells": 1, "dose": "one", "fault": "reward:stale", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "reward:stale", "learn_s": 20.636, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "29a4a30e5766255dc543ac4bf7208bb2f2321cc3661b74f37e216bef817ccc98"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:stale\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"29a4a30e5766255dc543ac4bf7208bb2f2321cc3661b74f37e216bef817ccc98\", \"learn_s\": 20.636, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "reward:stale", "fault_json": {"cells": 1, "dose": "one", "fault": "reward:stale", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "reward:stale", "learn_s": 20.283, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "8b0127646bbb04a455dab2e115ccf4fd7eac0e762f1e1f3800ec0cb4be7e1910"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:stale\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"8b0127646bbb04a455dab2e115ccf4fd7eac0e762f1e1f3800ec0cb4be7e1910\", \"learn_s\": 20.283, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "reward:swap", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "reward:swap", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "reward:swap", "learn_s": 20.339, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "c5bef941dec56beb1204a5f65b01a8b42922a0ab5c6d5f75bc66421bce78e37e"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:swap\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"c5bef941dec56beb1204a5f65b01a8b42922a0ab5c6d5f75bc66421bce78e37e\", \"learn_s\": 20.339, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "reward:swap", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "reward:swap", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "reward:swap", "learn_s": 20.943, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "49df93d61a329ff833ef62acd4e8c0cc5a6678a7165437c8dbbe2a2203f6d6a9"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:swap\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"49df93d61a329ff833ef62acd4e8c0cc5a6678a7165437c8dbbe2a2203f6d6a9\", \"learn_s\": 20.943, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "reward:swap", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "reward:swap", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "reward:swap", "learn_s": 19.842, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "1f2b8986f90ac602d23bf087b001ff26f6f80792a7e0e47a2635ee43f756f9d4"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:swap\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"1f2b8986f90ac602d23bf087b001ff26f6f80792a7e0e47a2635ee43f756f9d4\", \"learn_s\": 19.842, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102400 cells changed", "dose": "1.0", "env": "pendulum", "fault": "reward:swap", "fault_json": {"cells": 102400, "dose": "1.0", "fault": "reward:swap", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "reward:swap", "learn_s": 20.717, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "f15ee7affa35b9ba30703591ca7e8f1f69074453c3a1e705bfb52bea540f24b7"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:swap\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"f15ee7affa35b9ba30703591ca7e8f1f69074453c3a1e705bfb52bea540f24b7\", \"learn_s\": 20.717, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102400 cells changed", "dose": "1.0", "env": "pendulum", "fault": "reward:swap", "fault_json": {"cells": 102400, "dose": "1.0", "fault": "reward:swap", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "reward:swap", "learn_s": 20.626, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "333cd4cdfc6e46fd6a2ee7c62b38c56c9a701f49570309afe75c073603f9aed1"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:swap\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"333cd4cdfc6e46fd6a2ee7c62b38c56c9a701f49570309afe75c073603f9aed1\", \"learn_s\": 20.626, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102400 cells changed", "dose": "1.0", "env": "pendulum", "fault": "reward:swap", "fault_json": {"cells": 102400, "dose": "1.0", "fault": "reward:swap", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "reward:swap", "learn_s": 20.831, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "5a1c7763bda92bbb860edad908cb4e0502ad321f4e536160173f1bd892b2e86a"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:swap\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"5a1c7763bda92bbb860edad908cb4e0502ad321f4e536160173f1bd892b2e86a\", \"learn_s\": 20.831, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "reward:swap", "fault_json": {"cells": 1, "dose": "one", "fault": "reward:swap", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "reward:swap", "learn_s": 20.654, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "67f6552c759e4c631c3487935243e764462447999d510e1620ba168be13afe1e"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:swap\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"67f6552c759e4c631c3487935243e764462447999d510e1620ba168be13afe1e\", \"learn_s\": 20.654, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "reward:swap", "fault_json": {"cells": 1, "dose": "one", "fault": "reward:swap", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "reward:swap", "learn_s": 20.415, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "38b7ad558bec6f21429d360bff75c741fe425dbb4b6a88f265a21ebb4cb1487c"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:swap\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"38b7ad558bec6f21429d360bff75c741fe425dbb4b6a88f265a21ebb4cb1487c\", \"learn_s\": 20.415, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "reward:swap", "fault_json": {"cells": 1, "dose": "one", "fault": "reward:swap", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "reward:swap", "learn_s": 20.458, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "dd11b65954db21c5709437df96d9f97ac9a9cbdc9f0902bd87ec3ee1b41ed397"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:swap\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"dd11b65954db21c5709437df96d9f97ac9a9cbdc9f0902bd87ec3ee1b41ed397\", \"learn_s\": 20.458, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "reward:zero", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "reward:zero", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "reward:zero", "learn_s": 20.766, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "11d1d7dcda1308bed58cf5c6c609ca8f7b009280643baec42f720a7fc349902f"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:zero\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"11d1d7dcda1308bed58cf5c6c609ca8f7b009280643baec42f720a7fc349902f\", \"learn_s\": 20.766, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "reward:zero", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "reward:zero", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "reward:zero", "learn_s": 20.778, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "e90c654bf8b0f05fdb104ad2b9932adce1bfcb005aa4738093bde3a8f1616c63"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:zero\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"e90c654bf8b0f05fdb104ad2b9932adce1bfcb005aa4738093bde3a8f1616c63\", \"learn_s\": 20.778, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "reward:zero", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "reward:zero", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "reward:zero", "learn_s": 20.474, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "57614ceacae8d11d3917882192380bf2eb50d90fa500c7bb807510e718829d5b"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:zero\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"57614ceacae8d11d3917882192380bf2eb50d90fa500c7bb807510e718829d5b\", \"learn_s\": 20.474, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102400 cells changed", "dose": "1.0", "env": "pendulum", "fault": "reward:zero", "fault_json": {"cells": 102400, "dose": "1.0", "fault": "reward:zero", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "reward:zero", "learn_s": 20.641, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "f3c1c4c32fe38c07a9c5e77972b48e9664e755f000259bdb7cfd1fd332143942"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:zero\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"f3c1c4c32fe38c07a9c5e77972b48e9664e755f000259bdb7cfd1fd332143942\", \"learn_s\": 20.641, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102400 cells changed", "dose": "1.0", "env": "pendulum", "fault": "reward:zero", "fault_json": {"cells": 102400, "dose": "1.0", "fault": "reward:zero", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "reward:zero", "learn_s": 19.952, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "d483503e75afb399f663b2b047e0123b08873f3fcfb8d752bc750f19b2e8d7d6"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:zero\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"d483503e75afb399f663b2b047e0123b08873f3fcfb8d752bc750f19b2e8d7d6\", \"learn_s\": 19.952, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102400 cells changed", "dose": "1.0", "env": "pendulum", "fault": "reward:zero", "fault_json": {"cells": 102400, "dose": "1.0", "fault": "reward:zero", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "reward:zero", "learn_s": 20.62, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "092cb09b730bd13d27f073317378a58f529eba48cc5cf4b738cc1d1998f7beaf"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:zero\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"092cb09b730bd13d27f073317378a58f529eba48cc5cf4b738cc1d1998f7beaf\", \"learn_s\": 20.62, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "reward:zero", "fault_json": {"cells": 1, "dose": "one", "fault": "reward:zero", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "reward:zero", "learn_s": 20.363, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "e42c5fa871d054c65844f4edea6958f0eec79579424a56e1944048f0fcb2f614"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:zero\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"e42c5fa871d054c65844f4edea6958f0eec79579424a56e1944048f0fcb2f614\", \"learn_s\": 20.363, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "reward:zero", "fault_json": {"cells": 1, "dose": "one", "fault": "reward:zero", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "reward:zero", "learn_s": 20.792, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "b0cdde979e342d2b7e06e534ace3018e7cc0e5b5a744f85f11ffb67e990d611b"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:zero\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"b0cdde979e342d2b7e06e534ace3018e7cc0e5b5a744f85f11ffb67e990d611b\", \"learn_s\": 20.792, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "reward:zero", "fault_json": {"cells": 1, "dose": "one", "fault": "reward:zero", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "reward:zero", "learn_s": 20.257, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "77163c4c1b1671e87094bf232cb54dd08a9922fec36af6e97a8a0fbb63f5a0a7"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"reward:zero\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"77163c4c1b1671e87094bf232cb54dd08a9922fec36af6e97a8a0fbb63f5a0a7\", \"learn_s\": 20.257, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "step:fill", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "step:fill", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "step:fill", "learn_s": 20.191, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "32ba03dda20fe19c43bde92deb3d07334a3c8de463072ba9a489351be924c84a"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"step:fill\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"32ba03dda20fe19c43bde92deb3d07334a3c8de463072ba9a489351be924c84a\", \"learn_s\": 20.191, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "step:fill", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "step:fill", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "step:fill", "learn_s": 20.287, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "c201aca08c95d61dc0600f5e002e269cdab95d69fe67c3e97f69f1a7c5b24a0b"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"step:fill\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"c201aca08c95d61dc0600f5e002e269cdab95d69fe67c3e97f69f1a7c5b24a0b\", \"learn_s\": 20.287, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "step:fill", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "step:fill", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "step:fill", "learn_s": 19.893, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "b14b76d2918c495692958620f755d5cd6bd5f7be2e502cbcc98a81521f4e0fb6"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"step:fill\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"b14b76d2918c495692958620f755d5cd6bd5f7be2e502cbcc98a81521f4e0fb6\", \"learn_s\": 19.893, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102400 cells changed", "dose": "1.0", "env": "pendulum", "fault": "step:fill", "fault_json": {"cells": 102400, "dose": "1.0", "fault": "step:fill", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "step:fill", "learn_s": 18.361, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "7c353631d9f35e80f9bc70468bfd20bdfb96de1aefb1d1c00ec593827e8a1819"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"step:fill\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"7c353631d9f35e80f9bc70468bfd20bdfb96de1aefb1d1c00ec593827e8a1819\", \"learn_s\": 18.361, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102400 cells changed", "dose": "1.0", "env": "pendulum", "fault": "step:fill", "fault_json": {"cells": 102400, "dose": "1.0", "fault": "step:fill", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "step:fill", "learn_s": 18.855, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "d303871d9f5fcb4ed42e30021befb796e4e14869d9d4ce66ab1adeb4b8ad0e16"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"step:fill\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"d303871d9f5fcb4ed42e30021befb796e4e14869d9d4ce66ab1adeb4b8ad0e16\", \"learn_s\": 18.855, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102400 cells changed", "dose": "1.0", "env": "pendulum", "fault": "step:fill", "fault_json": {"cells": 102400, "dose": "1.0", "fault": "step:fill", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "step:fill", "learn_s": 18.523, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "36f6d91e46fc964b7d65d4b7d61f816d70c03459d94c5218a2e6ef8884e22e79"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"step:fill\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"36f6d91e46fc964b7d65d4b7d61f816d70c03459d94c5218a2e6ef8884e22e79\", \"learn_s\": 18.523, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "step:fill", "fault_json": {"cells": 1, "dose": "one", "fault": "step:fill", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "step:fill", "learn_s": 19.933, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "1426c4028cbad342c396610c0520678af50a6610e6e8d7777c9077d79f2323d9"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"step:fill\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"1426c4028cbad342c396610c0520678af50a6610e6e8d7777c9077d79f2323d9\", \"learn_s\": 19.933, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "step:fill", "fault_json": {"cells": 1, "dose": "one", "fault": "step:fill", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "step:fill", "learn_s": 20.638, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "1b86e0d9c17d72cede16cd2b2ac43130feb5273d52b76d91514a4c8ebe6fb603"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"step:fill\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"1b86e0d9c17d72cede16cd2b2ac43130feb5273d52b76d91514a4c8ebe6fb603\", \"learn_s\": 20.638, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "step:fill", "fault_json": {"cells": 1, "dose": "one", "fault": "step:fill", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "step:fill", "learn_s": 20.871, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "e2d1cee48742bc8f219fb257598130869c6d4c9bdcb1af5afa860e5f22c66901"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"step:fill\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"e2d1cee48742bc8f219fb257598130869c6d4c9bdcb1af5afa860e5f22c66901\", \"learn_s\": 20.871, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "terminated:spurious", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "terminated:spurious", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "terminated:spurious", "learn_s": 20.615, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "bfaf6961dac95ae1d8c670b808f39ac816b9dddfeaf611f686330aa13335ba0d"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"terminated:spurious\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"bfaf6961dac95ae1d8c670b808f39ac816b9dddfeaf611f686330aa13335ba0d\", \"learn_s\": 20.615, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "terminated:spurious", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "terminated:spurious", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "terminated:spurious", "learn_s": 20.513, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "d166081a80d480aa5495a5dd4ceb523d631ed5534d760555be50f08e56a7a019"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"terminated:spurious\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"d166081a80d480aa5495a5dd4ceb523d631ed5534d760555be50f08e56a7a019\", \"learn_s\": 20.513, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1068 cells changed", "dose": "0.01", "env": "pendulum", "fault": "terminated:spurious", "fault_json": {"cells": 1068, "dose": "0.01", "fault": "terminated:spurious", "first": [5, 7], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "terminated:spurious", "learn_s": 20.608, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "66d62461cca82cee978fac4560be188393865cf5f04094c20995af0965f35b82"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"terminated:spurious\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"66d62461cca82cee978fac4560be188393865cf5f04094c20995af0965f35b82\", \"learn_s\": 20.608, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102400 cells changed", "dose": "1.0", "env": "pendulum", "fault": "terminated:spurious", "fault_json": {"cells": 102400, "dose": "1.0", "fault": "terminated:spurious", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "terminated:spurious", "learn_s": 21.815, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "f885d3969356790a969d3ee67761f05283e607e5e928eb143aa7104e59d0f0f8"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"terminated:spurious\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"f885d3969356790a969d3ee67761f05283e607e5e928eb143aa7104e59d0f0f8\", \"learn_s\": 21.815, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102400 cells changed", "dose": "1.0", "env": "pendulum", "fault": "terminated:spurious", "fault_json": {"cells": 102400, "dose": "1.0", "fault": "terminated:spurious", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "terminated:spurious", "learn_s": 21.687, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "ef551e57c5b5b9a485e65662b12ae09ffb96a7ab2127066ba777a4ae96d54c8a"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"terminated:spurious\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"ef551e57c5b5b9a485e65662b12ae09ffb96a7ab2127066ba777a4ae96d54c8a\", \"learn_s\": 21.687, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 102400 cells changed", "dose": "1.0", "env": "pendulum", "fault": "terminated:spurious", "fault_json": {"cells": 102400, "dose": "1.0", "fault": "terminated:spurious", "first": [0, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "terminated:spurious", "learn_s": 21.308, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "1611c2558e2eb681d169815a0f0a00a6f34a9aaf5f2025147b24c9d1ce7c187e"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"terminated:spurious\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"1611c2558e2eb681d169815a0f0a00a6f34a9aaf5f2025147b24c9d1ce7c187e\", \"learn_s\": 21.308, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "terminated:spurious", "fault_json": {"cells": 1, "dose": "one", "fault": "terminated:spurious", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "terminated:spurious", "learn_s": 20.366, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "44d6e670481fd952b8e171b0edf38cb42f2109ee7739480420e4f2a363ce118c"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"terminated:spurious\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"44d6e670481fd952b8e171b0edf38cb42f2109ee7739480420e4f2a363ce118c\", \"learn_s\": 20.366, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "terminated:spurious", "fault_json": {"cells": 1, "dose": "one", "fault": "terminated:spurious", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "terminated:spurious", "learn_s": 20.716, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "ad8c101aa0b6588a1d8ea9b4bc945c17b73872b8f2668a5864d7c6f865b41646"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"terminated:spurious\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"ad8c101aa0b6588a1d8ea9b4bc945c17b73872b8f2668a5864d7c6f865b41646\", \"learn_s\": 20.716, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "terminated:spurious", "fault_json": {"cells": 1, "dose": "one", "fault": "terminated:spurious", "first": [3249, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "terminated:spurious", "learn_s": 20.396, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "b9f30a62b76eea4dded39f7ec85519554a17fcaf90f7c5f688513f0b3e227d1a"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"terminated:spurious\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"b9f30a62b76eea4dded39f7ec85519554a17fcaf90f7c5f688513f0b3e227d1a\", \"learn_s\": 20.396, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 9 cells changed", "dose": "0.01", "env": "pendulum", "fault": "truncated:as-term", "fault_json": {"cells": 9, "dose": "0.01", "fault": "truncated:as-term", "first": [199, 12], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "truncated:as-term", "learn_s": 20.515, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "9ea567853930e77e0d5240b24c831769a062199ac468fbcc215d50dff551903f"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"truncated:as-term\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"9ea567853930e77e0d5240b24c831769a062199ac468fbcc215d50dff551903f\", \"learn_s\": 20.515, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 9 cells changed", "dose": "0.01", "env": "pendulum", "fault": "truncated:as-term", "fault_json": {"cells": 9, "dose": "0.01", "fault": "truncated:as-term", "first": [199, 12], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "truncated:as-term", "learn_s": 20.474, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "5e225449710dbe0f600f7b1f32b754cfd62c1ce88a1bcecd061e7a44e6fc9857"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"truncated:as-term\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"5e225449710dbe0f600f7b1f32b754cfd62c1ce88a1bcecd061e7a44e6fc9857\", \"learn_s\": 20.474, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 9 cells changed", "dose": "0.01", "env": "pendulum", "fault": "truncated:as-term", "fault_json": {"cells": 9, "dose": "0.01", "fault": "truncated:as-term", "first": [199, 12], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "truncated:as-term", "learn_s": 19.974, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "8ffa7e426a9ab88a248e76af9867dfd22bde68d1275d8ebd1101b551db4c9df6"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"truncated:as-term\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"8ffa7e426a9ab88a248e76af9867dfd22bde68d1275d8ebd1101b551db4c9df6\", \"learn_s\": 19.974, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 512 cells changed", "dose": "1.0", "env": "pendulum", "fault": "truncated:as-term", "fault_json": {"cells": 512, "dose": "1.0", "fault": "truncated:as-term", "first": [199, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "truncated:as-term", "learn_s": 20.741, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "57eb56014c21f1dd320d2b24753707bf771c4f0c28bf165a79bfa080816a8803"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"truncated:as-term\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"57eb56014c21f1dd320d2b24753707bf771c4f0c28bf165a79bfa080816a8803\", \"learn_s\": 20.741, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 512 cells changed", "dose": "1.0", "env": "pendulum", "fault": "truncated:as-term", "fault_json": {"cells": 512, "dose": "1.0", "fault": "truncated:as-term", "first": [199, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "truncated:as-term", "learn_s": 19.935, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "2c8a0d7ae748c9824b6502d73718b90305e1bbb8193260fd109a53d2ddc5762c"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"truncated:as-term\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"2c8a0d7ae748c9824b6502d73718b90305e1bbb8193260fd109a53d2ddc5762c\", \"learn_s\": 19.935, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 512 cells changed", "dose": "1.0", "env": "pendulum", "fault": "truncated:as-term", "fault_json": {"cells": 512, "dose": "1.0", "fault": "truncated:as-term", "first": [199, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "truncated:as-term", "learn_s": 20.243, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "3292a6cec3c33a2d7b33f574a03285fe1e94d5d0e2e2837b47e0458bc40ceecb"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"truncated:as-term\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"3292a6cec3c33a2d7b33f574a03285fe1e94d5d0e2e2837b47e0458bc40ceecb\", \"learn_s\": 20.243, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "truncated:as-term", "fault_json": {"cells": 1, "dose": "one", "fault": "truncated:as-term", "first": [3399, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "truncated:as-term", "learn_s": 20.138, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "1778bb25214c893421f4e2a59aef4f88b6396bc40379ed22389f4812b30498c5"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"truncated:as-term\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"1778bb25214c893421f4e2a59aef4f88b6396bc40379ed22389f4812b30498c5\", \"learn_s\": 20.138, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "truncated:as-term", "fault_json": {"cells": 1, "dose": "one", "fault": "truncated:as-term", "first": [3399, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "truncated:as-term", "learn_s": 20.312, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "3145900642c34f9f8846c4d8844c2fa0a61265968b54d361f96d5c05fa22b6fd"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"truncated:as-term\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"3145900642c34f9f8846c4d8844c2fa0a61265968b54d361f96d5c05fa22b6fd\", \"learn_s\": 20.312, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "truncated:as-term", "fault_json": {"cells": 1, "dose": "one", "fault": "truncated:as-term", "first": [3399, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "truncated:as-term", "learn_s": 20.33, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "bb2c9d55a20bc8d3026e8ebd1b8131d5357b5395492b10a45f2f68c363c20532"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"truncated:as-term\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"bb2c9d55a20bc8d3026e8ebd1b8131d5357b5395492b10a45f2f68c363c20532\", \"learn_s\": 20.33, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 9 cells changed", "dose": "0.01", "env": "pendulum", "fault": "truncated:drop", "fault_json": {"cells": 9, "dose": "0.01", "fault": "truncated:drop", "first": [199, 12], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "truncated:drop", "learn_s": 20.589, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "bfafb0fbd5c3313b7bc637b85afe4bd6fbc465baa4ba47f9d6ce4135a5f5389e"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"truncated:drop\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"bfafb0fbd5c3313b7bc637b85afe4bd6fbc465baa4ba47f9d6ce4135a5f5389e\", \"learn_s\": 20.589, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 9 cells changed", "dose": "0.01", "env": "pendulum", "fault": "truncated:drop", "fault_json": {"cells": 9, "dose": "0.01", "fault": "truncated:drop", "first": [199, 12], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "truncated:drop", "learn_s": 20.563, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "db17509e0d55f9f530e3949d3b3ccb9b004cf2066d529c6686b3b2d3be0f6ab5"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"truncated:drop\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"db17509e0d55f9f530e3949d3b3ccb9b004cf2066d529c6686b3b2d3be0f6ab5\", \"learn_s\": 20.563, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 9 cells changed", "dose": "0.01", "env": "pendulum", "fault": "truncated:drop", "fault_json": {"cells": 9, "dose": "0.01", "fault": "truncated:drop", "first": [199, 12], "steps": 6400}, "result": {"client_rc": 0, "dose": "0.01", "env": "pendulum", "fault": "truncated:drop", "learn_s": 20.523, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "8c5d0450e157dc071c0c7faa326b9af48eaae9eee18077ebd5b4553f27865513"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"truncated:drop\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"8c5d0450e157dc071c0c7faa326b9af48eaae9eee18077ebd5b4553f27865513\", \"learn_s\": 20.523, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 512 cells changed", "dose": "1.0", "env": "pendulum", "fault": "truncated:drop", "fault_json": {"cells": 512, "dose": "1.0", "fault": "truncated:drop", "first": [199, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "truncated:drop", "learn_s": 20.466, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "1a8332959838731601c25b32641a9c21540b5f0e743f779c57642595326886cf"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"truncated:drop\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"1a8332959838731601c25b32641a9c21540b5f0e743f779c57642595326886cf\", \"learn_s\": 20.466, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 512 cells changed", "dose": "1.0", "env": "pendulum", "fault": "truncated:drop", "fault_json": {"cells": 512, "dose": "1.0", "fault": "truncated:drop", "first": [199, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "truncated:drop", "learn_s": 20.671, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "c077fca8b10f246a0781deffcafd563837645513759cd6131e428fac51cb7185"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"truncated:drop\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"c077fca8b10f246a0781deffcafd563837645513759cd6131e428fac51cb7185\", \"learn_s\": 20.671, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 512 cells changed", "dose": "1.0", "env": "pendulum", "fault": "truncated:drop", "fault_json": {"cells": 512, "dose": "1.0", "fault": "truncated:drop", "first": [199, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "truncated:drop", "learn_s": 20.145, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "85691232578e1d5e1322744d5a6aab1412e64188f3aaad8cd1e188e6ad35da77"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"truncated:drop\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"85691232578e1d5e1322744d5a6aab1412e64188f3aaad8cd1e188e6ad35da77\", \"learn_s\": 20.145, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "truncated:drop", "fault_json": {"cells": 1, "dose": "one", "fault": "truncated:drop", "first": [3399, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "truncated:drop", "learn_s": 20.076, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "754e49b981b129dd206e0ac81549efc8d2b944ad9b0a70836c3ee1b3180f5043"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"truncated:drop\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"754e49b981b129dd206e0ac81549efc8d2b944ad9b0a70836c3ee1b3180f5043\", \"learn_s\": 20.076, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "truncated:drop", "fault_json": {"cells": 1, "dose": "one", "fault": "truncated:drop", "first": [3399, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "truncated:drop", "learn_s": 20.183, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "b21d87183b1cbaf2b0c5cf517819a4ba0399d3c277d5373145830c2221a3f0ad"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"truncated:drop\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"b21d87183b1cbaf2b0c5cf517819a4ba0399d3c277d5373145830c2221a3f0ad\", \"learn_s\": 20.183, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pendulum", "fault": "truncated:drop", "fault_json": {"cells": 1, "dose": "one", "fault": "truncated:drop", "first": [3399, 0], "steps": 6400}, "result": {"client_rc": 0, "dose": "one", "env": "pendulum", "fault": "truncated:drop", "learn_s": 19.847, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "4bc2ef7bfc184f0b34bcc178630ce2ce93f66667a83e752e83ab6024e2ac8bae"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"truncated:drop\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"4bc2ef7bfc184f0b34bcc178630ce2ce93f66667a83e752e83ab6024e2ac8bae\", \"learn_s\": 19.847, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pendulum", "fault": "wire-float64", "fault_json": {"cells": 0, "dose": "1.0", "fault": "wire-float64", "first": null, "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "wire-float64", "learn_s": 20.351, "seed": 0, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "ec5b8226b227f3fa58bd771b411e3673b751ec2c062b010cf0dcef60baed42bc"}, "seed": 0, "train_log": "{\"env\": \"pendulum\", \"fault\": \"wire-float64\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"ec5b8226b227f3fa58bd771b411e3673b751ec2c062b010cf0dcef60baed42bc\", \"learn_s\": 20.351, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pendulum", "fault": "wire-float64", "fault_json": {"cells": 0, "dose": "1.0", "fault": "wire-float64", "first": null, "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "wire-float64", "learn_s": 19.837, "seed": 1, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "062e92e3bab334bb20d04f963612273166bef926f9edb017a624b133313733d6"}, "seed": 1, "train_log": "{\"env\": \"pendulum\", \"fault\": \"wire-float64\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"062e92e3bab334bb20d04f963612273166bef926f9edb017a624b133313733d6\", \"learn_s\": 19.837, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 6400 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pendulum", "fault": "wire-float64", "fault_json": {"cells": 0, "dose": "1.0", "fault": "wire-float64", "first": null, "steps": 6400}, "result": {"client_rc": 0, "dose": "1.0", "env": "pendulum", "fault": "wire-float64", "learn_s": 19.963, "seed": 2, "steps": 102400, "torch": "2.14.1+cpu", "weights_sha256": "3a8d968f19e2a8b5dc01540e41c4a64c02cb7a8c99ccdedf4a016008cf8bcd41"}, "seed": 2, "train_log": "{\"env\": \"pendulum\", \"fault\": \"wire-float64\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"3a8d968f19e2a8b5dc01540e41c4a64c02cb7a8c99ccdedf4a016008cf8bcd41\", \"learn_s\": 19.963, \"steps\": 102400, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} diff --git a/experiments/e55-step-ledger/results/summary.txt b/experiments/e55-step-ledger/results/summary.txt new file mode 100644 index 0000000..fc08b0f --- /dev/null +++ b/experiments/e55-step-ledger/results/summary.txt @@ -0,0 +1,89 @@ +env fault dose cells raises rule strict weights record bridge +pendulum none 1.0 0/0/0 0/3 0/3 - 0/3 0/3 0/3 +pendulum delay-1ms 1.0 0/0/0 0/3 0/3 - 0/3 0/3 0/3 +pendulum wire-float64 1.0 0/0/0 0/3 0/3 - 0/3 0/3 0/3 +pendulum obs:zero 0.01 1068/1068/1068 0/3 0/3 - 3/3 0/3 0/3 +pendulum obs:zero 1.0 102416/102416/102416 0/3 3/3 - 3/3 0/3 0/3 +pendulum obs:zero one 1/1/1 0/3 0/3 - 3/3 0/3 0/3 +pendulum obs:stale 0.01 1068/1068/1068 0/3 0/3 - 3/3 0/3 0/3 +pendulum obs:stale 1.0 102400/102400/102400 0/3 0/3 - 3/3 0/3 0/3 +pendulum obs:stale one 1/1/1 0/3 0/3 - 3/3 0/3 0/3 +pendulum obs:swap 0.01 1068/1068/1068 0/3 0/3 - 3/3 0/3 0/3 +pendulum obs:swap 1.0 102416/102416/102416 0/3 3/3 - 3/3 0/3 0/3 +pendulum obs:swap one 1/1/1 0/3 0/3 - 3/3 0/3 0/3 +pendulum obs:f16 0.01 1068/1068/1068 0/3 0/3 - 3/3 0/3 0/3 +pendulum obs:f16 1.0 102416/102416/102416 0/3 0/3 - 3/3 0/3 0/3 +pendulum obs:f16 one 1/1/1 0/3 0/3 - 3/3 0/3 0/3 +pendulum action:zero 0.01 1068/1068/1068 0/3 0/3 - 3/3 0/3 0/3 +pendulum action:zero 1.0 102400/102400/102400 0/3 3/3 - 3/3 0/3 0/3 +pendulum action:zero one 1/1/1 0/3 0/3 - 3/3 0/3 0/3 +pendulum action:stale 0.01 817/769/802 0/3 0/3 - 3/3 0/3 0/3 +pendulum action:stale 1.0 77023/74754/78333 0/3 0/3 - 3/3 0/3 0/3 +pendulum action:stale one 1/1/1 0/3 0/3 - 3/3 0/3 0/3 +pendulum action:swap 0.01 976/979/987 0/3 0/3 - 3/3 0/3 0/3 +pendulum action:swap 1.0 85056/84269/82169 0/3 3/3 - 3/3 0/3 0/3 +pendulum action:swap one 1/1/1 0/3 0/3 - 3/3 0/3 0/3 +pendulum action:f16 0.01 746/707/751 0/3 0/3 - 3/3 0/3 0/3 +pendulum action:f16 1.0 70086/69306/70621 0/3 0/3 - 3/3 0/3 0/3 +pendulum action:f16 one 1/1/1 0/3 0/3 - 3/3 0/3 0/3 +pendulum action:clip 0.01 564/518/529 0/3 0/3 - 3/3 0/3 0/3 +pendulum action:clip 1.0 63653/63417/58306 0/3 0/3 - 3/3 0/3 0/3 +pendulum action:clip one 1/1/1 0/3 0/3 - 3/3 0/3 0/3 +pendulum reward:zero 0.01 1068/1068/1068 0/3 0/3 - 3/3 3/3 0/3 +pendulum reward:zero 1.0 102400/102400/102400 0/3 3/3 - 3/3 3/3 0/3 +pendulum reward:zero one 1/1/1 0/3 0/3 - 3/3 1/3 0/3 +pendulum reward:stale 0.01 1068/1068/1068 0/3 0/3 - 3/3 3/3 0/3 +pendulum reward:stale 1.0 102400/102400/102400 0/3 0/3 - 3/3 3/3 0/3 +pendulum reward:stale one 1/1/1 0/3 0/3 - 3/3 1/3 0/3 +pendulum reward:swap 0.01 1068/1068/1068 0/3 0/3 - 3/3 3/3 0/3 +pendulum reward:swap 1.0 102400/102400/102400 0/3 3/3 - 3/3 3/3 0/3 +pendulum reward:swap one 1/1/1 0/3 0/3 - 3/3 2/3 0/3 +pendulum reward:f16 0.01 1068/1068/1068 0/3 0/3 - 3/3 0/3 0/3 +pendulum reward:f16 1.0 102385/102393/102378 0/3 0/3 - 3/3 0/3 0/3 +pendulum reward:f16 one 1/1/1 0/3 0/3 - 3/3 0/3 0/3 +pendulum final-obs:zero 0.01 9/9/9 0/3 0/3 - 3/3 0/3 0/3 +pendulum final-obs:zero 1.0 512/512/512 0/3 0/3 - 3/3 0/3 0/3 +pendulum final-obs:zero one 1/1/1 0/3 0/3 - 3/3 0/3 0/3 +pendulum final-obs:stale 0.01 9/9/9 0/3 0/3 - 3/3 0/3 0/3 +pendulum final-obs:stale 1.0 512/512/512 0/3 0/3 - 3/3 0/3 0/3 +pendulum final-obs:stale one 1/1/1 0/3 0/3 - 3/3 0/3 0/3 +pendulum final-obs:swap 0.01 9/9/9 0/3 0/3 - 3/3 0/3 0/3 +pendulum final-obs:swap 1.0 512/512/512 0/3 0/3 - 3/3 0/3 0/3 +pendulum final-obs:swap one 1/1/1 0/3 0/3 - 3/3 0/3 0/3 +pendulum final-obs:f16 0.01 9/9/9 0/3 0/3 - 3/3 0/3 0/3 +pendulum final-obs:f16 1.0 512/512/512 0/3 0/3 - 3/3 0/3 0/3 +pendulum final-obs:f16 one 1/1/1 0/3 0/3 - 3/3 0/3 0/3 +pendulum terminated:spurious 0.01 1068/1068/1068 0/3 3/3 - 3/3 3/3 0/3 +pendulum terminated:spurious 1.0 102400/102400/102400 0/3 3/3 - 3/3 3/3 0/3 +pendulum terminated:spurious one 1/1/1 0/3 0/3 - 3/3 3/3 0/3 +pendulum truncated:drop 0.01 9/9/9 0/3 0/3 - 3/3 3/3 0/3 +pendulum truncated:drop 1.0 512/512/512 0/3 3/3 - 3/3 3/3 0/3 +pendulum truncated:drop one 1/1/1 0/3 0/3 - 3/3 3/3 0/3 +pendulum truncated:as-term 0.01 9/9/9 0/3 0/3 - 3/3 0/3 0/3 +pendulum truncated:as-term 1.0 512/512/512 0/3 0/3 - 3/3 0/3 0/3 +pendulum truncated:as-term one 1/1/1 0/3 0/3 - 3/3 0/3 0/3 +pendulum step:fill 0.01 1068/1068/1068 0/3 0/3 - 3/3 3/3 0/3 +pendulum step:fill 1.0 102400/102400/102400 0/3 3/3 - 3/3 0/3 0/3 +pendulum step:fill one 1/1/1 0/3 0/3 - 3/3 3/3 0/3 +pendulum log:drop-first 0.01 2/2/2 0/3 0/3 - 0/3 3/3 3/3 +pendulum log:drop-first 1.0 512/512/512 0/3 0/3 - 0/3 3/3 3/3 +pendulum log:drop-first one 1/1/1 0/3 0/3 - 0/3 3/3 3/3 +pendulum log:short 0.01 2/2/2 0/3 0/3 - 0/3 3/3 3/3 +pendulum log:short 1.0 512/512/512 0/3 0/3 - 0/3 3/3 3/3 +pendulum log:short one 1/1/1 0/3 0/3 - 0/3 3/3 3/3 + +share of runs caught, by dose (runs with a changed cell; either = weights or record) + pendulum client one n= 63 raises 0.0 rule 0.0 strict weights 1.0 record 0.206 bridge 0.0 either 1.0 + pendulum client 0.01 n= 63 raises 0.0 rule 0.048 strict weights 1.0 record 0.286 bridge 0.0 either 1.0 + pendulum client 1.0 n= 63 raises 0.0 rule 0.429 strict weights 1.0 record 0.238 bridge 0.0 either 1.0 + pendulum log one n= 6 raises 0.0 rule 0.0 strict weights 0.0 record 1.0 bridge 1.0 either 1.0 + pendulum log 0.01 n= 6 raises 0.0 rule 0.0 strict weights 0.0 record 1.0 bridge 1.0 either 1.0 + pendulum log 1.0 n= 6 raises 0.0 rule 0.0 strict weights 0.0 record 1.0 bridge 1.0 either 1.0 + pendulum all one n= 69 raises 0.0 rule 0.0 strict weights 0.913 record 0.275 bridge 0.087 either 1.0 + pendulum all 0.01 n= 69 raises 0.0 rule 0.043 strict weights 0.913 record 0.348 bridge 0.087 either 1.0 + pendulum all 1.0 n= 69 raises 0.0 rule 0.391 strict weights 0.913 record 0.304 bridge 0.087 either 1.0 + +pendulum none at seed 0: ec5b8226, E50's ec5b8226: same +pendulum none at seed 1: 062e92e3, E50's 062e92e3: same +pendulum none at seed 2: 3a8d968f, E50's 3a8d968f: same +incomplete without an error: none diff --git a/experiments/e55-step-ledger/results/verdicts.txt b/experiments/e55-step-ledger/results/verdicts.txt new file mode 100644 index 0000000..6138f98 --- /dev/null +++ b/experiments/e55-step-ledger/results/verdicts.txt @@ -0,0 +1,7 @@ +V1: holds - 216 of 216 same-machine and 24 of 24 cross-machine runs complete +V2: holds - none: {'0': 'ec5b8226', '1': '062e92e3', '2': '3a8d968f'} +P1: holds - caught and right in 189 of 189 client-fault runs +P2: holds - no difference in 30 of 30 control and log-fault runs +P3: holds - caught and right in 21 of 21 cross-machine client-fault runs (21 faults); none differs: ['0'] +P4: holds - across machines none ended on ['d7a19cc0'], guangzhao's on ec5b8226 +P5: holds - ledger or record caught 207 of 207 same-machine and 23 of 23 cross-machine runs with a changed value diff --git a/experiments/e55-step-ledger/run.sh b/experiments/e55-step-ledger/run.sh new file mode 100644 index 0000000..95f6ab7 --- /dev/null +++ b/experiments/e55-step-ledger/run.sh @@ -0,0 +1,41 @@ +#!/usr/bin/env bash +# E55's same-machine runs on guangzhao, W at a time, each worker on its own port. +# bash run.sh results registered [W] # PROTOCOL.md; W defaults to 10 +# bash run.sh pilot pilot [W] +# Writes DIR////seed/, with train.log in it. +set -uo pipefail +export PATH="$HOME/.local/bin:$PATH" OMP_NUM_THREADS=1 +PY="$HOME/zuogou/plugrl/bridges-venv/bin/python" +cd "$(dirname "$0")" +DIR="${1:?results dir}"; WHICH="${2:?registered or pilot}"; W="${3:-10}" +mkdir -p "$DIR" +"$PY" jobs.py "$WHICH" > "$DIR/jobs.txt" +uptime | tee "$DIR/load.txt" +(cd "$HOME/zuogou/plugrl/plugrl-bridges" && find src -name "*.py" | sort | xargs sha256sum) > "$DIR/bridges-src.sha256" +sha256sum train.py faulty_client.py jobs.py > "$DIR/e55-src.sha256" +echo "$(wc -l < "$DIR/jobs.txt") runs, $W at a time" + +worker() { + local w=$1 port=$((8870 + $1)) n=0 + # Every W-th job, starting at the w-th. + awk -v w="$w" -v W="$W" 'NR % W == w' "$DIR/jobs.txt" | while read -r env fault dose seed trace; do + # A process left on the port would take the next run's client (E53). + if ! "$PY" -c "import socket,sys; s=socket.socket(); sys.exit(0 if s.connect_ex(('127.0.0.1',$port)) else 1)"; then + echo "worker $w: port $port in use; stopping"; return 1 + fi + out="$DIR/$env/${fault//:/__}/$dose/seed$seed" + mkdir -p "$out" + flag=""; [ "$trace" = trace ] && flag="--trace" + "$PY" train.py --env "$env" --fault "$fault" --dose "$dose" --seed "$seed" \ + --out "$out" --port "$port" $flag > "$out/train.log" 2>&1 || echo "worker $w: train.py exited $? on $out" + n=$((n + 1)) + done + echo "worker $w done" +} + +for w in $(seq 0 $((W - 1))); do + worker "$w" & +done +wait +uptime | tee -a "$DIR/load.txt" +echo E55_DONE diff --git a/experiments/e55-step-ledger/summarise.py b/experiments/e55-step-ledger/summarise.py new file mode 100644 index 0000000..140d949 --- /dev/null +++ b/experiments/e55-step-ledger/summarise.py @@ -0,0 +1,268 @@ +"""E54: what each check says about each fault, at each dose. + + python summarise.py results # registered: writes runs.csv, by_dose.csv + python summarise.py pilot + +Runs are DIR////seed/. For each, six checks, +each "catches" the fault or not: +- raises: the run stopped on an error (the bridge rejected a message). +- rule: the trainer's log (monitor.csv) fails the env's status rule, E44's for + Pendulum and E43's for HalfCheetah. Batches are 16 consecutive episodes. + Pendulum: batches 20 to the last at least 500 above batches 1-2. + HalfCheetah: batches 21-25 at least 200 above batch 1. +- strict: the mean of those last batches, in the trainer's log, is more than + 3 standard deviations from the mean of the fault-free runs at seeds 10-19. +- weights: the final weights' SHA-256 differs from the fault-free run's at the + same seed, on the same machine. +- record: the trainer's log disagrees with the client's record of what the + environments produced (env_record.csv, in order of the step each episode + ended on, then env): returns to 1e-4 relative plus 0.01, lengths exactly. +- bridge: the trainer's log disagrees with the bridge's own log + (episodes.csv), which counts where the rewards arrive, on the trainer's side + of the wire. +A fault whose run changed no cell (fault.json; for the log faults, +result.json's log_cells) is reported, and left out of the shares caught. +""" + +from __future__ import annotations + +import csv +import json +import pathlib +import statistics +import sys +from collections import defaultdict + +HERE = pathlib.Path(__file__).resolve().parent +sys.path.insert(0, str(HERE)) +from faulty_client import CONTROLS, LOUD, SILENT # noqa: E402 + +LOG = ("log:drop-first", "log:short") +FAULTS = CONTROLS + SILENT + LOG + LOUD +CHECKS = ("raises", "rule", "strict", "weights", "record", "bridge") +STEPS = {"pendulum": 102_400, "halfcheetah": 409_600} +# E50's fault-free bridge runs on guangzhao (seed 9: E50's pilot). +E50_WEIGHTS = { + ("pendulum", 0): "ec5b8226", + ("pendulum", 1): "062e92e3", + ("pendulum", 2): "3a8d968f", + ("pendulum", 9): "3721266c", + ("halfcheetah", 0): "8261c03a", + ("halfcheetah", 1): "86564694", + ("halfcheetah", 2): "65cc8843", + ("halfcheetah", 9): "0260ca9d", +} +BAND_SEEDS = range(10, 20) + + +def read_csv(path: pathlib.Path, skip_header: bool = False) -> list[dict]: + with open(path, encoding="utf-8", newline="") as f: + if skip_header: + next(f) # VecMonitor's JSON header + return list(csv.DictReader(f)) + + +def monitor(run: pathlib.Path) -> list[tuple[float, int]]: + return [(float(r["r"]), int(r["l"])) for r in read_csv(run / "monitor.csv", True)] + + +def ordered(rows: list[dict], key: str) -> list[tuple[float, int]]: + rows.sort(key=lambda r: (int(r["step"]), int(r[key]))) + return [(float(r["return"]), int(r["length"])) for r in rows] + + +def agree(log, truth) -> bool: + return len(log) == len(truth) and all( + abs(r - t) <= 1e-4 * max(1.0, abs(t)) + 0.01 and n == m + for (r, n), (t, m) in zip(log, truth) + ) + + +def window(env: str, episodes) -> tuple[float, float] | None: + """(gain, last-window mean) by the env's status rule, or None if too short.""" + returns = [r for r, _ in episodes] + batches = [ + statistics.mean(returns[i : i + 16]) for i in range(0, len(returns) - 15, 16) + ] + if env == "pendulum": + if len(batches) < 20: + return None + first, last = statistics.mean(batches[0:2]), statistics.mean(batches[19:]) + else: + if len(batches) < 25: + return None + first, last = batches[0], statistics.mean(batches[20:25]) + return last - first, last + + +def bar(env: str) -> float: + return 500.0 if env == "pendulum" else 200.0 + + +def runs(root: pathlib.Path): + for res in sorted(root.glob("*/*/*/seed*/result.json")): + run = res.parent + env = run.parent.parent.parent.name + fault = run.parent.parent.name.replace("__", ":") + yield env, fault, run.parent.name, int(run.name.removeprefix("seed")), run + + +def main() -> int: + root = pathlib.Path(sys.argv[1]) if len(sys.argv) > 1 else HERE / "results" + table = {} + for env, fault, dose, seed, run in runs(root): + res = json.loads((run / "result.json").read_text()) + info = run / "fault.json" + cells = json.loads(info.read_text())["cells"] if info.exists() else None + if fault in LOG: + cells = res.get("log_cells") + if fault in CONTROLS: + cells = 0 + log = monitor(run) + w = window(env, log) + table[env, fault, dose, seed] = dict( + raised=res.get("raised", ""), + complete=res["steps"] == STEPS[env] and res.get("client_rc") == 0, + sha=res["weights_sha256"], + gain=None if w is None else w[0], + last=None if w is None else w[1], + record=agree(log, ordered(read_csv(run / "env_record.csv"), "env")), + bridge=agree(log, ordered(read_csv(run / "episodes.csv"), "slot")), + cells=cells, + episodes=len(log), + learn_s=res["learn_s"], + ) + + rows = [] + for (env, fault, dose, seed), t in sorted(table.items()): + clean = table.get((env, "none", "1.0", seed)) + band = [table[env, "none", "1.0", s]["last"] for s in BAND_SEEDS + if (env, "none", "1.0", s) in table] # fmt: skip + mu = statistics.mean(band) if len(band) >= 2 else None + sd = statistics.stdev(band) if len(band) >= 2 else None + raised = bool(t["raised"]) + caught = dict( + raises=raised, + rule=not raised and (t["gain"] is None or t["gain"] < bar(env)), + strict=None + if mu is None or raised + else (t["last"] is None or abs(t["last"] - mu) > 3 * sd), + weights=None if clean is None or raised else t["sha"] != clean["sha"], + record=not raised and not t["record"], + bridge=not raised and not t["bridge"], + ) + rows.append( + dict( + env=env, + fault=fault, + dose=dose, + seed=seed, + cells=t["cells"], + **{k: "" if v is None else int(v) for k, v in caught.items()}, + gain="" if t["gain"] is None else round(t["gain"], 1), + last="" if t["last"] is None else round(t["last"], 1), + episodes=t["episodes"], + sha=t["sha"][:8], + learn_s=t["learn_s"], + raised=t["raised"][:80], + complete=int(t["complete"]), + ) + ) + with open(root / "runs.csv", "w", encoding="utf-8", newline="") as f: + out = csv.DictWriter(f, fieldnames=list(rows[0])) + out.writeheader() + out.writerows(rows) + + # Per fault and dose: how many of the seeds each check caught. + groups = defaultdict(list) + for r in rows: + if r["seed"] in BAND_SEEDS: + continue + groups[r["env"], r["fault"], r["dose"]].append(r) + print( + f"{'env':11s} {'fault':20s} {'dose':6s} cells " + + " ".join(f"{c:>7s}" for c in CHECKS) + ) + for (env, fault, dose), rs in sorted( + groups.items(), key=lambda g: (g[0][0], FAULTS.index(g[0][1]), g[0][2]) + ): + cells = "/".join(str(r["cells"]) for r in rs) + counts = [] + for c in CHECKS: + vals = [r[c] for r in rs if r[c] != ""] + counts.append(f"{sum(vals)}/{len(vals)}" if vals else "-") + print( + f"{env:11s} {fault:20s} {dose:6s} {cells:>5s} " + + " ".join(f"{x:>7s}" for x in counts) + ) + + # The figure: per env, dose and kind of fault, the share of runs with a + # changed cell that each check caught; "either" is weights or record. + kinds = {"client": SILENT, "log": LOG, "all": SILENT + LOG} + shares = [] + for env in ("pendulum", "halfcheetah"): + for kind, members in kinds.items(): + for dose in ("one", "0.001", "0.01", "0.1", "1.0"): + rs = [r for r in rows if r["env"] == env and r["dose"] == dose + and r["fault"] in members and r["seed"] not in BAND_SEEDS + and r["cells"] not in (0, None)] # fmt: skip + if not rs: + continue + line = dict(env=env, kind=kind, dose=dose, runs=len(rs)) + for c in CHECKS: + vals = [r[c] for r in rs if r[c] != ""] + line[c] = round(sum(vals) / len(vals), 3) if vals else "" + line["either"] = round( + sum(r["weights"] or r["record"] for r in rs) / len(rs), 3 + ) + shares.append(line) + with open(root / "by_dose.csv", "w", encoding="utf-8", newline="") as f: + out = csv.DictWriter( + f, fieldnames=["env", "kind", "dose", "runs", *CHECKS, "either"] + ) + out.writeheader() + out.writerows(shares) + print() + print( + "share of runs caught, by dose (runs with a changed cell; either = weights or record)" + ) + for s in shares: + print( + f" {s['env']:11s} {s['kind']:6s} {s['dose']:6s} n={s['runs']:3d} " + + " ".join(f"{c} {s[c]}" for c in (*CHECKS, "either")) + ) + + print() + for (env, seed), want in sorted(E50_WEIGHTS.items()): + t = table.get((env, "none", "1.0", seed)) + if t is not None: + print( + f"{env} none at seed {seed}: {t['sha'][:8]}, E50's {want}: " + f"{'same' if t['sha'].startswith(want) else 'DIFFERENT'}" + ) + for env in ("pendulum", "halfcheetah"): + band = [table[env, "none", "1.0", s]["last"] for s in BAND_SEEDS + if (env, "none", "1.0", s) in table] # fmt: skip + if len(band) >= 2: + print( + f"{env} fault-free band, seeds 10-19: mean {statistics.mean(band):.1f}, " + f"sd {statistics.stdev(band):.1f}, min {min(band):.1f}, max {max(band):.1f}" + ) + if len(band) >= 3: + # The strict check's false alarms: each fault-free seed judged by + # the band of the other nine. + alarms = 0 + for i, x in enumerate(band): + rest = band[:i] + band[i + 1 :] + alarms += abs(x - statistics.mean(rest)) > 3 * statistics.stdev(rest) + print( + f"{env} strict check on fault-free seeds 10-19, each against the other " + f"nine: {alarms} of {len(band)} flagged" + ) + incomplete = [k for k, t in table.items() if not t["complete"] and not t["raised"]] + print("incomplete without an error:", incomplete or "none") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/experiments/e55-step-ledger/train.py b/experiments/e55-step-ledger/train.py new file mode 100644 index 0000000..6af216d --- /dev/null +++ b/experiments/e55-step-ledger/train.py @@ -0,0 +1,285 @@ +"""E55: E54's train.py, with the client's step ledger, and a client elsewhere. + +Two changes from E54's: +- the client is also given --ledger, and writes ledger.npz beside the run; +- with --external-client, no client is started here: the bridge listens on + every address, and a client started on another machine (cross.sh) connects + to it. The run's client_rc is then the other machine's to record. +Run it with --trace: ledger.py compares trace.npz, what the trainer sent and +received, with ledger.npz, what the environments took and gave. + +E54's docstring: + +E54: SB3's PPO behind the bridge, with one fault at the boundary. + + python train.py --env pendulum --fault reward:stale --dose 0.01 --seed 0 \ + --out runs/... [--port 8854] [--trace] + +E50's bridge arm, unchanged but for the fault: 16 environments in +faulty_client.py, another process, on one connection, behind plugrl-bridges' +PlugRLVecEnv; then VecMonitor, then PPO, one torch thread, CPU. +- pendulum: Pendulum-v1, 102,400 steps, rl-baselines3-zoo's settings, E50's. +- halfcheetah: HalfCheetah-v5, 409,600 steps, SB3's defaults, E50's. + +Every fault but two is the client's (faulty_client.py lists them). The two +here are in the trainer's log, and leave what PPO gets as it came: +- log:drop-first: VecMonitor's logged return leaves out the episode's first + reward (the kind of fault E51 found in Gymnasium's RecordEpisodeStatistics); +- log:short: VecMonitor's logged length is one step short (E51's other half). +Their doses count episodes: "one" is the 256th logged, a number p each with +probability p, from a generator seeded 54. + +With --trace, a pass-through wrapper between the bridge and VecMonitor keeps +what crossed the wire as the trainer saw it, step by step: the actions sent, +and the rewards, episode ends, final observations and next observations +received. trace.npz holds them, for localise.py. + +The run directory gets result.json (the final weights' SHA-256, the time +model.learn() took, and the error if the run raised one), monitor.csv (the +trainer's log), episodes.csv (the bridge's log, counted where the rewards +arrive on the trainer's side of the wire), env_record.csv and fault.json (the +client's), client.log, model.zip (the final policy, saved after its hash is +taken, for rendering), and trace.npz with --trace. +""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import pathlib +import subprocess +import sys +import time + +import gymnasium as gym +import numpy as np +import torch +from stable_baselines3 import PPO +from stable_baselines3.common.vec_env import VecEnvWrapper, VecMonitor + +HERE = pathlib.Path(__file__).resolve().parent +sys.path.insert(0, str(HERE)) +from faulty_client import FAULTS as CLIENT_FAULTS # noqa: E402 (E55's copy) + +NUM_ENVS = 16 +ENVS = { + "pendulum": dict( + id="Pendulum-v1", + total=102_400, + action=(1, 2.0), + # plugrl-bridges examples/sb3/ppo.py, preset "pendulum"; E50's. + ppo=dict( + n_steps=256, + gamma=0.9, + gae_lambda=0.95, + n_epochs=10, + ent_coef=0.0, + learning_rate=1e-3, + clip_range=0.2, + use_sde=True, + sde_sample_freq=4, + ), + ), + "halfcheetah": dict( + id="HalfCheetah-v5", + total=409_600, + action=(6, 1.0), + ppo=dict(n_steps=256), + ), +} +LOG_FAULTS = ("log:drop-first", "log:short") +FAULTS = CLIENT_FAULTS + LOG_FAULTS + + +class FaultyLogMonitor(VecMonitor): + """VecMonitor with one fault in the episodes it logs; PPO's data is untouched. + + step_wait is SB3 2.9.0's VecMonitor.step_wait, but for the two marked lines. + """ + + def __init__(self, venv, filename: str, fault: str, dose: str) -> None: + super().__init__(venv, filename=filename) + self.fault, self.dose = fault, dose + self.rng = np.random.default_rng(54) + self.first_reward = np.zeros(self.num_envs, dtype=np.float32) + self.logged = 0 + self.cells = 0 + + def _hit(self) -> bool: + k, u = self.logged, self.rng.random() + self.logged += 1 + return k == 255 if self.dose == "one" else u < float(self.dose) + + def step_wait(self): + starting = self.episode_lengths == 0 + obs, rewards, dones, infos = self.venv.step_wait() + self.first_reward[starting] = rewards[starting] + self.episode_returns += rewards + self.episode_lengths += 1 + new_infos = list(infos[:]) + for i in range(len(dones)): + if dones[i]: + info = infos[i].copy() + episode_return = self.episode_returns[i] + episode_length = self.episode_lengths[i] + if self._hit(): # the fault + self.cells += 1 + if self.fault == "log:drop-first": + episode_return = episode_return - self.first_reward[i] + else: + episode_length = episode_length - 1 + episode_info = { + "r": episode_return, + "l": episode_length, + "t": round(time.time() - self.t_start, 6), + } + for key in self.info_keywords: + episode_info[key] = info[key] + info["episode"] = episode_info + self.episode_count += 1 + self.episode_returns[i] = 0 + self.episode_lengths[i] = 0 + if self.results_writer: + self.results_writer.write_row(episode_info) + new_infos[i] = info + return obs, rewards, dones, new_infos + + +class WireTrace(VecEnvWrapper): + """What crossed the wire, as the trainer saw it; passes everything through.""" + + def __init__(self, venv) -> None: + super().__init__(venv) + self.actions, self.rewards, self.ends, self.truncs = [], [], [], [] + self.finals, self.nexts = [], [] + self.first_obs = None + + def reset(self): + obs = self.venv.reset() + if self.first_obs is None: + self.first_obs = np.array(obs, copy=True) + return obs + + def step_async(self, actions) -> None: + self.actions.append(np.array(actions, dtype=np.float32, copy=True)) + self.venv.step_async(actions) + + def step_wait(self): + obs, rewards, dones, infos = self.venv.step_wait() + final = np.zeros_like(obs) + trunc = np.zeros(len(dones), dtype=np.bool_) + for i in np.flatnonzero(dones): + final[i] = infos[i]["terminal_observation"] + trunc[i] = infos[i]["TimeLimit.truncated"] + self.rewards.append(np.array(rewards, copy=True)) + self.ends.append(np.array(dones, copy=True)) + self.truncs.append(trunc) + self.finals.append(final) + self.nexts.append(np.array(obs, copy=True)) + return obs, rewards, dones, infos + + def save(self, path: pathlib.Path) -> None: + np.savez_compressed( + path, + first_obs=self.first_obs, + actions=np.stack(self.actions), + rewards=np.stack(self.rewards), + ends=np.stack(self.ends), + truncs=np.stack(self.truncs), + finals=np.stack(self.finals), + nexts=np.stack(self.nexts), + ) + + +def weights_sha256(model: PPO) -> str: + h = hashlib.sha256() + for name, tensor in sorted(model.policy.state_dict().items()): + h.update(name.encode()) + h.update(tensor.detach().cpu().contiguous().numpy().tobytes()) + return h.hexdigest() + + +def main() -> int: + p = argparse.ArgumentParser(description=__doc__) + p.add_argument("--env", choices=sorted(ENVS), required=True) + p.add_argument("--fault", choices=FAULTS, required=True) + p.add_argument("--dose", default="1.0") + p.add_argument("--seed", type=int, required=True) + p.add_argument("--out", required=True) + p.add_argument("--port", type=int, default=8854) + p.add_argument("--trace", action="store_true") + p.add_argument("--external-client", action="store_true") + a = p.parse_args() + spec = ENVS[a.env] + out = pathlib.Path(a.out).resolve() + out.mkdir(parents=True, exist_ok=True) + torch.set_num_threads(1) + + from plugrl_bridges.sb3 import PlugRLVecEnv + + dim, high = spec["action"] + client_fault = a.fault if a.fault in CLIENT_FAULTS else "none" + client = None + if not a.external_client: + client_log = open(out / "client.log", "w", encoding="utf-8") + client = subprocess.Popen( + [sys.executable, str(HERE / "faulty_client.py"), "--port", str(a.port), + "--num-envs", str(NUM_ENVS), "--seed", str(a.seed), "--env-id", spec["id"], + "--action-high", str(high), "--fault", client_fault, "--dose", a.dose, + "--record", str(out / "env_record.csv"), + "--ledger", str(out / "ledger.npz")], + stdout=client_log, stderr=subprocess.STDOUT, + ) # fmt: skip + env = PlugRLVecEnv( + num_envs=NUM_ENVS, + action_space=gym.spaces.Box(-high, high, (dim,), np.float32), + port=a.port, + host="0.0.0.0" if a.external_client else "127.0.0.1", + timeout=60.0, + episode_log=str(out / "episodes.csv"), + ) + trace = WireTrace(env) if a.trace else None + inner = trace if trace is not None else env + if a.fault in LOG_FAULTS: + env = FaultyLogMonitor(inner, str(out / "monitor.csv"), a.fault, a.dose) + else: + env = VecMonitor(inner, filename=str(out / "monitor.csv")) + # PPO(seed=) seeds torch and numpy; the client resets env i with seed + i. + model = PPO("MlpPolicy", env, seed=a.seed, device="cpu", verbose=0, **spec["ppo"]) + result = {"env": a.env, "fault": a.fault, "dose": a.dose, "seed": a.seed} + start = time.perf_counter() + try: + model.learn(total_timesteps=spec["total"]) + except Exception as exc: # a fault the bridge rejects ends the run here + result["raised"] = f"{type(exc).__name__}: {exc}" + result.update( + weights_sha256=weights_sha256(model), + learn_s=round(time.perf_counter() - start, 3), + steps=model.num_timesteps, + torch=torch.__version__, + ) + if isinstance(env, FaultyLogMonitor): + result["log_cells"] = env.cells + model.save(out / "model.zip") + if trace is not None: + trace.save(out / "trace.npz") + try: + env.close() + except Exception as exc: + result["close_raised"] = f"{type(exc).__name__}: {exc}" + if client is None: + result["client_rc"] = "external" + else: + try: + result["client_rc"] = client.wait(timeout=60) + except subprocess.TimeoutExpired: + client.kill() + result["client_rc"] = "killed" + (out / "result.json").write_text(json.dumps(result, indent=2) + "\n") + print(json.dumps(result)) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/experiments/e55-step-ledger/verdicts.py b/experiments/e55-step-ledger/verdicts.py new file mode 100644 index 0000000..3da70d2 --- /dev/null +++ b/experiments/e55-step-ledger/verdicts.py @@ -0,0 +1,152 @@ +"""E55: judge PROTOCOL.md's checks and predictions. + + python verdicts.py results # prints, and writes results/verdicts.txt + +Reads, for the same-machine runs, results/ledger.csv (ledger.py) and +results/runs.csv (summarise.py); for the runs across machines, the same two +files under results/cross/. +""" + +from __future__ import annotations + +import csv +import json +import pathlib +import sys + +CONTROLS = ("none", "delay-1ms", "wire-float64") +LOG = ("log:drop-first", "log:short") +E50 = {"0": "ec5b8226", "1": "062e92e3", "2": "3a8d968f"} + + +def read(path: pathlib.Path) -> list[dict]: + with open(path, encoding="utf-8", newline="") as f: + return list(csv.DictReader(f)) + + +def main() -> int: + root = pathlib.Path(sys.argv[1]) if len(sys.argv) > 1 else pathlib.Path("results") + same_l, same_r = read(root / "ledger.csv"), read(root / "runs.csv") + cross_l, cross_r = ( + read(root / "cross" / "ledger.csv"), + read(root / "cross" / "runs.csv"), + ) + out = [] + + def verdict(name: str, ok: bool, detail: str) -> None: + out.append(f"{name}: {'holds' if ok else 'FAILS'} - {detail}") + + def client(rows): + return [ + r + for r in rows + if r["fault"] not in CONTROLS + LOG and r["cells"] not in ("", "0") + ] + + # V1: every run completes. Same machine: runs.csv's complete; across + # machines the client's exit is in its client.log. + v1_bad = [r for r in same_r if r["complete"] != "1"] + cross_bad = [] + for r in cross_r: + run = ( + root + / "cross" + / r["env"] + / r["fault"].replace(":", "__") + / r["dose"] + / f"seed{r['seed']}" + ) + log = (run / "client.log").read_text(encoding="utf-8", errors="replace") + res = json.loads((run / "result.json").read_text()) + if "client exit 0" not in log or res["steps"] != 102_400: + cross_bad.append(r["fault"]) + verdict( + "V1", + not v1_bad and not cross_bad, + f"{len(same_r) - len(v1_bad)} of {len(same_r)} same-machine and " + f"{len(cross_r) - len(cross_bad)} of {len(cross_r)} cross-machine runs complete", + ) + none = {r["seed"]: r["sha"] for r in same_r if r["fault"] == "none"} + verdict( + "V2", + all(none.get(s, "").startswith(h) for s, h in E50.items()), + f"none: {none}", + ) + + c = client(same_l) + p1_bad = [r for r in c if r["caught"] != "1" or r["right"] != "1"] + verdict( + "P1", + not p1_bad, + f"caught and right in {len(c) - len(p1_bad)} of {len(c)} client-fault runs" + + ( + f"; not: {[(r['fault'], r['dose'], r['seed'], r['found']) for r in p1_bad][:6]}" + if p1_bad + else "" + ), + ) + + quiet = [r for r in same_l + cross_l if r["fault"] in CONTROLS + LOG] + p2_bad = [r for r in quiet if r["caught"] != "0"] + verdict( + "P2", + not p2_bad, + f"no difference in {len(quiet) - len(p2_bad)} of {len(quiet)} control and log-fault runs", + ) + + cc = client(cross_l) + cross_faults = {r["fault"] for r in cc} + p3_bad = [r for r in cc if r["caught"] != "1" or r["right"] != "1"] + cross_none = [r for r in cross_l if r["fault"] == "none"] + p3_ok = ( + not p3_bad + and len(cross_faults) == 21 + and all(r["caught"] == "0" for r in cross_none) + and cross_none + ) + verdict( + "P3", + bool(p3_ok), + f"caught and right in {len(cc) - len(p3_bad)} of {len(cc)} cross-machine client-fault runs " + f"({len(cross_faults)} faults); none differs: {[r['caught'] for r in cross_none]}", + ) + + cross_none_sha = [r["sha"] for r in cross_r if r["fault"] == "none"] + verdict( + "P4", + bool(cross_none_sha) and not cross_none_sha[0].startswith(E50["0"]), + f"across machines none ended on {cross_none_sha}, guangzhao's on {E50['0']}", + ) + + def caught_either(ledger_rows, run_rows): + record = {(r["fault"], r["dose"], r["seed"]): r["record"] for r in run_rows} + rows = [ + r + for r in ledger_rows + if r["fault"] not in CONTROLS and r["cells"] not in ("", "0") + ] + miss = [ + r + for r in rows + if r["caught"] != "1" + and record.get((r["fault"], r["dose"], r["seed"])) != "1" + ] + return rows, miss + + rows_s, miss_s = caught_either(same_l, same_r) + rows_c, miss_c = caught_either(cross_l, cross_r) + verdict( + "P5", + not miss_s and not miss_c, + f"ledger or record caught {len(rows_s) - len(miss_s)} of {len(rows_s)} same-machine and " + f"{len(rows_c) - len(miss_c)} of {len(rows_c)} cross-machine runs with a changed value", + ) + + text = "\n".join(out) + print(text) + (root / "verdicts.txt").write_bytes((text + "\n").encode("utf-8")) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main())