diff --git a/experiments/e58-pusher-faults/FINDINGS.md b/experiments/e58-pusher-faults/FINDINGS.md new file mode 100644 index 0000000..67b338e --- /dev/null +++ b/experiments/e58-pusher-faults/FINDINGS.md @@ -0,0 +1,97 @@ +# E58: on a 7-joint arm (Pusher), E54-E57 hold: the curves miss most faults, the step ledger catches and locates every one, and no fault the curves miss leaves a worse policy + +2026-10-03 · guangzhao (E54's `bridges-venv`) · protocol: +[`PROTOCOL.md`](PROTOCOL.md), after the pilots in `results/pilot/`, before +the registered runs · no amendment + +--- + +## The result + +E54's 21 client faults and 2 log faults on Pusher-v5 were run at doses one, +0.01 and 1.0, 409,600 steps each: +- seeds 0-2 were traced, ledgered and evaluated on a clean environment; +- seeds 10-19 were run fault-free; +- 226 runs in all. + +Client-fault runs, 63 at each dose: + +| dose | status rule | strict | byte identity | record | step ledger | harmed (clean) | +| --- | --- | --- | --- | --- | --- | --- | +| one value | 0 | 0 | 63 | 18 | **63** | 0 | +| 0.01 | 3 | 1 | 63 | 18 | **63** | 3 | +| 1.0 | 21 | 31 | 63 | 15 | **63** | 27 | + +Every check and prediction holds (`results/verdicts.txt`): +- **V1:** all 226 runs completed. **V2:** the controls ended on `none`'s + weights at every seed. +- **P1:** byte identity caught 189 of 189 client-fault runs. This includes + the `final-obs` faults: every Pusher episode ends at the time limit, where + SB3 reads the final observation. +- **P2:** the log faults left the weights alone in 18 of 18 runs. +- **P3:** the status rule caught 0 of 69 runs at one value, 3 of 69 at 0.01 + and 21 of 69 at 1.0 (caps 10%, 10%, 60%). +- **P4:** the record caught every run it was predicted to and none it was + predicted to miss. +- **P5:** the bridge's log caught 18 of 18 log-fault runs and 0 of 189 + client-fault runs. +- **P6:** the ledger caught and located 189 of 189 client-fault runs. It + found no difference in 27 of 27 control and log-fault runs. +- **P7:** the ledger or the record caught 207 of 207 runs. +- **P8:** the clean harm rule flagged 0 of the 10 fault-free seeds. +- **P9:** at doses one and 0.01, 3 of 126 runs were harmed. + +--- + +## What it means + +**On an arm, as on the three earlier tasks, the curves miss most faults.** +- One changed value moved the logged final return by a median of 0.7. The + fault-free seeds' standard deviation is 1.9. +- At one value, neither curve check caught any of the 63 runs. +- At every value, 10 faults still passed both curve checks at all three + seeds: + - `obs:f16` and `obs:stale`; + - `action:f16` and `action:stale`; + - `reward:f16` and `reward:stale`; + - all four `final-obs` faults. + +**The step ledger caught and located all of them**, with no fault-free run. + +**No fault that the curves missed left a worse policy.** On a clean +environment, 0 of the 155 runs that passed both curve checks were harmed. +The faults harmed 30 runs, and a curve check had already caught each one: +- `terminated:spurious` at 0.01; +- `action:zero`, `action:swap`, `obs:zero`, `obs:swap` and others at every + value. + +The runs that passed both curve checks had a mean clean return within 0.2 +band standard deviations of the fault-free band at every dose. This is +E57's result again, on a robot arm. + +**The log can lie in plain sight.** With every reward zeroed, the trainer's +log read 0 at every seed. Pusher's rewards are never positive, so 0 is the +best possible return. Yet the policies scored -99, -118 and -129 on a clean +environment, against a band of -31.8 ± 2.1. The status rule caught these +runs, because their log did not rise. + +--- + +## What E58 does not show + +* **A real robot, or images.** Pusher is a simulated arm with state + observations. +* **Any trainer but SB3's PPO.** +* **Across machines.** E58 ran on one machine. + +Kept here, in `results/`: +- `runs.csv`, `by_dose.csv` and `summarise.out`, from `summarise.py`; +- `ledger.csv`; +- `runs.jsonl`, from `merge_runs.py`; +- `verdicts.txt`, from `verdicts.py`; +- `clean_evals.json`: each run's clean return, without the 50 episode returns; +- the source hashes. + +The per-run directories, with each run's 50 clean episodes, are kept on +guangzhao. A run on one machine is deterministic, so rerunning its line of +`jobs.txt` reproduces it. diff --git a/experiments/e58-pusher-faults/PROTOCOL.md b/experiments/e58-pusher-faults/PROTOCOL.md new file mode 100644 index 0000000..b353a69 --- /dev/null +++ b/experiments/e58-pusher-faults/PROTOCOL.md @@ -0,0 +1,157 @@ +# E58 measurement protocol (pre-registered) + +**Written 2026-10-03, 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-E57 used Pendulum, HalfCheetah and Hopper. Reviewers asked for a task +closer to robot learning. Pusher-v5 is a 7-joint arm that pushes an object +to a goal, and its episodes all end at a 100-step time limit. + +**On a robot arm, do E54-E57's findings hold?** +- **The curves:** do the gain threshold and seed spread still miss most + faults? +- **The step ledger:** does it still catch and locate every fault in what + crosses? +- **The clean evaluation:** are the policies behind the faults the curves + miss as good as fault-free ones? + +--- + +## Declared in advance: what was already known + +1. **The code is E56's, with these changes:** + - `train.py` adds `pusher`: Pusher-v5 at SB3's defaults, with 16 x 256 + frames per rollout, for 409,600 steps, as HalfCheetah. + - `jobs.py` runs Pusher. It leaves out E56's `terminated:drop` and + `terminated:as-trunc`: Pusher never terminates, so they have nothing to + change. + - `summarise.py` gives Pusher Hopper's status rule: the mean return of the + last tenth of the trainer's log must beat the first tenth's by at least + **36**. + - `run.sh` evaluates every run's final policy on a clean environment + (`evaluate.py`, E57's, with Pusher-v5): 50 deterministic episodes, seeds + 10000-10049. + - `verdicts.py` is E56's, with three changes: + - P1 covers every client fault; + - P4 drops the two termination faults; + - P8 and P9 judge the clean evaluation. +2. **The budget pilot** (`results/pilot/budget.txt`): fault-free seeds 8 and + 9, 2,048,000 steps, two at a time. + - Over the first 409,600 steps, the last tenth of the log beat the first + tenth by 72.6 and 73.7. The mean return went from about -111 to about + -38. PPO's schedules are constant, so these first 409,600 steps are the + same as a 409,600-step run. + - By 2,048,000 steps the gain was 44.5 and 54.2, and the clean return + about -27. + - The bar of 36 is half the gain at 409,600 steps, as Hopper's bar was. + - A 2,048,000-step run took about 510 s. +3. **The fault pilot**: seed 9, every fault at one value plus the controls, + 409,600 steps, 10 at a time. The outputs are `results/pilot/fault-runs.csv`, + `fault-ledger.csv` and `fault-by-dose.csv`. + - `none`, `delay-1ms` and `wire-float64` ended on `124d4c2b`. `none` + gained 73.7, the same as the budget pilot's first 409,600 steps at seed + 9. + - The status rule caught none of the 23 faults. + - The weights caught all 21 client faults, the four `final-obs` faults + among them. The weights did not catch the two log faults. + - The record caught 8: + - `reward:zero`, `reward:stale` and `reward:swap`; + - `terminated:spurious`, `truncated:drop` and `step:fill`; + - the two log faults. + - The bridge log caught the two log faults only. + - The ledger caught and located all 21 client faults, and found no + difference in the 5 others: 26 of 26 right. + - `none`'s clean return was -32.1. A run took about 114 s, 10 at a time. + +--- + +## Design + +On guangzhao, `bash run.sh results registered 10`, ports 8920-8929: +- Pusher, seeds 0-2: the 3 controls, and the 21 client faults and 2 log + faults at doses one, 0.01 and 1.0. All runs are traced, ledgered and + evaluated. That is 3 x (3 + 69) = 216 runs. +- Pusher, seeds 10-19: fault-free and untraced. They give the strict check's + band and the clean evaluation's band. That is 10 runs. + +226 runs in all. Then `python summarise.py results`, `python merge_runs.py +results`, `python ledger.py results` and `python verdicts.py results`. + +--- + +## How each check is judged + +As in E56, with Pusher's status rule above. The clean evaluation is judged +as in E57: a run is **harmed** if its clean return is more than 3 standard +deviations below the mean of the fault-free seeds 10-19. + +--- + +## Checks that the runs are valid + +- **V1:** every run reaches 409,600 steps, and its client exits 0. +- **V2:** the two controls end on the same weights as `none` at each of + seeds 0-2. + +--- + +## Predictions, and what falsifies each + +**P1 - Byte identity sees every change.** Every client-fault run with a +changed value ends on weights other than `none`'s at its seed. This +includes the `final-obs` faults: every Pusher episode ends at the time limit, +where SB3 bootstraps from the final observation. Falsified by one run on +`none`'s weights. + +**P2 - and nothing else.** The two log faults end on `none`'s weights at +every seed and dose. Falsified by one that does not. + +**P3 - The status rule misses most faults.** Over client- and log-fault runs +with a changed value: +- at doses one and 0.01, the rule catches at most 10% at each dose; +- at dose 1.0, at most 60%. + +Falsified by more at any dose. + +**P4 - Reconciliation sees what changes the books, and only that.** +- It catches every run, at doses 0.01 and 1.0 with a changed value, of: + - `reward:zero`, `reward:stale`, `reward:swap`; + - `terminated:spurious`, `truncated:drop`. +- It catches `step:fill` at 0.01, and both log faults at every dose with a + changed value. +- It catches no run of an `obs`, `action` or `final-obs` fault, or of + `truncated:as-term`. +- Falsified by one run against any of these. + +**P5 - The bridge's log sees only the trainer's side.** It catches every +log-fault run with a changed value and no client-fault run. + +**P6 - The ledger catches and locates every fault in what crosses.** Every +client-fault run with a changed value is caught, and its first difference +is right. There is no difference in any control or log-fault run. + +**P7 - The ledger and the record together catch every silent fault.** + +**P8 - The clean evaluation's harm rule raises few false alarms.** At most +1 of the ten fault-free seeds is flagged, each judged against the other +nine. + +**P9 - Low doses do no measurable harm.** At doses one and 0.01, at most 10% +of client-fault runs are harmed. + +> Grounds: E54-E57 and the pilots. Every Pusher episode ends at the time +> limit, so its final observations are read; that is why P1 covers +> `final-obs`, unlike E56's. P8 and P9 are E57's P1 and P2. + +**Reported, not predicted:** +- the strict check at every dose, and its false alarms; +- how many runs are harmed at each dose, and how many of those were silent + on both curve checks; +- every run's final return, clean return and wall clock. diff --git a/experiments/e58-pusher-faults/evaluate.py b/experiments/e58-pusher-faults/evaluate.py new file mode 100644 index 0000000..616f91c --- /dev/null +++ b/experiments/e58-pusher-faults/evaluate.py @@ -0,0 +1,79 @@ +"""E57: evaluate one run's final policy on a clean environment. + + python evaluate.py RUN_DIR OUT_DIR [--episodes N] + +RUN_DIR is an E54 or E56 run directory (model.zip, result.json). The policy +acts deterministically in a fresh gymnasium environment of the same id, at +its default settings, for N episodes reset with seeds 10000, 10001, ... No +bridge, no env client, no fault. Writes OUT_DIR/clean_eval.json. +""" + +import argparse +import json +import pathlib +import time + +import gymnasium as gym +import numpy as np +import torch +from stable_baselines3 import PPO + +IDS = { + "pendulum": "Pendulum-v1", + "halfcheetah": "HalfCheetah-v5", + "hopper": "Hopper-v5", + "pusher": "Pusher-v5", +} +SEED0 = 10_000 + + +def main() -> int: + ap = argparse.ArgumentParser() + ap.add_argument("run", type=pathlib.Path) + ap.add_argument("out", type=pathlib.Path) + ap.add_argument("--episodes", type=int, default=20) + a = ap.parse_args() + torch.set_num_threads(1) + + res = json.loads((a.run / "result.json").read_text()) + env = gym.make(IDS[res["env"]]) + model = PPO.load(a.run / "model.zip", device="cpu") + + returns, lengths = [], [] + t0 = time.time() + for k in range(a.episodes): + obs, _ = env.reset(seed=SEED0 + k) + done, ret, n = False, 0.0, 0 + while not done: + act, _ = model.predict(obs, deterministic=True) + obs, r, term, trunc, _ = env.step(act) + ret += float(r) + n += 1 + done = term or trunc + returns.append(ret) + lengths.append(n) + + out = dict( + env=res["env"], + fault=res["fault"], + dose=res["dose"], + seed=res["seed"], + weights_sha256=res["weights_sha256"], + episodes=a.episodes, + returns=returns, + lengths=lengths, + mean=float(np.mean(returns)), + eval_s=round(time.time() - t0, 3), + ) + a.out.mkdir(parents=True, exist_ok=True) + (a.out / "clean_eval.json").write_text(json.dumps(out)) + print( + json.dumps( + {k: out[k] for k in ("env", "fault", "dose", "seed", "mean", "eval_s")} + ) + ) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/experiments/e58-pusher-faults/faulty_client.py b/experiments/e58-pusher-faults/faulty_client.py new file mode 100644 index 0000000..c2076cc --- /dev/null +++ b/experiments/e58-pusher-faults/faulty_client.py @@ -0,0 +1,442 @@ +"""E56's env client: E55's faulty_client.py, plus two faults in terminations. + +Hopper ends an episode when it falls, which Pendulum and HalfCheetah never do. Two +faults touch those ends: + terminated:drop a termination is not sent: the client resets, the trainer + sees the episode go on + terminated:as-trunc a termination is sent as a time limit, so the trainer + bootstraps from a state the episode cannot leave +Everything below is E55's, unchanged. + +E55's docstring: + +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") + + ("terminated:drop", "terminated:as-trunc") +) +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) + elif fault == "terminated:drop": + hit = select.hits(steps, terminated) + terminated = terminated & ~hit + tally(hit) + elif fault == "terminated:as-trunc": + hit = select.hits(steps, terminated) + 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/e58-pusher-faults/jobs.py b/experiments/e58-pusher-faults/jobs.py new file mode 100644 index 0000000..6c735a9 --- /dev/null +++ b/experiments/e58-pusher-faults/jobs.py @@ -0,0 +1,51 @@ +"""E58's runs, one line each: env fault dose seed trace [total]. + + python jobs.py registered > jobs.txt + python jobs.py pilot > jobs.txt + python jobs.py budget > jobs.txt + +registered (PROTOCOL.md): Pusher, seeds 0-2, every run traced and ledgered: +the 3 controls, and E54's 21 client faults and 2 log faults at doses one, +0.01 and 1.0. E56's two termination faults are left out: Pusher never +terminates, so they have nothing to change. Seeds 10-19 fault-free, for the +strict check's band. +pilot: seed 9, the controls and every fault at one value. +budget: fault-free seeds 8 and 9, untraced, at 2,048,000 steps, to fix the +budget and the status rule's bar. +""" + +from __future__ import annotations + +import sys + +from faulty_client import CONTROLS, SILENT + +LOG = ("log:drop-first", "log:short") +DOSES = ("one", "0.01", "1.0") +NO_TERMINATIONS = ("terminated:drop", "terminated:as-trunc") +FAULTS = tuple(f for f in SILENT if f not in NO_TERMINATIONS) + LOG + + +def pusher(seed: int, doses=DOSES) -> list[str]: + jobs = [f"pusher {c} 1.0 {seed} trace" for c in CONTROLS] + jobs += [f"pusher {f} {d} {seed} trace" for f in FAULTS 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 pusher(seed)] + jobs += [f"pusher none 1.0 {s} notrace" for s in range(10, 20)] + elif which == "pilot": + jobs = pusher(9, doses=("one",)) + elif which == "budget": + jobs = [f"pusher none 1.0 {s} notrace 2048000" for s in (8, 9)] + else: + raise SystemExit(f"unknown: {which}") + print("\n".join(jobs)) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/experiments/e58-pusher-faults/ledger.py b/experiments/e58-pusher-faults/ledger.py new file mode 100644 index 0000000..113c5c7 --- /dev/null +++ b/experiments/e58-pusher-faults/ledger.py @@ -0,0 +1,190 @@ +"""E56: E55's ledger.py, judging one run at a time. + + python ledger.py --run results/hopper/obs__stale/one/seed0 # writes its ledger.json + python ledger.py results # writes results/ledger.csv + +Hopper's traces are too large to keep, so run.sh judges each run as it ends, +keeps ledger.json, and deletes trace.npz and ledger.npz. The summary reads +ledger.json where there is one. Two faults are E56's: terminated:drop shows +in the episode end, terminated:as-trunc in the time limit. + +E55's docstring: + +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",), + "terminated:drop": ("end",), + "terminated:as-trunc": ("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 judge(run: pathlib.Path, root: pathlib.Path) -> dict: + 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(run / "trace.npz"), load(run / "ledger.npz")) + 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) + ) + return 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), + ) + + +def main() -> int: + if len(sys.argv) > 2 and sys.argv[1] == "--run": + run = pathlib.Path(sys.argv[2]) + row = judge(run, run.parent.parent.parent.parent) + (run / "ledger.json").write_text(json.dumps(row) + "\n") + print(row) + return 0 + root = pathlib.Path(sys.argv[1]) if len(sys.argv) > 1 else pathlib.Path("results") + rows = [] + for res in sorted(root.glob("*/*/*/seed*/result.json")): + run = res.parent + if (run / "ledger.json").exists(): + rows.append(json.loads((run / "ledger.json").read_text())) + elif (run / "trace.npz").exists() and (run / "ledger.npz").exists(): + rows.append(judge(run, root)) + 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/e58-pusher-faults/merge_runs.py b/experiments/e58-pusher-faults/merge_runs.py new file mode 100644 index 0000000..490ece7 --- /dev/null +++ b/experiments/e58-pusher-faults/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/e58-pusher-faults/results/bridges-src.sha256 b/experiments/e58-pusher-faults/results/bridges-src.sha256 new file mode 100644 index 0000000..755002f --- /dev/null +++ b/experiments/e58-pusher-faults/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/e58-pusher-faults/results/by_dose.csv b/experiments/e58-pusher-faults/results/by_dose.csv new file mode 100644 index 0000000..1e8ac68 --- /dev/null +++ b/experiments/e58-pusher-faults/results/by_dose.csv @@ -0,0 +1,10 @@ +env,kind,dose,runs,raises,rule,strict,weights,record,bridge,either +pusher,client,one,63,0.0,0.0,0.0,1.0,0.286,0.0,1.0 +pusher,client,0.01,63,0.0,0.048,0.016,1.0,0.286,0.0,1.0 +pusher,client,1.0,63,0.0,0.333,0.492,1.0,0.238,0.0,1.0 +pusher,log,one,6,0.0,0.0,0.0,0.0,1.0,1.0,1.0 +pusher,log,0.01,6,0.0,0.0,0.0,0.0,1.0,1.0,1.0 +pusher,log,1.0,6,0.0,0.0,0.0,0.0,1.0,1.0,1.0 +pusher,all,one,69,0.0,0.0,0.0,0.913,0.348,0.087,1.0 +pusher,all,0.01,69,0.0,0.043,0.014,0.913,0.348,0.087,1.0 +pusher,all,1.0,69,0.0,0.304,0.449,0.913,0.304,0.087,1.0 diff --git a/experiments/e58-pusher-faults/results/clean_evals.json b/experiments/e58-pusher-faults/results/clean_evals.json new file mode 100644 index 0000000..7af050a --- /dev/null +++ b/experiments/e58-pusher-faults/results/clean_evals.json @@ -0,0 +1 @@ +[{"env": "pusher", "fault": "action:clip", "dose": "0.01", "seed": 0, "weights_sha256": "bb93edf241f5d25c1a24f87f5ce535b6d037da68bda9adc50f7a34f3d6a338c3", "episodes": 50, "mean": -31.447011966916506, "eval_s": 0.732}, {"env": "pusher", "fault": "action:clip", "dose": "0.01", "seed": 1, "weights_sha256": "db00e2502238011fb284f1b63ef1ae1e8fba639a4deb88620124834457ea041c", "episodes": 50, "mean": -35.26429935084487, "eval_s": 0.699}, {"env": "pusher", "fault": "action:clip", "dose": "0.01", "seed": 2, "weights_sha256": "0210e9ad0a86500f779c3f45e5e6fcfddb062e53ce702fadadc44f533c12625a", "episodes": 50, "mean": -31.836574868933326, "eval_s": 0.701}, {"env": "pusher", "fault": "action:clip", "dose": "1.0", "seed": 0, "weights_sha256": "202cf1226d3db6e35e36b6690df7ce25c811e79ca6cd092a1a7678f9972ab2ac", "episodes": 50, "mean": -32.53649558275145, "eval_s": 0.72}, {"env": "pusher", "fault": "action:clip", "dose": "1.0", "seed": 1, "weights_sha256": "34f2f02e548754baa04fd251dee9825ae133eb4dc9ef4a3408c72c92fd830567", "episodes": 50, "mean": -35.49792798269563, "eval_s": 0.688}, {"env": "pusher", "fault": "action:clip", "dose": "1.0", "seed": 2, "weights_sha256": "a2062b9041be15580b9a4e75736008dd8efe415c034c57e38c695bd170e786b2", "episodes": 50, "mean": -37.01754893736354, "eval_s": 0.607}, {"env": "pusher", "fault": "action:clip", "dose": "one", "seed": 0, "weights_sha256": "0ca4515f803d4e8e05871776005b4e98b735378b8d3a279818608a052b8240d6", "episodes": 50, "mean": -33.76315488596485, "eval_s": 0.663}, {"env": "pusher", "fault": "action:clip", "dose": "one", "seed": 1, "weights_sha256": "8b072c45ebf1d5bc933800cb3046d4483c0939b371a2ca375a8f7050104acfb3", "episodes": 50, "mean": -34.46781472833612, "eval_s": 0.619}, {"env": "pusher", "fault": "action:clip", "dose": "one", "seed": 2, "weights_sha256": "26e62156df96027440ece7ab4baeb15ae21a23f356067adfe6dcdb501e5d49f2", "episodes": 50, "mean": -27.555488544763815, "eval_s": 0.726}, {"env": "pusher", "fault": "action:f16", "dose": "0.01", "seed": 0, "weights_sha256": "f52ff136cde2960f727915e52f2c6a8abee8332a92561c5a4c18921b1b1f4a09", "episodes": 50, "mean": -31.5641323730439, "eval_s": 0.703}, {"env": "pusher", "fault": "action:f16", "dose": "0.01", "seed": 1, "weights_sha256": "92859ad79f668db73c9d75ca1217a5577f05044494aa60b388333bdcc88e1319", "episodes": 50, "mean": -32.51678860375691, "eval_s": 0.687}, {"env": "pusher", "fault": "action:f16", "dose": "0.01", "seed": 2, "weights_sha256": "466ced8d0fc7c2bf9ac05d10ac79303bea1042f86eba56dea02d4305fa959fd0", "episodes": 50, "mean": -28.785961017329615, "eval_s": 0.71}, {"env": "pusher", "fault": "action:f16", "dose": "1.0", "seed": 0, "weights_sha256": "5cf67b6aee2e719261c0bc559dbc286bc5deac24b9d78d024ed9768cfffcb565", "episodes": 50, "mean": -29.23402748459603, "eval_s": 0.693}, {"env": "pusher", "fault": "action:f16", "dose": "1.0", "seed": 1, "weights_sha256": "b33ad42859374786551cdb82f5c437abc870496b019f3231a96508e27d86601e", "episodes": 50, "mean": -33.17836911865865, "eval_s": 0.642}, {"env": "pusher", "fault": "action:f16", "dose": "1.0", "seed": 2, "weights_sha256": "2a82b95962d185115c95a01b1626d603b918e78c3e5aad81c42ab0c06d0500fa", "episodes": 50, "mean": -28.481021286134947, "eval_s": 0.751}, {"env": "pusher", "fault": "action:f16", "dose": "one", "seed": 0, "weights_sha256": "c44e9e7448ed3095d35bab5a2441f6a4f88166e9bc342a1bf509499e970abd8d", "episodes": 50, "mean": -31.343086393056716, "eval_s": 0.684}, {"env": "pusher", "fault": "action:f16", "dose": "one", "seed": 1, "weights_sha256": "3b5005107179be765672f9eb75765aebb211709fcf205d789a46fd50dea2f644", "episodes": 50, "mean": -32.51522300377194, "eval_s": 0.694}, {"env": "pusher", "fault": "action:f16", "dose": "one", "seed": 2, "weights_sha256": "3fcef215b21aa54d922007a0071559f84d5f3e79178c36afe88ec7373f17fcbd", "episodes": 50, "mean": -29.758878179870656, "eval_s": 0.707}, {"env": "pusher", "fault": "action:stale", "dose": "0.01", "seed": 0, "weights_sha256": "23f36e67050c045b85deb888704190ac0844456b906121d5b173b0079eb1080a", "episodes": 50, "mean": -32.97664969061052, "eval_s": 0.709}, {"env": "pusher", "fault": "action:stale", "dose": "0.01", "seed": 1, "weights_sha256": "e5ea3a189a68fbaaa18e9ab70b8a2a08856d3dbbaaa163644cae5bbff384db47", "episodes": 50, "mean": -34.55073881849284, "eval_s": 0.67}, {"env": "pusher", "fault": "action:stale", "dose": "0.01", "seed": 2, "weights_sha256": "389ebe06fb6d809e5547034c04c4f1f502c386142d046e919f5f39baeb0e28dc", "episodes": 50, "mean": -29.238114065684258, "eval_s": 0.727}, {"env": "pusher", "fault": "action:stale", "dose": "1.0", "seed": 0, "weights_sha256": "3519c5ea499864cfd4d5d00f89a82d65ef0ecc76e18433d50a52abed206366d2", "episodes": 50, "mean": -31.618605263594944, "eval_s": 0.698}, {"env": "pusher", "fault": "action:stale", "dose": "1.0", "seed": 1, "weights_sha256": "bf21004820996e6759c895f63eeb4b5dc0a952a8e3a0a12d230f017b6c02cdd0", "episodes": 50, "mean": -33.95047830444393, "eval_s": 0.67}, {"env": "pusher", "fault": "action:stale", "dose": "1.0", "seed": 2, "weights_sha256": "158cadd1e61d5b31bba303341484ce18ebf6e6a3455a7b391ed887c4a0d83999", "episodes": 50, "mean": -30.889675508361584, "eval_s": 0.717}, {"env": "pusher", "fault": "action:stale", "dose": "one", "seed": 0, "weights_sha256": "1276c71755fbb5936a361d635f29b34fa0e68abde2cf260fdaa0303db2ea87bb", "episodes": 50, "mean": -33.66479392928786, "eval_s": 0.604}, {"env": "pusher", "fault": "action:stale", "dose": "one", "seed": 1, "weights_sha256": "e230ac05b8c1f919dec71c5c396315882ccbd8b6e262f55f24ead025f91aa3fc", "episodes": 50, "mean": -34.534553652921474, "eval_s": 0.616}, {"env": "pusher", "fault": "action:stale", "dose": "one", "seed": 2, "weights_sha256": "874214dd60208f080e3f873170fbd9d7e561ee898d1ec7f558913fa4784b15b6", "episodes": 50, "mean": -27.884685597117194, "eval_s": 0.711}, {"env": "pusher", "fault": "action:swap", "dose": "0.01", "seed": 0, "weights_sha256": "6b9d1222db0b6c1128d7080852c0905541fdd4cc73c5233c9038895322619114", "episodes": 50, "mean": -32.55054068043529, "eval_s": 0.741}, {"env": "pusher", "fault": "action:swap", "dose": "0.01", "seed": 1, "weights_sha256": "26e557cd04d83de54df8a9012c68a9e29c31d133dd2ef4654c40c65e24b888ab", "episodes": 50, "mean": -31.974261215250927, "eval_s": 0.685}, {"env": "pusher", "fault": "action:swap", "dose": "0.01", "seed": 2, "weights_sha256": "46050b0857d01f30291f7e5cd92437a870daa4e24393304f1819fa6466b972ef", "episodes": 50, "mean": -33.6722867594491, "eval_s": 0.734}, {"env": "pusher", "fault": "action:swap", "dose": "1.0", "seed": 0, "weights_sha256": "9570f31f0df8ec34b233fe28f26119ec488bfc7ea09953c2e5bf3d16ff18695b", "episodes": 50, "mean": -78.9500125586235, "eval_s": 0.538}, {"env": "pusher", "fault": "action:swap", "dose": "1.0", "seed": 1, "weights_sha256": "5e83920bd7ebdf3754a8932ed3c5a43f73003252eec238a875f34e2f4ee18f01", "episodes": 50, "mean": -70.80008534993836, "eval_s": 0.523}, {"env": "pusher", "fault": "action:swap", "dose": "1.0", "seed": 2, "weights_sha256": "4c8cee2903ab9ca6cf55ca6599eb86b1329d3b10d4ba139f7a2b17ccfedb9c71", "episodes": 50, "mean": -81.90521739083302, "eval_s": 0.524}, {"env": "pusher", "fault": "action:swap", "dose": "one", "seed": 0, "weights_sha256": "c26509dcfffc52c9d4865bd53241ef31a4b09d4d857c84e889721bd7119c6253", "episodes": 50, "mean": -30.022490695824594, "eval_s": 0.717}, {"env": "pusher", "fault": "action:swap", "dose": "one", "seed": 1, "weights_sha256": "5208f61705fc6e940d6e04337e68f789f08a12bbc9ac12eec091353b9dc5742c", "episodes": 50, "mean": -34.62302191431946, "eval_s": 0.679}, {"env": "pusher", "fault": "action:swap", "dose": "one", "seed": 2, "weights_sha256": "d2c2f5357c8cc38482c38e2c33a1e87c3ab443d43e19dbc5b1877341cb6302f9", "episodes": 50, "mean": -27.861653400534056, "eval_s": 0.736}, {"env": "pusher", "fault": "action:zero", "dose": "0.01", "seed": 0, "weights_sha256": "c7814f1f3b6f31cc3f5ff91132b23cc89172eabb9ead2502dbab33ed9f807509", "episodes": 50, "mean": -34.36681662443126, "eval_s": 0.687}, {"env": "pusher", "fault": "action:zero", "dose": "0.01", "seed": 1, "weights_sha256": "58d7a217777f72ea97be982dc18419055b0836a67bdbb06b2b1765abc6c06433", "episodes": 50, "mean": -30.035180552007986, "eval_s": 0.734}, {"env": "pusher", "fault": "action:zero", "dose": "0.01", "seed": 2, "weights_sha256": "3c10ac38a63c23a0657abbbff1909e44d5647b515c8d4c139c27cee3912f7545", "episodes": 50, "mean": -29.728131474386117, "eval_s": 0.714}, {"env": "pusher", "fault": "action:zero", "dose": "1.0", "seed": 0, "weights_sha256": "53f13dcfa96a5b1c3b5b5c3ff169e1f51896a6e78db3b63dcbe5389153d3541a", "episodes": 50, "mean": -119.98552591238396, "eval_s": 0.544}, {"env": "pusher", "fault": "action:zero", "dose": "1.0", "seed": 1, "weights_sha256": "09ad1e814757821c3287f709a969e4e86b51c79f22d662248f57ad98cca1a862", "episodes": 50, "mean": -117.66787955674164, "eval_s": 0.522}, {"env": "pusher", "fault": "action:zero", "dose": "1.0", "seed": 2, "weights_sha256": "d9762f7283b8b0399290965e96d77755f971df7356b7d87be7655347f979d481", "episodes": 50, "mean": -128.5793694672503, "eval_s": 0.527}, {"env": "pusher", "fault": "action:zero", "dose": "one", "seed": 0, "weights_sha256": "ac0e58dadb80ff873edef3c226eb5df3708c3f9abc815b03c241072cad2e88a4", "episodes": 50, "mean": -34.101245485558636, "eval_s": 0.62}, {"env": "pusher", "fault": "action:zero", "dose": "one", "seed": 1, "weights_sha256": "2f02d40aa301a438331ee72415998f9aa1ea274081325462947b2e18ef67ac5c", "episodes": 50, "mean": -34.05222506205416, "eval_s": 0.669}, {"env": "pusher", "fault": "action:zero", "dose": "one", "seed": 2, "weights_sha256": "a7cac94d818f73f0d723809f420a60d0ce27eddbb666cca9d7881e1cc75322a2", "episodes": 50, "mean": -28.212103639068076, "eval_s": 0.737}, {"env": "pusher", "fault": "delay-1ms", "dose": "1.0", "seed": 0, "weights_sha256": "d41e519b18c6944f218f4b10dd51ad62c601829e5d3f66094a3830b499c9a78f", "episodes": 50, "mean": -33.65397106893416, "eval_s": 0.646}, {"env": "pusher", "fault": "delay-1ms", "dose": "1.0", "seed": 1, "weights_sha256": "658351831b2fa3fd07566569396f5e45be86787fa4bf3a5883de9bf864069b1e", "episodes": 50, "mean": -35.986279527542, "eval_s": 0.634}, {"env": "pusher", "fault": "delay-1ms", "dose": "1.0", "seed": 2, "weights_sha256": "6126b462a85d0cb323c333b804f327de0d7eb6e90f04805189397e884597aa17", "episodes": 50, "mean": -29.066576978421782, "eval_s": 0.748}, {"env": "pusher", "fault": "final-obs:f16", "dose": "0.01", "seed": 0, "weights_sha256": "d34f565041ad592969a1b21bd29924653caecc1640453555310dfcde15344a20", "episodes": 50, "mean": -35.791931181270954, "eval_s": 0.636}, {"env": "pusher", "fault": "final-obs:f16", "dose": "0.01", "seed": 1, "weights_sha256": "d30477b2295fa680075e397e6b5d145c723337fe8084eeb4f92ceb206848ef89", "episodes": 50, "mean": -30.91596704276253, "eval_s": 0.732}, {"env": "pusher", "fault": "final-obs:f16", "dose": "0.01", "seed": 2, "weights_sha256": "dec16a47fd45a864eb2b7836c9b055a4ca78e4a2636b41d86240c24e425050dd", "episodes": 50, "mean": -28.611857283067234, "eval_s": 0.71}, {"env": "pusher", "fault": "final-obs:f16", "dose": "1.0", "seed": 0, "weights_sha256": "198720bf3cd8808bf2cbf85c0176036e78fad1ada9968bb15308a83f460eaa49", "episodes": 50, "mean": -34.31645334410648, "eval_s": 0.603}, {"env": "pusher", "fault": "final-obs:f16", "dose": "1.0", "seed": 1, "weights_sha256": "7d59d79f20134b088e0ef45f0625264d22f362ea09c10a40ff716de9cb11f617", "episodes": 50, "mean": -34.5773099512722, "eval_s": 0.652}, {"env": "pusher", "fault": "final-obs:f16", "dose": "1.0", "seed": 2, "weights_sha256": "d2823663f18dd2b331e32b8826a728118b032c681f92c3f06155a8cab7dcc78d", "episodes": 50, "mean": -28.638604639026408, "eval_s": 0.72}, {"env": "pusher", "fault": "final-obs:f16", "dose": "one", "seed": 0, "weights_sha256": "df88466a8e3698dcfcb4a940b2fa97afc1aa7566d96c187b0ff36f2b787602c3", "episodes": 50, "mean": -31.024568279611863, "eval_s": 0.725}, {"env": "pusher", "fault": "final-obs:f16", "dose": "one", "seed": 1, "weights_sha256": "d0869b0179ead805772aafbb5a15394e4922ddb2f9b088f6263ba22620ae7553", "episodes": 50, "mean": -34.143063878258516, "eval_s": 0.646}, {"env": "pusher", "fault": "final-obs:f16", "dose": "one", "seed": 2, "weights_sha256": "4b6a4539ca64a08616e027629120ee5f88b271369df46b00c0a1c35dcd2f82ba", "episodes": 50, "mean": -29.8609818648823, "eval_s": 0.721}, {"env": "pusher", "fault": "final-obs:stale", "dose": "0.01", "seed": 0, "weights_sha256": "e4480b9a79a7e94b396fb8d50771d9252cd97b457c90991d7ba456e2e05452a5", "episodes": 50, "mean": -34.33433394724321, "eval_s": 0.677}, {"env": "pusher", "fault": "final-obs:stale", "dose": "0.01", "seed": 1, "weights_sha256": "c4577c1b964351e770dd1c81b5bf4b3bbf459568444d3038ba84ec65588810b8", "episodes": 50, "mean": -34.863958616922766, "eval_s": 0.678}, {"env": "pusher", "fault": "final-obs:stale", "dose": "0.01", "seed": 2, "weights_sha256": "1ae87e5006d57db6dc3076b3da7f7126e2a58a614990e37e20159867947084b1", "episodes": 50, "mean": -30.754861791264673, "eval_s": 0.717}, {"env": "pusher", "fault": "final-obs:stale", "dose": "1.0", "seed": 0, "weights_sha256": "5e32f14158e34d2b7cf7b7f6abb7b44a81ae560600cd9d06f51578f78f1eeb5b", "episodes": 50, "mean": -33.3431154668977, "eval_s": 0.749}, {"env": "pusher", "fault": "final-obs:stale", "dose": "1.0", "seed": 1, "weights_sha256": "6df743b0c4dadeb9ba322d6acabfbdcc0ac258526c26faf0ed67f0a28f3c6d00", "episodes": 50, "mean": -35.60369054332457, "eval_s": 0.634}, {"env": "pusher", "fault": "final-obs:stale", "dose": "1.0", "seed": 2, "weights_sha256": "08f7e594ebb730470b3ab82826999a3af44bca73d7a33f53fb30d537f835a6f3", "episodes": 50, "mean": -28.166868382136386, "eval_s": 0.732}, {"env": "pusher", "fault": "final-obs:stale", "dose": "one", "seed": 0, "weights_sha256": "11e0a24cf8d267fa6c48b923c3724919efbc716581dd40c14fca6f6fc9b93092", "episodes": 50, "mean": -30.979389326839577, "eval_s": 0.729}, {"env": "pusher", "fault": "final-obs:stale", "dose": "one", "seed": 1, "weights_sha256": "73ebe5d6fc3ad20c71cfcf94254cd62b55a5cd52888e8529399be6fad4985c9a", "episodes": 50, "mean": -35.49464039668343, "eval_s": 0.687}, {"env": "pusher", "fault": "final-obs:stale", "dose": "one", "seed": 2, "weights_sha256": "109051eabe8782e8229e89879a1b085a2b74c8ff2bb0ca62118841fa157654a4", "episodes": 50, "mean": -28.72071723124395, "eval_s": 0.714}, {"env": "pusher", "fault": "final-obs:swap", "dose": "0.01", "seed": 0, "weights_sha256": "9fc2883233f20bb46539163f1fb7f7bf9afe9a6e562d1c71521b627ff91ce06f", "episodes": 50, "mean": -31.493847907538342, "eval_s": 0.729}, {"env": "pusher", "fault": "final-obs:swap", "dose": "0.01", "seed": 1, "weights_sha256": "f97e630ad4476dc83ca73fa0ba7bbf54653c30286bab75daff17995b5c0f32b5", "episodes": 50, "mean": -32.54908420341137, "eval_s": 0.679}, {"env": "pusher", "fault": "final-obs:swap", "dose": "0.01", "seed": 2, "weights_sha256": "15bfc4ec514879434126f1406e70587f4ab2ce1443a0a68578b5c167b00e0e47", "episodes": 50, "mean": -29.79838047210744, "eval_s": 0.713}, {"env": "pusher", "fault": "final-obs:swap", "dose": "1.0", "seed": 0, "weights_sha256": "1aa03a8b05be74c0e51a4de442a6090e7bb3902081cc3589f6bad901c8b1f74e", "episodes": 50, "mean": -31.369649311298602, "eval_s": 0.71}, {"env": "pusher", "fault": "final-obs:swap", "dose": "1.0", "seed": 1, "weights_sha256": "fcf8f384ccbffa974000e2b48eca26e3c129a9bd83eb77cafd8ce048d26474ca", "episodes": 50, "mean": -30.100291526169812, "eval_s": 0.737}, {"env": "pusher", "fault": "final-obs:swap", "dose": "1.0", "seed": 2, "weights_sha256": "55fc13302a3fab34e44c6aee9c0d07b803875f0b33ddf74691706ee7e15d3059", "episodes": 50, "mean": -29.76864082456018, "eval_s": 0.744}, {"env": "pusher", "fault": "final-obs:swap", "dose": "one", "seed": 0, "weights_sha256": "7c54c40d3723a53d083b540e2650e0cb49a46654fcf2f205a29fcd5b74b3e7fb", "episodes": 50, "mean": -33.79220276676423, "eval_s": 0.636}, {"env": "pusher", "fault": "final-obs:swap", "dose": "one", "seed": 1, "weights_sha256": "47bb52c26abb47f8c1521a408106daacb94c127239562bfe349216517f590695", "episodes": 50, "mean": -35.58774079313606, "eval_s": 0.65}, {"env": "pusher", "fault": "final-obs:swap", "dose": "one", "seed": 2, "weights_sha256": "4d16aff8643c257c87da0b37d0a22875a487faf29a6b12ffcc40197d7aa3bd85", "episodes": 50, "mean": -29.06773468501222, "eval_s": 0.733}, {"env": "pusher", "fault": "final-obs:zero", "dose": "0.01", "seed": 0, "weights_sha256": "b001da1e18fc590e33a51845998260baa7913ad733967fd310e0e05a3df327c0", "episodes": 50, "mean": -32.1266462645385, "eval_s": 0.753}, {"env": "pusher", "fault": "final-obs:zero", "dose": "0.01", "seed": 1, "weights_sha256": "a3ef511257fbbeeabbfc3d8d74312263449e38ddd29b2fd022407d9d058fa2ce", "episodes": 50, "mean": -33.695594974753426, "eval_s": 0.685}, {"env": "pusher", "fault": "final-obs:zero", "dose": "0.01", "seed": 2, "weights_sha256": "a602ec729158cf121842b2e78b111a7fa8694f803a17a9c0f53740b1550a70d8", "episodes": 50, "mean": -32.459370993113836, "eval_s": 0.714}, {"env": "pusher", "fault": "final-obs:zero", "dose": "1.0", "seed": 0, "weights_sha256": "00fc8b3c517ebaff59e157773c65cc9b13bdcda011a208f2f47542efda48b45e", "episodes": 50, "mean": -34.23230547734481, "eval_s": 0.721}, {"env": "pusher", "fault": "final-obs:zero", "dose": "1.0", "seed": 1, "weights_sha256": "01f0ea0cd1abb0a8934357b381e7d51cac0fbdab87d60c2504090269deb851d4", "episodes": 50, "mean": -35.65068266670503, "eval_s": 0.633}, {"env": "pusher", "fault": "final-obs:zero", "dose": "1.0", "seed": 2, "weights_sha256": "eee04bbb5020559bad2d8453d080a3b97a02f44a01919b1e72af892043ef3785", "episodes": 50, "mean": -36.21175006354842, "eval_s": 0.637}, {"env": "pusher", "fault": "final-obs:zero", "dose": "one", "seed": 0, "weights_sha256": "6710829a8b431c36222cbbab82382c31641589400645a20b9d1762d5e221f4ee", "episodes": 50, "mean": -32.17988929019879, "eval_s": 0.748}, {"env": "pusher", "fault": "final-obs:zero", "dose": "one", "seed": 1, "weights_sha256": "bd613efd2cf082ab69ed4e7a79083bc52a2d17c4175d1c8e3c08ffcd0803b336", "episodes": 50, "mean": -34.37106812327054, "eval_s": 0.651}, {"env": "pusher", "fault": "final-obs:zero", "dose": "one", "seed": 2, "weights_sha256": "5404de0695963a187a9595b80ea891fe1bb2489a5360f8f8a2c489b3b7881671", "episodes": 50, "mean": -28.675790383662573, "eval_s": 0.728}, {"env": "pusher", "fault": "log:drop-first", "dose": "0.01", "seed": 0, "weights_sha256": "d41e519b18c6944f218f4b10dd51ad62c601829e5d3f66094a3830b499c9a78f", "episodes": 50, "mean": -33.65397106893416, "eval_s": 0.653}, {"env": "pusher", "fault": "log:drop-first", "dose": "0.01", "seed": 1, "weights_sha256": "658351831b2fa3fd07566569396f5e45be86787fa4bf3a5883de9bf864069b1e", "episodes": 50, "mean": -35.986279527542, "eval_s": 0.658}, {"env": "pusher", "fault": "log:drop-first", "dose": "0.01", "seed": 2, "weights_sha256": "6126b462a85d0cb323c333b804f327de0d7eb6e90f04805189397e884597aa17", "episodes": 50, "mean": -29.066576978421782, "eval_s": 0.712}, {"env": "pusher", "fault": "log:drop-first", "dose": "1.0", "seed": 0, "weights_sha256": "d41e519b18c6944f218f4b10dd51ad62c601829e5d3f66094a3830b499c9a78f", "episodes": 50, "mean": -33.65397106893416, "eval_s": 0.635}, {"env": "pusher", "fault": "log:drop-first", "dose": "1.0", "seed": 1, "weights_sha256": "658351831b2fa3fd07566569396f5e45be86787fa4bf3a5883de9bf864069b1e", "episodes": 50, "mean": -35.986279527542, "eval_s": 0.643}, {"env": "pusher", "fault": "log:drop-first", "dose": "1.0", "seed": 2, "weights_sha256": "6126b462a85d0cb323c333b804f327de0d7eb6e90f04805189397e884597aa17", "episodes": 50, "mean": -29.066576978421782, "eval_s": 0.738}, {"env": "pusher", "fault": "log:drop-first", "dose": "one", "seed": 0, "weights_sha256": "d41e519b18c6944f218f4b10dd51ad62c601829e5d3f66094a3830b499c9a78f", "episodes": 50, "mean": -33.65397106893416, "eval_s": 0.638}, {"env": "pusher", "fault": "log:drop-first", "dose": "one", "seed": 1, "weights_sha256": "658351831b2fa3fd07566569396f5e45be86787fa4bf3a5883de9bf864069b1e", "episodes": 50, "mean": -35.986279527542, "eval_s": 0.643}, {"env": "pusher", "fault": "log:drop-first", "dose": "one", "seed": 2, "weights_sha256": "6126b462a85d0cb323c333b804f327de0d7eb6e90f04805189397e884597aa17", "episodes": 50, "mean": -29.066576978421782, "eval_s": 0.718}, {"env": "pusher", "fault": "log:short", "dose": "0.01", "seed": 0, "weights_sha256": "d41e519b18c6944f218f4b10dd51ad62c601829e5d3f66094a3830b499c9a78f", "episodes": 50, "mean": -33.65397106893416, "eval_s": 0.636}, {"env": "pusher", "fault": "log:short", "dose": "0.01", "seed": 1, "weights_sha256": "658351831b2fa3fd07566569396f5e45be86787fa4bf3a5883de9bf864069b1e", "episodes": 50, "mean": -35.986279527542, "eval_s": 0.645}, {"env": "pusher", "fault": "log:short", "dose": "0.01", "seed": 2, "weights_sha256": "6126b462a85d0cb323c333b804f327de0d7eb6e90f04805189397e884597aa17", "episodes": 50, "mean": -29.066576978421782, "eval_s": 0.724}, {"env": "pusher", "fault": "log:short", "dose": "1.0", "seed": 0, "weights_sha256": "d41e519b18c6944f218f4b10dd51ad62c601829e5d3f66094a3830b499c9a78f", "episodes": 50, "mean": -33.65397106893416, "eval_s": 0.639}, {"env": "pusher", "fault": "log:short", "dose": "1.0", "seed": 1, "weights_sha256": "658351831b2fa3fd07566569396f5e45be86787fa4bf3a5883de9bf864069b1e", "episodes": 50, "mean": -35.986279527542, "eval_s": 0.636}, {"env": "pusher", "fault": "log:short", "dose": "1.0", "seed": 2, "weights_sha256": "6126b462a85d0cb323c333b804f327de0d7eb6e90f04805189397e884597aa17", "episodes": 50, "mean": -29.066576978421782, "eval_s": 0.735}, {"env": "pusher", "fault": "log:short", "dose": "one", "seed": 0, "weights_sha256": "d41e519b18c6944f218f4b10dd51ad62c601829e5d3f66094a3830b499c9a78f", "episodes": 50, "mean": -33.65397106893416, "eval_s": 0.652}, {"env": "pusher", "fault": "log:short", "dose": "one", "seed": 1, "weights_sha256": "658351831b2fa3fd07566569396f5e45be86787fa4bf3a5883de9bf864069b1e", "episodes": 50, "mean": -35.986279527542, "eval_s": 0.64}, {"env": "pusher", "fault": "log:short", "dose": "one", "seed": 2, "weights_sha256": "6126b462a85d0cb323c333b804f327de0d7eb6e90f04805189397e884597aa17", "episodes": 50, "mean": -29.066576978421782, "eval_s": 0.724}, {"env": "pusher", "fault": "none", "dose": "1.0", "seed": 0, "weights_sha256": "d41e519b18c6944f218f4b10dd51ad62c601829e5d3f66094a3830b499c9a78f", "episodes": 50, "mean": -33.65397106893416, "eval_s": 0.683}, {"env": "pusher", "fault": "none", "dose": "1.0", "seed": 1, "weights_sha256": "658351831b2fa3fd07566569396f5e45be86787fa4bf3a5883de9bf864069b1e", "episodes": 50, "mean": -35.986279527542, "eval_s": 0.639}, {"env": "pusher", "fault": "none", "dose": "1.0", "seed": 10, "weights_sha256": "e9a403411aa338dcafb281644ea8eddc249822d12a359abe3f623109fbccba0d", "episodes": 50, "mean": -29.483790101403414, "eval_s": 0.746}, {"env": "pusher", "fault": "none", "dose": "1.0", "seed": 11, "weights_sha256": "8ea70ae26939dad096761ca41ac6dd631f69c7f9bb547c7e5fd032cf99ac8676", "episodes": 50, "mean": -33.19426113276551, "eval_s": 0.698}, {"env": "pusher", "fault": "none", "dose": "1.0", "seed": 12, "weights_sha256": "7b3c214918d058c4d2598c53d541df26be9a13a3fc7240d62a1c1375a3bead7c", "episodes": 50, "mean": -33.30357675668254, "eval_s": 0.712}, {"env": "pusher", "fault": "none", "dose": "1.0", "seed": 13, "weights_sha256": "729cb0227ad3bfda4511a05f1c2eb81841ad992f6b57703745e37c37fc174633", "episodes": 50, "mean": -34.86373014712071, "eval_s": 0.687}, {"env": "pusher", "fault": "none", "dose": "1.0", "seed": 14, "weights_sha256": "83d384f580ec06131647c8cec81f5573fae03a42f20964911180368606488da9", "episodes": 50, "mean": -29.900230593872017, "eval_s": 0.746}, {"env": "pusher", "fault": "none", "dose": "1.0", "seed": 15, "weights_sha256": "f5a8d8ffa14dc112166e0610af7a1fda98d04390249e44b3593162183efe6a31", "episodes": 50, "mean": -29.690940591091806, "eval_s": 0.689}, {"env": "pusher", "fault": "none", "dose": "1.0", "seed": 16, "weights_sha256": "fb2fb8ef0714b44a752b36a8a840d802973102a7fc015e03aef50ce4aa24fbfa", "episodes": 50, "mean": -31.226563337324222, "eval_s": 0.708}, {"env": "pusher", "fault": "none", "dose": "1.0", "seed": 17, "weights_sha256": "d4933bbc28c1ea9d1712df142cb28bceedf96a981074b55f5824779ffd73592d", "episodes": 50, "mean": -31.876818094549414, "eval_s": 0.665}, {"env": "pusher", "fault": "none", "dose": "1.0", "seed": 18, "weights_sha256": "db190f6639344c10261f76cedee677e83f19ea5e9952b4983772da4f863745f4", "episodes": 50, "mean": -29.849390371591458, "eval_s": 0.72}, {"env": "pusher", "fault": "none", "dose": "1.0", "seed": 19, "weights_sha256": "0f2dadb26cf8736187d7d085ec18fe48b1900eb3bc58892175ec2ff4c071e571", "episodes": 50, "mean": -34.549963073357304, "eval_s": 0.702}, {"env": "pusher", "fault": "none", "dose": "1.0", "seed": 2, "weights_sha256": "6126b462a85d0cb323c333b804f327de0d7eb6e90f04805189397e884597aa17", "episodes": 50, "mean": -29.066576978421782, "eval_s": 0.745}, {"env": "pusher", "fault": "obs:f16", "dose": "0.01", "seed": 0, "weights_sha256": "4caa38c4e84ad4a98a228965012cba1f761ac582d776785964fafb1fe89f9557", "episodes": 50, "mean": -30.81205194149697, "eval_s": 0.712}, {"env": "pusher", "fault": "obs:f16", "dose": "0.01", "seed": 1, "weights_sha256": "ceadf246ab5a46abcba0ed2812fe22df09f0c8425d825ddf9df2d267e413db32", "episodes": 50, "mean": -32.685338345407146, "eval_s": 0.687}, {"env": "pusher", "fault": "obs:f16", "dose": "0.01", "seed": 2, "weights_sha256": "de4686a974b0cbcf8a6c545f826f1aee823ba42baa63b41499590772622a65a4", "episodes": 50, "mean": -29.779318143004573, "eval_s": 0.748}, {"env": "pusher", "fault": "obs:f16", "dose": "1.0", "seed": 0, "weights_sha256": "caabf1f906ad1d492eed5eb2af6e32363ce25b243199af79208cd3b62693e55a", "episodes": 50, "mean": -33.813220320621085, "eval_s": 0.716}, {"env": "pusher", "fault": "obs:f16", "dose": "1.0", "seed": 1, "weights_sha256": "4aaad3e1f5a9a05162f9543bbfae4088bedb59f5a84751039043850b7d6d7103", "episodes": 50, "mean": -35.32077584440067, "eval_s": 0.69}, {"env": "pusher", "fault": "obs:f16", "dose": "1.0", "seed": 2, "weights_sha256": "2d29a2d1b854a5cc77fcf0cd17d5c60227c07d50ec697c3b559e2afb6b046ddd", "episodes": 50, "mean": -29.68725130035203, "eval_s": 0.72}, {"env": "pusher", "fault": "obs:f16", "dose": "one", "seed": 0, "weights_sha256": "13dde12f3680e46dd85bee51ade0668cddec7e3cc08b9d346591084b14d077f0", "episodes": 50, "mean": -34.49792600440148, "eval_s": 0.688}, {"env": "pusher", "fault": "obs:f16", "dose": "one", "seed": 1, "weights_sha256": "0c365702125697f4fcd7a5704a5038d44615721b20fb93f6addd34dfc6cd520d", "episodes": 50, "mean": -34.48511104000292, "eval_s": 0.588}, {"env": "pusher", "fault": "obs:f16", "dose": "one", "seed": 2, "weights_sha256": "8fd2dfbcb006b3a3320d041842005e138076d713718783a1c99b33c73384af33", "episodes": 50, "mean": -30.514438241218087, "eval_s": 0.709}, {"env": "pusher", "fault": "obs:stale", "dose": "0.01", "seed": 0, "weights_sha256": "d045798b865f7f42ac0206230f64b1d1fec75410c22a01d988a757555db8038b", "episodes": 50, "mean": -29.252724896485287, "eval_s": 0.705}, {"env": "pusher", "fault": "obs:stale", "dose": "0.01", "seed": 1, "weights_sha256": "0de69112cb7a801bfbda9ffca3205fd75797b9b27d9901ba26156465def58a51", "episodes": 50, "mean": -29.579537040442503, "eval_s": 0.712}, {"env": "pusher", "fault": "obs:stale", "dose": "0.01", "seed": 2, "weights_sha256": "99a75cd3e47f2a88c9bbf0ae8876307877512b194d60345f0cdbbed6a0612f52", "episodes": 50, "mean": -28.748764096265617, "eval_s": 0.751}, {"env": "pusher", "fault": "obs:stale", "dose": "1.0", "seed": 0, "weights_sha256": "e40fc9846dca013d0ae2cbce69da1d2521051747e338e9207c0c07f60333da48", "episodes": 50, "mean": -31.248928976958204, "eval_s": 0.705}, {"env": "pusher", "fault": "obs:stale", "dose": "1.0", "seed": 1, "weights_sha256": "c88591b626036ce4d785c67e8ebf5c42ecca61dd6170f9fe4fedf63fd2ff388a", "episodes": 50, "mean": -34.05224482622528, "eval_s": 0.708}, {"env": "pusher", "fault": "obs:stale", "dose": "1.0", "seed": 2, "weights_sha256": "ff71c1c5564e64c9623bc1899c5c3cbbbbef53a6126f8f21124cf07b525ce0ed", "episodes": 50, "mean": -31.721801755409388, "eval_s": 0.722}, {"env": "pusher", "fault": "obs:stale", "dose": "one", "seed": 0, "weights_sha256": "e08896f32dbfa7d74d8e728c955c6dc594367a36399cf62e4e532d0d43a06b1a", "episodes": 50, "mean": -31.44332156970514, "eval_s": 0.712}, {"env": "pusher", "fault": "obs:stale", "dose": "one", "seed": 1, "weights_sha256": "9adbf307b00b95292ab362829c6e94a2e1d6f06dde9c092981d0daa760215d58", "episodes": 50, "mean": -34.14173959170885, "eval_s": 0.676}, {"env": "pusher", "fault": "obs:stale", "dose": "one", "seed": 2, "weights_sha256": "a454efa8c1a5cbee96d86888704af93dd4db85519f97f78e9170d82439d13349", "episodes": 50, "mean": -30.32979063190628, "eval_s": 0.689}, {"env": "pusher", "fault": "obs:swap", "dose": "0.01", "seed": 0, "weights_sha256": "9e0fbb93991b4263857a63873b5fa7fbe01582bf812844c1fdc217e426f3e028", "episodes": 50, "mean": -34.995449588593516, "eval_s": 0.661}, {"env": "pusher", "fault": "obs:swap", "dose": "0.01", "seed": 1, "weights_sha256": "e3448ee66c27e91d39b908f41e33d924f42f17b1a71734a8a991a8258f314de8", "episodes": 50, "mean": -34.354357512479424, "eval_s": 0.705}, {"env": "pusher", "fault": "obs:swap", "dose": "0.01", "seed": 2, "weights_sha256": "64f2f6703bbdee3c8e8f093d4afa4f3632cff93dcbf0dc268974752138f64dab", "episodes": 50, "mean": -30.321049160494116, "eval_s": 0.725}, {"env": "pusher", "fault": "obs:swap", "dose": "1.0", "seed": 0, "weights_sha256": "31885ab7d143ad5f500de202adaa05065f90d6b182275106688a4fb865bbef7c", "episodes": 50, "mean": -42.77892299890564, "eval_s": 0.541}, {"env": "pusher", "fault": "obs:swap", "dose": "1.0", "seed": 1, "weights_sha256": "478aad7f6c7c342005cdb60f15799c9609761177f2fc98d4d36effdc2fc4063b", "episodes": 50, "mean": -41.707346095606646, "eval_s": 0.552}, {"env": "pusher", "fault": "obs:swap", "dose": "1.0", "seed": 2, "weights_sha256": "c63d576a1e284599d96f0f23e19f0ad6ebd0edafc928336fee62347661f691c2", "episodes": 50, "mean": -41.632816998848284, "eval_s": 0.574}, {"env": "pusher", "fault": "obs:swap", "dose": "one", "seed": 0, "weights_sha256": "6673b06551bcb4f5247622263390d036d4cf8cfbb477dfd0a94bc0dd9514882c", "episodes": 50, "mean": -34.03001206736556, "eval_s": 0.684}, {"env": "pusher", "fault": "obs:swap", "dose": "one", "seed": 1, "weights_sha256": "e4273f5433b77e9c92cce93765c7117d95074b192eac43db474e843621d95adf", "episodes": 50, "mean": -35.25280980614248, "eval_s": 0.619}, {"env": "pusher", "fault": "obs:swap", "dose": "one", "seed": 2, "weights_sha256": "d8ebd1a62d36d3f07c8c501ad48ddea4c10418144ff3641954e8f23858d19194", "episodes": 50, "mean": -28.950714921679722, "eval_s": 0.701}, {"env": "pusher", "fault": "obs:zero", "dose": "0.01", "seed": 0, "weights_sha256": "547e71d5e16fddb4c332d2182e7eef3cf789334cab5b0bce5c87f7d608efd4cd", "episodes": 50, "mean": -31.54549963268532, "eval_s": 0.758}, {"env": "pusher", "fault": "obs:zero", "dose": "0.01", "seed": 1, "weights_sha256": "85902121c69ec4c8551cfa7255b28fbeb087c05e1871ed1afd2d53c3d03439c3", "episodes": 50, "mean": -29.036747690932025, "eval_s": 0.711}, {"env": "pusher", "fault": "obs:zero", "dose": "0.01", "seed": 2, "weights_sha256": "81f1f2d1d2467abf43b16d599268604bbc42860cab5b032c51933de15791f49b", "episodes": 50, "mean": -29.441136617856827, "eval_s": 0.701}, {"env": "pusher", "fault": "obs:zero", "dose": "1.0", "seed": 0, "weights_sha256": "f972a28c58fd214d5b32e2ca2b748e2c2e6da90bffad69f26008f8474712d9d1", "episodes": 50, "mean": -48.92228321666204, "eval_s": 0.504}, {"env": "pusher", "fault": "obs:zero", "dose": "1.0", "seed": 1, "weights_sha256": "1a0237b02b656b3055e83ff82a4764f0c0365f92954b0867df653af58119146b", "episodes": 50, "mean": -58.04757070759632, "eval_s": 0.538}, {"env": "pusher", "fault": "obs:zero", "dose": "1.0", "seed": 2, "weights_sha256": "9c799eddc18f3476826d8981865d9cd0c3d4a4a00571bc7b23b8978c99597602", "episodes": 50, "mean": -51.764927687458155, "eval_s": 0.532}, {"env": "pusher", "fault": "obs:zero", "dose": "one", "seed": 0, "weights_sha256": "ff45cddea8ecfe48dd4a9892948701d3b3160649d595218f9b7b158e979ca39d", "episodes": 50, "mean": -34.107671825531924, "eval_s": 0.664}, {"env": "pusher", "fault": "obs:zero", "dose": "one", "seed": 1, "weights_sha256": "df52c663f8f0e7440f04d139352c069ef90670f6603301aeda4156e9967df384", "episodes": 50, "mean": -34.943011074597045, "eval_s": 0.599}, {"env": "pusher", "fault": "obs:zero", "dose": "one", "seed": 2, "weights_sha256": "783547c06c8abd93356b530049e5becfa9789c5150d1711b2ae8cf54c35e8109", "episodes": 50, "mean": -29.260887919843857, "eval_s": 0.736}, {"env": "pusher", "fault": "reward:f16", "dose": "0.01", "seed": 0, "weights_sha256": "d55e799a5ba49c104b79de542dd9b468637a5773234b9e32b3813e8056aac833", "episodes": 50, "mean": -33.20860066037886, "eval_s": 0.716}, {"env": "pusher", "fault": "reward:f16", "dose": "0.01", "seed": 1, "weights_sha256": "872f0deea23defc4e5137320f65c0ff6aed0935c4dcc91a4239d53f39d3ce579", "episodes": 50, "mean": -32.94528938516023, "eval_s": 0.682}, {"env": "pusher", "fault": "reward:f16", "dose": "0.01", "seed": 2, "weights_sha256": "698812ca6cfa01d8158603ffe9ed2241c184f64e0f4c0ef5066acc29545afaca", "episodes": 50, "mean": -30.2700662718242, "eval_s": 0.708}, {"env": "pusher", "fault": "reward:f16", "dose": "1.0", "seed": 0, "weights_sha256": "2f4c8b3e3a388b36669ad43cc39c60170098bb7c3531b127643178932718fed8", "episodes": 50, "mean": -29.961156610618424, "eval_s": 0.74}, {"env": "pusher", "fault": "reward:f16", "dose": "1.0", "seed": 1, "weights_sha256": "38734034d4d862c44f6432638ebbcb734aea916458f4436ace2c15ea47af97e4", "episodes": 50, "mean": -34.04759350132678, "eval_s": 0.748}, {"env": "pusher", "fault": "reward:f16", "dose": "1.0", "seed": 2, "weights_sha256": "eddebd834d7cd78fa1dc4a0162c3f61295b1ef50813d418b86a70ce67c370b24", "episodes": 50, "mean": -29.095488705190515, "eval_s": 0.766}, {"env": "pusher", "fault": "reward:f16", "dose": "one", "seed": 0, "weights_sha256": "dc8fb504b3a6d3dbc5c4ac6f5d77da7c7da6550477130e1f697200fb260e51dd", "episodes": 50, "mean": -34.9378044654258, "eval_s": 0.682}, {"env": "pusher", "fault": "reward:f16", "dose": "one", "seed": 1, "weights_sha256": "06ec378986782a950f8441d44f13f6a6dc747ac8a022aa1c7fef37d2e46c0b6e", "episodes": 50, "mean": -34.170227970800596, "eval_s": 0.628}, {"env": "pusher", "fault": "reward:f16", "dose": "one", "seed": 2, "weights_sha256": "ac69a6621a8c78bfaea1c3188d002c01a09fad700d42e25fee06d3317a3c632e", "episodes": 50, "mean": -28.923859684113232, "eval_s": 0.733}, {"env": "pusher", "fault": "reward:stale", "dose": "0.01", "seed": 0, "weights_sha256": "5f4d2c4022e2eb02cfadea16205226cdcb87f8d423a811c51603d8590bb9dd41", "episodes": 50, "mean": -33.24817190045876, "eval_s": 0.707}, {"env": "pusher", "fault": "reward:stale", "dose": "0.01", "seed": 1, "weights_sha256": "d4e9bddbccd8326f245643b9169cedeaf6adae53a4d204f5de73b67f4103f261", "episodes": 50, "mean": -32.37789440739694, "eval_s": 0.708}, {"env": "pusher", "fault": "reward:stale", "dose": "0.01", "seed": 2, "weights_sha256": "1995b8a11d69c6ca2006cb9928366289151cfc0014925f0b2e891f7c9c36c159", "episodes": 50, "mean": -29.680522696568097, "eval_s": 0.712}, {"env": "pusher", "fault": "reward:stale", "dose": "1.0", "seed": 0, "weights_sha256": "2cc42cf7e9d3238313bf91504a865c6b45004386ffb0b2572cd65231aeec0ae6", "episodes": 50, "mean": -31.6093616922756, "eval_s": 0.702}, {"env": "pusher", "fault": "reward:stale", "dose": "1.0", "seed": 1, "weights_sha256": "a3a61376de85228944f8f035275102cf7a26a8a7401fb86d46650925de77ceda", "episodes": 50, "mean": -32.99278169020709, "eval_s": 0.716}, {"env": "pusher", "fault": "reward:stale", "dose": "1.0", "seed": 2, "weights_sha256": "fac52a1b8cc7f2f2e67af0c397bb637d0ce1c8f09cfc8f7fa1703ee89e545d17", "episodes": 50, "mean": -29.06579454440393, "eval_s": 0.705}, {"env": "pusher", "fault": "reward:stale", "dose": "one", "seed": 0, "weights_sha256": "6d9b80f574bd2281e0dd2ca8975a88ff5822a524110f6295dd1be5f4a43ac682", "episodes": 50, "mean": -32.90533492085867, "eval_s": 0.714}, {"env": "pusher", "fault": "reward:stale", "dose": "one", "seed": 1, "weights_sha256": "eb26f4a958414751d96052aa769fdbb429032de2e4c411e4130e6fa8d54415ec", "episodes": 50, "mean": -35.25128832552287, "eval_s": 0.639}, {"env": "pusher", "fault": "reward:stale", "dose": "one", "seed": 2, "weights_sha256": "e1d0ffeb8a40d09c19d1b6c36f6117987cc558cbeecce4a3686412c7fca64132", "episodes": 50, "mean": -29.32364475551136, "eval_s": 0.738}, {"env": "pusher", "fault": "reward:swap", "dose": "0.01", "seed": 0, "weights_sha256": "68a214d32115230ba6e198358f3c35805f0f5895ea8f2ec89755f365c5cc7ff2", "episodes": 50, "mean": -34.89617617020054, "eval_s": 0.746}, {"env": "pusher", "fault": "reward:swap", "dose": "0.01", "seed": 1, "weights_sha256": "c5cfebeaf379f7871dccbf3f41b38db07dc350801593db8f4f73ad6582ad0ee8", "episodes": 50, "mean": -34.24570871930464, "eval_s": 0.625}, {"env": "pusher", "fault": "reward:swap", "dose": "0.01", "seed": 2, "weights_sha256": "b03ba61e4345c464e72a85b5669ed9d27fbabe5b19831c2432f1f15501d967f0", "episodes": 50, "mean": -29.313636668050503, "eval_s": 0.74}, {"env": "pusher", "fault": "reward:swap", "dose": "1.0", "seed": 0, "weights_sha256": "7bea54f062ee387aec52566808cdbf87efc12bd869e9c7cf77a353571e6dd5e2", "episodes": 50, "mean": -76.69120081253837, "eval_s": 0.526}, {"env": "pusher", "fault": "reward:swap", "dose": "1.0", "seed": 1, "weights_sha256": "23786cd4d89665f190c8b06694f92b940a441bc63199c08b2902f35f1103ccb6", "episodes": 50, "mean": -68.49350880896822, "eval_s": 0.524}, {"env": "pusher", "fault": "reward:swap", "dose": "1.0", "seed": 2, "weights_sha256": "3113625a74b9d635c6285413f5518e9b0f0c454c470e19bf7231190648601f21", "episodes": 50, "mean": -77.97962971335012, "eval_s": 0.534}, {"env": "pusher", "fault": "reward:swap", "dose": "one", "seed": 0, "weights_sha256": "ffdb1bfc1e9b86ba22573f95870370bb77c5a7505182ed179631a0da1fc2787a", "episodes": 50, "mean": -30.446843873439434, "eval_s": 0.717}, {"env": "pusher", "fault": "reward:swap", "dose": "one", "seed": 1, "weights_sha256": "51d8063ac97f76702201bd883186fe629c922568f10f9a0f9741d5038f84c3a3", "episodes": 50, "mean": -33.4021524246685, "eval_s": 0.689}, {"env": "pusher", "fault": "reward:swap", "dose": "one", "seed": 2, "weights_sha256": "469e5c7f5f24d3daa862b14101eed2a7499ff64d9d92b4bbf2e347e1799d4762", "episodes": 50, "mean": -28.375622027812277, "eval_s": 0.744}, {"env": "pusher", "fault": "reward:zero", "dose": "0.01", "seed": 0, "weights_sha256": "cd3f0a279ea1d9da545308166116b4c4431be02b641c1df42975a90c64be12ef", "episodes": 50, "mean": -29.064533694407892, "eval_s": 0.702}, {"env": "pusher", "fault": "reward:zero", "dose": "0.01", "seed": 1, "weights_sha256": "4a679e34a633246d09dd9a70b8f783c5ce8af297bf52ebceaea3a971730a8899", "episodes": 50, "mean": -29.769077924077827, "eval_s": 0.729}, {"env": "pusher", "fault": "reward:zero", "dose": "0.01", "seed": 2, "weights_sha256": "c419a5a15fdb61d992e7b9aed6fe9afeb951d68ddefe783f70fd9d9fdfa5c35a", "episodes": 50, "mean": -30.722985828368554, "eval_s": 0.739}, {"env": "pusher", "fault": "reward:zero", "dose": "1.0", "seed": 0, "weights_sha256": "62f7004cbb6f33830414e929edaa32e66110e81d0d0550b73d33dd050ba0eac8", "episodes": 50, "mean": -98.73142427500059, "eval_s": 0.544}, {"env": "pusher", "fault": "reward:zero", "dose": "1.0", "seed": 1, "weights_sha256": "394a45d4806b85afbb1f87600e80241875b17780396e95d76c2014fda0d903d4", "episodes": 50, "mean": -118.0713632700509, "eval_s": 0.535}, {"env": "pusher", "fault": "reward:zero", "dose": "1.0", "seed": 2, "weights_sha256": "51687f046ed93f44d84b85ed0f4c3cb17c1ce5b48dc3eb21c9426f3cb88a2b8a", "episodes": 50, "mean": -128.7721871258079, "eval_s": 0.528}, {"env": "pusher", "fault": "reward:zero", "dose": "one", "seed": 0, "weights_sha256": "36c10899e16ca8147a011661667dc6601b7e2b4af5d45a1a6674168d74db36ae", "episodes": 50, "mean": -34.5562034529322, "eval_s": 0.649}, {"env": "pusher", "fault": "reward:zero", "dose": "one", "seed": 1, "weights_sha256": "419910451231bb9931bcf071ad91a53318e1d5cb43dbd77af1dcd7ef3f0feff0", "episodes": 50, "mean": -33.728518652576085, "eval_s": 0.643}, {"env": "pusher", "fault": "reward:zero", "dose": "one", "seed": 2, "weights_sha256": "7c26c6b95fdbe0e7560689f586be5540d460167388e40710af248a49e9a0bf3f", "episodes": 50, "mean": -29.22337587943392, "eval_s": 0.735}, {"env": "pusher", "fault": "step:fill", "dose": "0.01", "seed": 0, "weights_sha256": "5d23604184dce5ab8d61f24835156f0d4e2aee0a258af2c4f95ae3fd527dd2d2", "episodes": 50, "mean": -28.879480416699185, "eval_s": 0.718}, {"env": "pusher", "fault": "step:fill", "dose": "0.01", "seed": 1, "weights_sha256": "4b265055134dea43251a9ed8ef7d744ec1716338d466a441403dca6e15850ef1", "episodes": 50, "mean": -34.13945782282734, "eval_s": 0.697}, {"env": "pusher", "fault": "step:fill", "dose": "0.01", "seed": 2, "weights_sha256": "f62878306b31fc5a6542aceefdae3aaccbee42e519d16317a5103aae68e8a1ee", "episodes": 50, "mean": -30.533575050550656, "eval_s": 0.71}, {"env": "pusher", "fault": "step:fill", "dose": "1.0", "seed": 0, "weights_sha256": "095a109b8fe5a3722c414d58f413cb5ace12fc0eac0143853995f609b5053663", "episodes": 50, "mean": -126.70952674905696, "eval_s": 0.516}, {"env": "pusher", "fault": "step:fill", "dose": "1.0", "seed": 1, "weights_sha256": "da934b6d1a78c92aa6a8df792b3f5c43199217fa2ee2311f6dab4cbc8157185d", "episodes": 50, "mean": -87.85086183463754, "eval_s": 0.524}, {"env": "pusher", "fault": "step:fill", "dose": "1.0", "seed": 2, "weights_sha256": "b05e1e9f8c30b6859730bdf13471d3d5a90b6b9e57f0acb988a08bfa52bd1d1f", "episodes": 50, "mean": -97.3560510733099, "eval_s": 0.522}, {"env": "pusher", "fault": "step:fill", "dose": "one", "seed": 0, "weights_sha256": "35a10ae483d62bfbee7665f193e7f937b3d0acf95d4c2eb472be281de27592e1", "episodes": 50, "mean": -30.46327335531553, "eval_s": 0.714}, {"env": "pusher", "fault": "step:fill", "dose": "one", "seed": 1, "weights_sha256": "8c21b1bdd5c3eb3d081a9a07507d4e8ded8dda28ab22c00a50ee4599c2611418", "episodes": 50, "mean": -34.654583180054416, "eval_s": 0.627}, {"env": "pusher", "fault": "step:fill", "dose": "one", "seed": 2, "weights_sha256": "b707ac5ffe3f318452855d55e4be5ef2fd6270101c4a8eb83944f1393370afb1", "episodes": 50, "mean": -28.919024962705144, "eval_s": 0.73}, {"env": "pusher", "fault": "terminated:spurious", "dose": "0.01", "seed": 0, "weights_sha256": "bcbb59a8eec4fe8797d5c2b2b945339f547ee29f04c109b3ef08a8d78c7392f4", "episodes": 50, "mean": -48.74196707181863, "eval_s": 0.567}, {"env": "pusher", "fault": "terminated:spurious", "dose": "0.01", "seed": 1, "weights_sha256": "50c468eb666a175efc503e22172b5833f5609f219801915ecc2d37f1c2ec54fd", "episodes": 50, "mean": -47.18953936785588, "eval_s": 0.541}, {"env": "pusher", "fault": "terminated:spurious", "dose": "0.01", "seed": 2, "weights_sha256": "01cfac0516c980a01f3f61cf96cf960d693beeee9ea8021fd66718dfd57c00b5", "episodes": 50, "mean": -43.14461280163236, "eval_s": 0.61}, {"env": "pusher", "fault": "terminated:spurious", "dose": "1.0", "seed": 0, "weights_sha256": "9ab9689ff2002dd07ae9422d4ec7f319668a1f7521910bc4bbaf2be12da78b4e", "episodes": 50, "mean": -54.787085532218626, "eval_s": 0.523}, {"env": "pusher", "fault": "terminated:spurious", "dose": "1.0", "seed": 1, "weights_sha256": "b3a8fe9ca4d19eb2023d481f4bc88b6bd6796799efaf99a4461e66ce022e0e07", "episodes": 50, "mean": -55.795168810742524, "eval_s": 0.509}, {"env": "pusher", "fault": "terminated:spurious", "dose": "1.0", "seed": 2, "weights_sha256": "ff3641464fa618468b6f14d2968141d2bca2c9c9f0af6e1e221838cbad2f4083", "episodes": 50, "mean": -55.24518718285621, "eval_s": 0.523}, {"env": "pusher", "fault": "terminated:spurious", "dose": "one", "seed": 0, "weights_sha256": "64fa5e9a49fedf4ba42597a1819fb80f955fa6294510ebf2b8b150d68df2843b", "episodes": 50, "mean": -34.940575650196536, "eval_s": 0.706}, {"env": "pusher", "fault": "terminated:spurious", "dose": "one", "seed": 1, "weights_sha256": "4c44114c7d688439d10e9467f8733be54437df178174d7f403be5c8513d675d5", "episodes": 50, "mean": -34.700834031986275, "eval_s": 0.613}, {"env": "pusher", "fault": "terminated:spurious", "dose": "one", "seed": 2, "weights_sha256": "d7f158887ab6f24d384de958efe90d40e5af4e7e6659d4663053107ca738d7a0", "episodes": 50, "mean": -29.849838678239507, "eval_s": 0.729}, {"env": "pusher", "fault": "truncated:as-term", "dose": "0.01", "seed": 0, "weights_sha256": "9a547d41384f49b03d9963c27e0357e4bdb2919a7f9288b94bf0c7e4a390ca8d", "episodes": 50, "mean": -37.280777192738185, "eval_s": 0.606}, {"env": "pusher", "fault": "truncated:as-term", "dose": "0.01", "seed": 1, "weights_sha256": "5c8da25ac997ece0f8d2440b232830c05a3ef85d27ce721178df751ab5fab6e0", "episodes": 50, "mean": -30.90805798426821, "eval_s": 0.726}, {"env": "pusher", "fault": "truncated:as-term", "dose": "0.01", "seed": 2, "weights_sha256": "d4a0b3f7936b979b965c92ee52810cebbaec6a0583e589d49d77cfdc20e95a8a", "episodes": 50, "mean": -31.238916350195197, "eval_s": 0.703}, {"env": "pusher", "fault": "truncated:as-term", "dose": "1.0", "seed": 0, "weights_sha256": "a21ec041acaf32796475a00aadcfb4b76159656aa2883c7834ac817256725011", "episodes": 50, "mean": -48.67590570855721, "eval_s": 0.544}, {"env": "pusher", "fault": "truncated:as-term", "dose": "1.0", "seed": 1, "weights_sha256": "2c830d25d1c44d4f803985a65ac6c8efb999933f7fcb427112a3fab11a011a33", "episodes": 50, "mean": -60.72626931511426, "eval_s": 0.524}, {"env": "pusher", "fault": "truncated:as-term", "dose": "1.0", "seed": 2, "weights_sha256": "2039104a4953acea1d0a3119831ca97b53a7923118c14cd7f3f1921a1f1f1919", "episodes": 50, "mean": -52.75297006269921, "eval_s": 0.544}, {"env": "pusher", "fault": "truncated:as-term", "dose": "one", "seed": 0, "weights_sha256": "30a4872ce72959ad31c47aee27ca47b9c04ae277d5f642b4b13a895c509762cd", "episodes": 50, "mean": -33.92204221486608, "eval_s": 0.659}, {"env": "pusher", "fault": "truncated:as-term", "dose": "one", "seed": 1, "weights_sha256": "f9a4f5fbc0ed5860816ea81afdcb7cab53692c24edd8ffd1f620e073481c2a38", "episodes": 50, "mean": -34.17604906120518, "eval_s": 0.647}, {"env": "pusher", "fault": "truncated:as-term", "dose": "one", "seed": 2, "weights_sha256": "ab69473c46b34c61daa1c09070c77b2294fdcd20188d7c12f4dee352fd6279fd", "episodes": 50, "mean": -28.255889592045204, "eval_s": 0.724}, {"env": "pusher", "fault": "truncated:drop", "dose": "0.01", "seed": 0, "weights_sha256": "0904fa0dd7b3f0885103dd984ef1876776c18d10fd71e83ffcebd7c6659cdf62", "episodes": 50, "mean": -32.83362099828813, "eval_s": 0.748}, {"env": "pusher", "fault": "truncated:drop", "dose": "0.01", "seed": 1, "weights_sha256": "c83c6d84ce188e97f7d3b9e90e0b23bc85904617cfcda76e706a16b720add321", "episodes": 50, "mean": -31.09060129516245, "eval_s": 0.729}, {"env": "pusher", "fault": "truncated:drop", "dose": "0.01", "seed": 2, "weights_sha256": "36c8f10f26cb6d9c5b020be593421bb90434eb423dcdaf8a6a9fe6f520d692cb", "episodes": 50, "mean": -31.528526092550266, "eval_s": 0.737}, {"env": "pusher", "fault": "truncated:drop", "dose": "1.0", "seed": 0, "weights_sha256": "369d70ed736327d93db7033fa21cc371242c6f2b379d99d89906142f3642541e", "episodes": 50, "mean": -34.64787008398498, "eval_s": 0.679}, {"env": "pusher", "fault": "truncated:drop", "dose": "1.0", "seed": 1, "weights_sha256": "10a9228af33ec44d4f8463fcb38d6269e21e554623c9a6dbeb2fafb11b5375b5", "episodes": 50, "mean": -35.246251356091335, "eval_s": 0.665}, {"env": "pusher", "fault": "truncated:drop", "dose": "1.0", "seed": 2, "weights_sha256": "5cc8b5401e35f082b8a4ad6b0cb0c79211e53a2d0e888e8659fcd31d5ebec04c", "episodes": 50, "mean": -34.98429635429014, "eval_s": 0.636}, {"env": "pusher", "fault": "truncated:drop", "dose": "one", "seed": 0, "weights_sha256": "572ec71135c0bb6d5ba809423eb7080025472c24ab6f849b893458d3f3b4899e", "episodes": 50, "mean": -33.752360693495845, "eval_s": 0.628}, {"env": "pusher", "fault": "truncated:drop", "dose": "one", "seed": 1, "weights_sha256": "1db72fb1b61435f9a291bd1d10e56701d02fd36dcb65af695203d07734549c22", "episodes": 50, "mean": -34.609951682947965, "eval_s": 0.748}, {"env": "pusher", "fault": "truncated:drop", "dose": "one", "seed": 2, "weights_sha256": "762e384f353d793fb319fa4c330da3a6942e7bf3b264452200376660f74d03a0", "episodes": 50, "mean": -28.887359701409288, "eval_s": 0.732}, {"env": "pusher", "fault": "wire-float64", "dose": "1.0", "seed": 0, "weights_sha256": "d41e519b18c6944f218f4b10dd51ad62c601829e5d3f66094a3830b499c9a78f", "episodes": 50, "mean": -33.65397106893416, "eval_s": 0.898}, {"env": "pusher", "fault": "wire-float64", "dose": "1.0", "seed": 1, "weights_sha256": "658351831b2fa3fd07566569396f5e45be86787fa4bf3a5883de9bf864069b1e", "episodes": 50, "mean": -35.986279527542, "eval_s": 0.627}, {"env": "pusher", "fault": "wire-float64", "dose": "1.0", "seed": 2, "weights_sha256": "6126b462a85d0cb323c333b804f327de0d7eb6e90f04805189397e884597aa17", "episodes": 50, "mean": -29.066576978421782, "eval_s": 0.737}] diff --git a/experiments/e58-pusher-faults/results/e58-src.sha256 b/experiments/e58-pusher-faults/results/e58-src.sha256 new file mode 100644 index 0000000..b1310f2 --- /dev/null +++ b/experiments/e58-pusher-faults/results/e58-src.sha256 @@ -0,0 +1,5 @@ +d24f53b63bd855ab8b1c414e2777e25c1321426553de9495e4a0b8c1202500de train.py +f8e7272a9ee0f628840a6f511ded0b51004fdf654a6432d6eed9ea2496a6d476 faulty_client.py +c193a029fac7d8c0368ed6e899db6529ff367dcaa87718123d5901f8593998a3 jobs.py +4141d87a5fdaca55a4b4d80b82a99a09bce6c27ff8e1d9c64f56f6d457729520 ledger.py +ad111736f4433fe1dbe4f6f2a80ad0e028f41ba1bfd4cb3c689783e5a0543a09 evaluate.py diff --git a/experiments/e58-pusher-faults/results/jobs.txt b/experiments/e58-pusher-faults/results/jobs.txt new file mode 100644 index 0000000..83058de --- /dev/null +++ b/experiments/e58-pusher-faults/results/jobs.txt @@ -0,0 +1,226 @@ +pusher none 1.0 0 trace +pusher delay-1ms 1.0 0 trace +pusher wire-float64 1.0 0 trace +pusher obs:zero one 0 trace +pusher obs:zero 0.01 0 trace +pusher obs:zero 1.0 0 trace +pusher obs:stale one 0 trace +pusher obs:stale 0.01 0 trace +pusher obs:stale 1.0 0 trace +pusher obs:swap one 0 trace +pusher obs:swap 0.01 0 trace +pusher obs:swap 1.0 0 trace +pusher obs:f16 one 0 trace +pusher obs:f16 0.01 0 trace +pusher obs:f16 1.0 0 trace +pusher action:zero one 0 trace +pusher action:zero 0.01 0 trace +pusher action:zero 1.0 0 trace +pusher action:stale one 0 trace +pusher action:stale 0.01 0 trace +pusher action:stale 1.0 0 trace +pusher action:swap one 0 trace +pusher action:swap 0.01 0 trace +pusher action:swap 1.0 0 trace +pusher action:f16 one 0 trace +pusher action:f16 0.01 0 trace +pusher action:f16 1.0 0 trace +pusher action:clip one 0 trace +pusher action:clip 0.01 0 trace +pusher action:clip 1.0 0 trace +pusher reward:zero one 0 trace +pusher reward:zero 0.01 0 trace +pusher reward:zero 1.0 0 trace +pusher reward:stale one 0 trace +pusher reward:stale 0.01 0 trace +pusher reward:stale 1.0 0 trace +pusher reward:swap one 0 trace +pusher reward:swap 0.01 0 trace +pusher reward:swap 1.0 0 trace +pusher reward:f16 one 0 trace +pusher reward:f16 0.01 0 trace +pusher reward:f16 1.0 0 trace +pusher final-obs:zero one 0 trace +pusher final-obs:zero 0.01 0 trace +pusher final-obs:zero 1.0 0 trace +pusher final-obs:stale one 0 trace +pusher final-obs:stale 0.01 0 trace +pusher final-obs:stale 1.0 0 trace +pusher final-obs:swap one 0 trace +pusher final-obs:swap 0.01 0 trace +pusher final-obs:swap 1.0 0 trace +pusher final-obs:f16 one 0 trace +pusher final-obs:f16 0.01 0 trace +pusher final-obs:f16 1.0 0 trace +pusher terminated:spurious one 0 trace +pusher terminated:spurious 0.01 0 trace +pusher terminated:spurious 1.0 0 trace +pusher truncated:drop one 0 trace +pusher truncated:drop 0.01 0 trace +pusher truncated:drop 1.0 0 trace +pusher truncated:as-term one 0 trace +pusher truncated:as-term 0.01 0 trace +pusher truncated:as-term 1.0 0 trace +pusher step:fill one 0 trace +pusher step:fill 0.01 0 trace +pusher step:fill 1.0 0 trace +pusher log:drop-first one 0 trace +pusher log:drop-first 0.01 0 trace +pusher log:drop-first 1.0 0 trace +pusher log:short one 0 trace +pusher log:short 0.01 0 trace +pusher log:short 1.0 0 trace +pusher none 1.0 1 trace +pusher delay-1ms 1.0 1 trace +pusher wire-float64 1.0 1 trace +pusher obs:zero one 1 trace +pusher obs:zero 0.01 1 trace +pusher obs:zero 1.0 1 trace +pusher obs:stale one 1 trace +pusher obs:stale 0.01 1 trace +pusher obs:stale 1.0 1 trace +pusher obs:swap one 1 trace +pusher obs:swap 0.01 1 trace +pusher obs:swap 1.0 1 trace +pusher obs:f16 one 1 trace +pusher obs:f16 0.01 1 trace +pusher obs:f16 1.0 1 trace +pusher action:zero one 1 trace +pusher action:zero 0.01 1 trace +pusher action:zero 1.0 1 trace +pusher action:stale one 1 trace +pusher action:stale 0.01 1 trace +pusher action:stale 1.0 1 trace +pusher action:swap one 1 trace +pusher action:swap 0.01 1 trace +pusher action:swap 1.0 1 trace +pusher action:f16 one 1 trace +pusher action:f16 0.01 1 trace +pusher action:f16 1.0 1 trace +pusher action:clip one 1 trace +pusher action:clip 0.01 1 trace +pusher action:clip 1.0 1 trace +pusher reward:zero one 1 trace +pusher reward:zero 0.01 1 trace +pusher reward:zero 1.0 1 trace +pusher reward:stale one 1 trace +pusher reward:stale 0.01 1 trace +pusher reward:stale 1.0 1 trace +pusher reward:swap one 1 trace +pusher reward:swap 0.01 1 trace +pusher reward:swap 1.0 1 trace +pusher reward:f16 one 1 trace +pusher reward:f16 0.01 1 trace +pusher reward:f16 1.0 1 trace +pusher final-obs:zero one 1 trace +pusher final-obs:zero 0.01 1 trace +pusher final-obs:zero 1.0 1 trace +pusher final-obs:stale one 1 trace +pusher final-obs:stale 0.01 1 trace +pusher final-obs:stale 1.0 1 trace +pusher final-obs:swap one 1 trace +pusher final-obs:swap 0.01 1 trace +pusher final-obs:swap 1.0 1 trace +pusher final-obs:f16 one 1 trace +pusher final-obs:f16 0.01 1 trace +pusher final-obs:f16 1.0 1 trace +pusher terminated:spurious one 1 trace +pusher terminated:spurious 0.01 1 trace +pusher terminated:spurious 1.0 1 trace +pusher truncated:drop one 1 trace +pusher truncated:drop 0.01 1 trace +pusher truncated:drop 1.0 1 trace +pusher truncated:as-term one 1 trace +pusher truncated:as-term 0.01 1 trace +pusher truncated:as-term 1.0 1 trace +pusher step:fill one 1 trace +pusher step:fill 0.01 1 trace +pusher step:fill 1.0 1 trace +pusher log:drop-first one 1 trace +pusher log:drop-first 0.01 1 trace +pusher log:drop-first 1.0 1 trace +pusher log:short one 1 trace +pusher log:short 0.01 1 trace +pusher log:short 1.0 1 trace +pusher none 1.0 2 trace +pusher delay-1ms 1.0 2 trace +pusher wire-float64 1.0 2 trace +pusher obs:zero one 2 trace +pusher obs:zero 0.01 2 trace +pusher obs:zero 1.0 2 trace +pusher obs:stale one 2 trace +pusher obs:stale 0.01 2 trace +pusher obs:stale 1.0 2 trace +pusher obs:swap one 2 trace +pusher obs:swap 0.01 2 trace +pusher obs:swap 1.0 2 trace +pusher obs:f16 one 2 trace +pusher obs:f16 0.01 2 trace +pusher obs:f16 1.0 2 trace +pusher action:zero one 2 trace +pusher action:zero 0.01 2 trace +pusher action:zero 1.0 2 trace +pusher action:stale one 2 trace +pusher action:stale 0.01 2 trace +pusher action:stale 1.0 2 trace +pusher action:swap one 2 trace +pusher action:swap 0.01 2 trace +pusher action:swap 1.0 2 trace +pusher action:f16 one 2 trace +pusher action:f16 0.01 2 trace +pusher action:f16 1.0 2 trace +pusher action:clip one 2 trace +pusher action:clip 0.01 2 trace +pusher action:clip 1.0 2 trace +pusher reward:zero one 2 trace +pusher reward:zero 0.01 2 trace +pusher reward:zero 1.0 2 trace +pusher reward:stale one 2 trace +pusher reward:stale 0.01 2 trace +pusher reward:stale 1.0 2 trace +pusher reward:swap one 2 trace +pusher reward:swap 0.01 2 trace +pusher reward:swap 1.0 2 trace +pusher reward:f16 one 2 trace +pusher reward:f16 0.01 2 trace +pusher reward:f16 1.0 2 trace +pusher final-obs:zero one 2 trace +pusher final-obs:zero 0.01 2 trace +pusher final-obs:zero 1.0 2 trace +pusher final-obs:stale one 2 trace +pusher final-obs:stale 0.01 2 trace +pusher final-obs:stale 1.0 2 trace +pusher final-obs:swap one 2 trace +pusher final-obs:swap 0.01 2 trace +pusher final-obs:swap 1.0 2 trace +pusher final-obs:f16 one 2 trace +pusher final-obs:f16 0.01 2 trace +pusher final-obs:f16 1.0 2 trace +pusher terminated:spurious one 2 trace +pusher terminated:spurious 0.01 2 trace +pusher terminated:spurious 1.0 2 trace +pusher truncated:drop one 2 trace +pusher truncated:drop 0.01 2 trace +pusher truncated:drop 1.0 2 trace +pusher truncated:as-term one 2 trace +pusher truncated:as-term 0.01 2 trace +pusher truncated:as-term 1.0 2 trace +pusher step:fill one 2 trace +pusher step:fill 0.01 2 trace +pusher step:fill 1.0 2 trace +pusher log:drop-first one 2 trace +pusher log:drop-first 0.01 2 trace +pusher log:drop-first 1.0 2 trace +pusher log:short one 2 trace +pusher log:short 0.01 2 trace +pusher log:short 1.0 2 trace +pusher none 1.0 10 notrace +pusher none 1.0 11 notrace +pusher none 1.0 12 notrace +pusher none 1.0 13 notrace +pusher none 1.0 14 notrace +pusher none 1.0 15 notrace +pusher none 1.0 16 notrace +pusher none 1.0 17 notrace +pusher none 1.0 18 notrace +pusher none 1.0 19 notrace diff --git a/experiments/e58-pusher-faults/results/ledger.csv b/experiments/e58-pusher-faults/results/ledger.csv new file mode 100644 index 0000000..c46ec94 --- /dev/null +++ b/experiments/e58-pusher-faults/results/ledger.csv @@ -0,0 +1,217 @@ +run,fault,dose,seed,cells,caught,differing,injected,found,right +pusher/action__clip/0.01/seed0,action:clip,0.01,0,1433,1,1433,5/7,5/7 action,1 +pusher/action__clip/0.01/seed1,action:clip,0.01,1,1454,1,1454,5/7,5/7 action,1 +pusher/action__clip/0.01/seed2,action:clip,0.01,2,1350,1,1350,5/7,5/7 action,1 +pusher/action__clip/1.0/seed0,action:clip,1.0,0,203780,1,203780,0/0,0/0 action,1 +pusher/action__clip/1.0/seed1,action:clip,1.0,1,212889,1,212889,0/0,0/0 action,1 +pusher/action__clip/1.0/seed2,action:clip,1.0,2,249421,1,249421,0/0,0/0 action,1 +pusher/action__clip/one/seed0,action:clip,one,0,1,1,1,3249/0,3249/0 action,1 +pusher/action__clip/one/seed1,action:clip,one,1,1,1,1,3249/0,3249/0 action,1 +pusher/action__clip/one/seed2,action:clip,one,2,1,1,1,3249/0,3249/0 action,1 +pusher/action__f16/0.01/seed0,action:f16,0.01,0,4049,1,4049,5/7,5/7 action,1 +pusher/action__f16/0.01/seed1,action:f16,0.01,1,4049,1,4049,5/7,5/7 action,1 +pusher/action__f16/0.01/seed2,action:f16,0.01,2,4049,1,4049,5/7,5/7 action,1 +pusher/action__f16/1.0/seed0,action:f16,1.0,0,409600,1,409600,0/0,0/0 action,1 +pusher/action__f16/1.0/seed1,action:f16,1.0,1,409600,1,409600,0/0,0/0 action,1 +pusher/action__f16/1.0/seed2,action:f16,1.0,2,409600,1,409600,0/0,0/0 action,1 +pusher/action__f16/one/seed0,action:f16,one,0,1,1,1,3249/0,3249/0 action,1 +pusher/action__f16/one/seed1,action:f16,one,1,1,1,1,3249/0,3249/0 action,1 +pusher/action__f16/one/seed2,action:f16,one,2,1,1,1,3249/0,3249/0 action,1 +pusher/action__stale/0.01/seed0,action:stale,0.01,0,4049,1,4049,5/7,5/7 action,1 +pusher/action__stale/0.01/seed1,action:stale,0.01,1,4049,1,4049,5/7,5/7 action,1 +pusher/action__stale/0.01/seed2,action:stale,0.01,2,4049,1,4049,5/7,5/7 action,1 +pusher/action__stale/1.0/seed0,action:stale,1.0,0,409600,1,409600,0/0,0/0 action,1 +pusher/action__stale/1.0/seed1,action:stale,1.0,1,409600,1,409600,0/0,0/0 action,1 +pusher/action__stale/1.0/seed2,action:stale,1.0,2,409600,1,409600,0/0,0/0 action,1 +pusher/action__stale/one/seed0,action:stale,one,0,1,1,1,3249/0,3249/0 action,1 +pusher/action__stale/one/seed1,action:stale,one,1,1,1,1,3249/0,3249/0 action,1 +pusher/action__stale/one/seed2,action:stale,one,2,1,1,1,3249/0,3249/0 action,1 +pusher/action__swap/0.01/seed0,action:swap,0.01,0,4049,1,4049,5/7,5/7 action,1 +pusher/action__swap/0.01/seed1,action:swap,0.01,1,4049,1,4049,5/7,5/7 action,1 +pusher/action__swap/0.01/seed2,action:swap,0.01,2,4049,1,4049,5/7,5/7 action,1 +pusher/action__swap/1.0/seed0,action:swap,1.0,0,409600,1,409600,0/0,0/0 action,1 +pusher/action__swap/1.0/seed1,action:swap,1.0,1,409600,1,409600,0/0,0/0 action,1 +pusher/action__swap/1.0/seed2,action:swap,1.0,2,409600,1,409600,0/0,0/0 action,1 +pusher/action__swap/one/seed0,action:swap,one,0,1,1,1,3249/0,3249/0 action,1 +pusher/action__swap/one/seed1,action:swap,one,1,1,1,1,3249/0,3249/0 action,1 +pusher/action__swap/one/seed2,action:swap,one,2,1,1,1,3249/0,3249/0 action,1 +pusher/action__zero/0.01/seed0,action:zero,0.01,0,4049,1,4049,5/7,5/7 action,1 +pusher/action__zero/0.01/seed1,action:zero,0.01,1,4049,1,4049,5/7,5/7 action,1 +pusher/action__zero/0.01/seed2,action:zero,0.01,2,4049,1,4049,5/7,5/7 action,1 +pusher/action__zero/1.0/seed0,action:zero,1.0,0,409600,1,409600,0/0,0/0 action,1 +pusher/action__zero/1.0/seed1,action:zero,1.0,1,409600,1,409600,0/0,0/0 action,1 +pusher/action__zero/1.0/seed2,action:zero,1.0,2,409600,1,409600,0/0,0/0 action,1 +pusher/action__zero/one/seed0,action:zero,one,0,1,1,1,3249/0,3249/0 action,1 +pusher/action__zero/one/seed1,action:zero,one,1,1,1,1,3249/0,3249/0 action,1 +pusher/action__zero/one/seed2,action:zero,one,2,1,1,1,3249/0,3249/0 action,1 +pusher/delay-1ms/1.0/seed0,delay-1ms,1.0,0,0,0,0,,,1 +pusher/delay-1ms/1.0/seed1,delay-1ms,1.0,1,0,0,0,,,1 +pusher/delay-1ms/1.0/seed2,delay-1ms,1.0,2,0,0,0,,,1 +pusher/final-obs__f16/0.01/seed0,final-obs:f16,0.01,0,38,1,38,199/12,199/12 final,1 +pusher/final-obs__f16/0.01/seed1,final-obs:f16,0.01,1,38,1,38,199/12,199/12 final,1 +pusher/final-obs__f16/0.01/seed2,final-obs:f16,0.01,2,38,1,38,199/12,199/12 final,1 +pusher/final-obs__f16/1.0/seed0,final-obs:f16,1.0,0,4096,1,4096,99/0,99/0 final,1 +pusher/final-obs__f16/1.0/seed1,final-obs:f16,1.0,1,4096,1,4096,99/0,99/0 final,1 +pusher/final-obs__f16/1.0/seed2,final-obs:f16,1.0,2,4096,1,4096,99/0,99/0 final,1 +pusher/final-obs__f16/one/seed0,final-obs:f16,one,0,1,1,1,3299/0,3299/0 final,1 +pusher/final-obs__f16/one/seed1,final-obs:f16,one,1,1,1,1,3299/0,3299/0 final,1 +pusher/final-obs__f16/one/seed2,final-obs:f16,one,2,1,1,1,3299/0,3299/0 final,1 +pusher/final-obs__stale/0.01/seed0,final-obs:stale,0.01,0,38,1,38,199/12,199/12 final,1 +pusher/final-obs__stale/0.01/seed1,final-obs:stale,0.01,1,38,1,38,199/12,199/12 final,1 +pusher/final-obs__stale/0.01/seed2,final-obs:stale,0.01,2,38,1,38,199/12,199/12 final,1 +pusher/final-obs__stale/1.0/seed0,final-obs:stale,1.0,0,4096,1,4096,99/0,99/0 final,1 +pusher/final-obs__stale/1.0/seed1,final-obs:stale,1.0,1,4096,1,4096,99/0,99/0 final,1 +pusher/final-obs__stale/1.0/seed2,final-obs:stale,1.0,2,4096,1,4096,99/0,99/0 final,1 +pusher/final-obs__stale/one/seed0,final-obs:stale,one,0,1,1,1,3299/0,3299/0 final,1 +pusher/final-obs__stale/one/seed1,final-obs:stale,one,1,1,1,1,3299/0,3299/0 final,1 +pusher/final-obs__stale/one/seed2,final-obs:stale,one,2,1,1,1,3299/0,3299/0 final,1 +pusher/final-obs__swap/0.01/seed0,final-obs:swap,0.01,0,38,1,38,199/12,199/12 final,1 +pusher/final-obs__swap/0.01/seed1,final-obs:swap,0.01,1,38,1,38,199/12,199/12 final,1 +pusher/final-obs__swap/0.01/seed2,final-obs:swap,0.01,2,38,1,38,199/12,199/12 final,1 +pusher/final-obs__swap/1.0/seed0,final-obs:swap,1.0,0,4096,1,4096,99/0,99/0 final,1 +pusher/final-obs__swap/1.0/seed1,final-obs:swap,1.0,1,4096,1,4096,99/0,99/0 final,1 +pusher/final-obs__swap/1.0/seed2,final-obs:swap,1.0,2,4096,1,4096,99/0,99/0 final,1 +pusher/final-obs__swap/one/seed0,final-obs:swap,one,0,1,1,1,3299/0,3299/0 final,1 +pusher/final-obs__swap/one/seed1,final-obs:swap,one,1,1,1,1,3299/0,3299/0 final,1 +pusher/final-obs__swap/one/seed2,final-obs:swap,one,2,1,1,1,3299/0,3299/0 final,1 +pusher/final-obs__zero/0.01/seed0,final-obs:zero,0.01,0,38,1,38,199/12,199/12 final,1 +pusher/final-obs__zero/0.01/seed1,final-obs:zero,0.01,1,38,1,38,199/12,199/12 final,1 +pusher/final-obs__zero/0.01/seed2,final-obs:zero,0.01,2,38,1,38,199/12,199/12 final,1 +pusher/final-obs__zero/1.0/seed0,final-obs:zero,1.0,0,4096,1,4096,99/0,99/0 final,1 +pusher/final-obs__zero/1.0/seed1,final-obs:zero,1.0,1,4096,1,4096,99/0,99/0 final,1 +pusher/final-obs__zero/1.0/seed2,final-obs:zero,1.0,2,4096,1,4096,99/0,99/0 final,1 +pusher/final-obs__zero/one/seed0,final-obs:zero,one,0,1,1,1,3299/0,3299/0 final,1 +pusher/final-obs__zero/one/seed1,final-obs:zero,one,1,1,1,1,3299/0,3299/0 final,1 +pusher/final-obs__zero/one/seed2,final-obs:zero,one,2,1,1,1,3299/0,3299/0 final,1 +pusher/log__drop-first/0.01/seed0,log:drop-first,0.01,0,39,0,0,,,1 +pusher/log__drop-first/0.01/seed1,log:drop-first,0.01,1,39,0,0,,,1 +pusher/log__drop-first/0.01/seed2,log:drop-first,0.01,2,39,0,0,,,1 +pusher/log__drop-first/1.0/seed0,log:drop-first,1.0,0,4096,0,0,,,1 +pusher/log__drop-first/1.0/seed1,log:drop-first,1.0,1,4096,0,0,,,1 +pusher/log__drop-first/1.0/seed2,log:drop-first,1.0,2,4096,0,0,,,1 +pusher/log__drop-first/one/seed0,log:drop-first,one,0,1,0,0,,,1 +pusher/log__drop-first/one/seed1,log:drop-first,one,1,1,0,0,,,1 +pusher/log__drop-first/one/seed2,log:drop-first,one,2,1,0,0,,,1 +pusher/log__short/0.01/seed0,log:short,0.01,0,39,0,0,,,1 +pusher/log__short/0.01/seed1,log:short,0.01,1,39,0,0,,,1 +pusher/log__short/0.01/seed2,log:short,0.01,2,39,0,0,,,1 +pusher/log__short/1.0/seed0,log:short,1.0,0,4096,0,0,,,1 +pusher/log__short/1.0/seed1,log:short,1.0,1,4096,0,0,,,1 +pusher/log__short/1.0/seed2,log:short,1.0,2,4096,0,0,,,1 +pusher/log__short/one/seed0,log:short,one,0,1,0,0,,,1 +pusher/log__short/one/seed1,log:short,one,1,1,0,0,,,1 +pusher/log__short/one/seed2,log:short,one,2,1,0,0,,,1 +pusher/none/1.0/seed0,none,1.0,0,0,0,0,,,1 +pusher/none/1.0/seed1,none,1.0,1,0,0,0,,,1 +pusher/none/1.0/seed2,none,1.0,2,0,0,0,,,1 +pusher/obs__f16/0.01/seed0,obs:f16,0.01,0,4049,1,4049,5/7,5/7 obs,1 +pusher/obs__f16/0.01/seed1,obs:f16,0.01,1,4049,1,4049,5/7,5/7 obs,1 +pusher/obs__f16/0.01/seed2,obs:f16,0.01,2,4049,1,4049,5/7,5/7 obs,1 +pusher/obs__f16/1.0/seed0,obs:f16,1.0,0,409616,1,409600,0/0,0/0 obs,1 +pusher/obs__f16/1.0/seed1,obs:f16,1.0,1,409616,1,409600,0/0,0/0 obs,1 +pusher/obs__f16/1.0/seed2,obs:f16,1.0,2,409616,1,409600,0/0,0/0 obs,1 +pusher/obs__f16/one/seed0,obs:f16,one,0,1,1,1,3249/0,3249/0 obs,1 +pusher/obs__f16/one/seed1,obs:f16,one,1,1,1,1,3249/0,3249/0 obs,1 +pusher/obs__f16/one/seed2,obs:f16,one,2,1,1,1,3249/0,3249/0 obs,1 +pusher/obs__stale/0.01/seed0,obs:stale,0.01,0,4049,1,4049,5/7,5/7 obs,1 +pusher/obs__stale/0.01/seed1,obs:stale,0.01,1,4049,1,4049,5/7,5/7 obs,1 +pusher/obs__stale/0.01/seed2,obs:stale,0.01,2,4049,1,4049,5/7,5/7 obs,1 +pusher/obs__stale/1.0/seed0,obs:stale,1.0,0,409600,1,409584,1/0,1/0 obs,1 +pusher/obs__stale/1.0/seed1,obs:stale,1.0,1,409600,1,409584,1/0,1/0 obs,1 +pusher/obs__stale/1.0/seed2,obs:stale,1.0,2,409600,1,409584,1/0,1/0 obs,1 +pusher/obs__stale/one/seed0,obs:stale,one,0,1,1,1,3249/0,3249/0 obs,1 +pusher/obs__stale/one/seed1,obs:stale,one,1,1,1,1,3249/0,3249/0 obs,1 +pusher/obs__stale/one/seed2,obs:stale,one,2,1,1,1,3249/0,3249/0 obs,1 +pusher/obs__swap/0.01/seed0,obs:swap,0.01,0,4049,1,4049,5/7,5/7 obs,1 +pusher/obs__swap/0.01/seed1,obs:swap,0.01,1,4049,1,4049,5/7,5/7 obs,1 +pusher/obs__swap/0.01/seed2,obs:swap,0.01,2,4049,1,4049,5/7,5/7 obs,1 +pusher/obs__swap/1.0/seed0,obs:swap,1.0,0,409616,1,409600,0/0,0/0 obs,1 +pusher/obs__swap/1.0/seed1,obs:swap,1.0,1,409616,1,409600,0/0,0/0 obs,1 +pusher/obs__swap/1.0/seed2,obs:swap,1.0,2,409616,1,409600,0/0,0/0 obs,1 +pusher/obs__swap/one/seed0,obs:swap,one,0,1,1,1,3249/0,3249/0 obs,1 +pusher/obs__swap/one/seed1,obs:swap,one,1,1,1,1,3249/0,3249/0 obs,1 +pusher/obs__swap/one/seed2,obs:swap,one,2,1,1,1,3249/0,3249/0 obs,1 +pusher/obs__zero/0.01/seed0,obs:zero,0.01,0,4049,1,4049,5/7,5/7 obs,1 +pusher/obs__zero/0.01/seed1,obs:zero,0.01,1,4049,1,4049,5/7,5/7 obs,1 +pusher/obs__zero/0.01/seed2,obs:zero,0.01,2,4049,1,4049,5/7,5/7 obs,1 +pusher/obs__zero/1.0/seed0,obs:zero,1.0,0,409616,1,409600,0/0,0/0 obs,1 +pusher/obs__zero/1.0/seed1,obs:zero,1.0,1,409616,1,409600,0/0,0/0 obs,1 +pusher/obs__zero/1.0/seed2,obs:zero,1.0,2,409616,1,409600,0/0,0/0 obs,1 +pusher/obs__zero/one/seed0,obs:zero,one,0,1,1,1,3249/0,3249/0 obs,1 +pusher/obs__zero/one/seed1,obs:zero,one,1,1,1,1,3249/0,3249/0 obs,1 +pusher/obs__zero/one/seed2,obs:zero,one,2,1,1,1,3249/0,3249/0 obs,1 +pusher/reward__f16/0.01/seed0,reward:f16,0.01,0,4049,1,4049,5/7,5/7 reward,1 +pusher/reward__f16/0.01/seed1,reward:f16,0.01,1,4047,1,4047,5/7,5/7 reward,1 +pusher/reward__f16/0.01/seed2,reward:f16,0.01,2,4049,1,4049,5/7,5/7 reward,1 +pusher/reward__f16/1.0/seed0,reward:f16,1.0,0,409549,1,409549,0/0,0/0 reward,1 +pusher/reward__f16/1.0/seed1,reward:f16,1.0,1,409543,1,409543,0/0,0/0 reward,1 +pusher/reward__f16/1.0/seed2,reward:f16,1.0,2,409546,1,409546,0/0,0/0 reward,1 +pusher/reward__f16/one/seed0,reward:f16,one,0,1,1,1,3249/0,3249/0 reward,1 +pusher/reward__f16/one/seed1,reward:f16,one,1,1,1,1,3249/0,3249/0 reward,1 +pusher/reward__f16/one/seed2,reward:f16,one,2,1,1,1,3249/0,3249/0 reward,1 +pusher/reward__stale/0.01/seed0,reward:stale,0.01,0,4049,1,4049,5/7,5/7 reward,1 +pusher/reward__stale/0.01/seed1,reward:stale,0.01,1,4049,1,4049,5/7,5/7 reward,1 +pusher/reward__stale/0.01/seed2,reward:stale,0.01,2,4049,1,4049,5/7,5/7 reward,1 +pusher/reward__stale/1.0/seed0,reward:stale,1.0,0,409600,1,409600,0/0,0/0 reward,1 +pusher/reward__stale/1.0/seed1,reward:stale,1.0,1,409600,1,409600,0/0,0/0 reward,1 +pusher/reward__stale/1.0/seed2,reward:stale,1.0,2,409600,1,409600,0/0,0/0 reward,1 +pusher/reward__stale/one/seed0,reward:stale,one,0,1,1,1,3249/0,3249/0 reward,1 +pusher/reward__stale/one/seed1,reward:stale,one,1,1,1,1,3249/0,3249/0 reward,1 +pusher/reward__stale/one/seed2,reward:stale,one,2,1,1,1,3249/0,3249/0 reward,1 +pusher/reward__swap/0.01/seed0,reward:swap,0.01,0,4049,1,4049,5/7,5/7 reward,1 +pusher/reward__swap/0.01/seed1,reward:swap,0.01,1,4049,1,4049,5/7,5/7 reward,1 +pusher/reward__swap/0.01/seed2,reward:swap,0.01,2,4049,1,4049,5/7,5/7 reward,1 +pusher/reward__swap/1.0/seed0,reward:swap,1.0,0,409600,1,409600,0/0,0/0 reward,1 +pusher/reward__swap/1.0/seed1,reward:swap,1.0,1,409600,1,409600,0/0,0/0 reward,1 +pusher/reward__swap/1.0/seed2,reward:swap,1.0,2,409600,1,409600,0/0,0/0 reward,1 +pusher/reward__swap/one/seed0,reward:swap,one,0,1,1,1,3249/0,3249/0 reward,1 +pusher/reward__swap/one/seed1,reward:swap,one,1,1,1,1,3249/0,3249/0 reward,1 +pusher/reward__swap/one/seed2,reward:swap,one,2,1,1,1,3249/0,3249/0 reward,1 +pusher/reward__zero/0.01/seed0,reward:zero,0.01,0,4049,1,4049,5/7,5/7 reward,1 +pusher/reward__zero/0.01/seed1,reward:zero,0.01,1,4049,1,4049,5/7,5/7 reward,1 +pusher/reward__zero/0.01/seed2,reward:zero,0.01,2,4049,1,4049,5/7,5/7 reward,1 +pusher/reward__zero/1.0/seed0,reward:zero,1.0,0,409600,1,409600,0/0,0/0 reward,1 +pusher/reward__zero/1.0/seed1,reward:zero,1.0,1,409600,1,409600,0/0,0/0 reward,1 +pusher/reward__zero/1.0/seed2,reward:zero,1.0,2,409600,1,409600,0/0,0/0 reward,1 +pusher/reward__zero/one/seed0,reward:zero,one,0,1,1,1,3249/0,3249/0 reward,1 +pusher/reward__zero/one/seed1,reward:zero,one,1,1,1,1,3249/0,3249/0 reward,1 +pusher/reward__zero/one/seed2,reward:zero,one,2,1,1,1,3249/0,3249/0 reward,1 +pusher/step__fill/0.01/seed0,step:fill,0.01,0,4049,1,407658,5/7,5/7 action,1 +pusher/step__fill/0.01/seed1,step:fill,0.01,1,4049,1,407658,5/7,5/7 action,1 +pusher/step__fill/0.01/seed2,step:fill,0.01,2,4049,1,407658,5/7,5/7 action,1 +pusher/step__fill/1.0/seed0,step:fill,1.0,0,409600,1,409600,0/0,0/0 steps,1 +pusher/step__fill/1.0/seed1,step:fill,1.0,1,409600,1,409600,0/0,0/0 steps,1 +pusher/step__fill/1.0/seed2,step:fill,1.0,2,409600,1,409600,0/0,0/0 steps,1 +pusher/step__fill/one/seed0,step:fill,one,0,1,1,22351,3249/0,3249/0 action,1 +pusher/step__fill/one/seed1,step:fill,one,1,1,1,22351,3249/0,3249/0 action,1 +pusher/step__fill/one/seed2,step:fill,one,2,1,1,22351,3249/0,3249/0 action,1 +pusher/terminated__spurious/0.01/seed0,terminated:spurious,0.01,0,4049,1,4049,5/7,5/7 end,1 +pusher/terminated__spurious/0.01/seed1,terminated:spurious,0.01,1,4049,1,4049,5/7,5/7 end,1 +pusher/terminated__spurious/0.01/seed2,terminated:spurious,0.01,2,4049,1,4049,5/7,5/7 end,1 +pusher/terminated__spurious/1.0/seed0,terminated:spurious,1.0,0,409600,1,409600,0/0,0/0 end,1 +pusher/terminated__spurious/1.0/seed1,terminated:spurious,1.0,1,409600,1,409600,0/0,0/0 end,1 +pusher/terminated__spurious/1.0/seed2,terminated:spurious,1.0,2,409600,1,409600,0/0,0/0 end,1 +pusher/terminated__spurious/one/seed0,terminated:spurious,one,0,1,1,1,3249/0,3249/0 end,1 +pusher/terminated__spurious/one/seed1,terminated:spurious,one,1,1,1,1,3249/0,3249/0 end,1 +pusher/terminated__spurious/one/seed2,terminated:spurious,one,2,1,1,1,3249/0,3249/0 end,1 +pusher/truncated__as-term/0.01/seed0,truncated:as-term,0.01,0,38,1,38,199/12,199/12 limit,1 +pusher/truncated__as-term/0.01/seed1,truncated:as-term,0.01,1,38,1,38,199/12,199/12 limit,1 +pusher/truncated__as-term/0.01/seed2,truncated:as-term,0.01,2,38,1,38,199/12,199/12 limit,1 +pusher/truncated__as-term/1.0/seed0,truncated:as-term,1.0,0,4096,1,4096,99/0,99/0 limit,1 +pusher/truncated__as-term/1.0/seed1,truncated:as-term,1.0,1,4096,1,4096,99/0,99/0 limit,1 +pusher/truncated__as-term/1.0/seed2,truncated:as-term,1.0,2,4096,1,4096,99/0,99/0 limit,1 +pusher/truncated__as-term/one/seed0,truncated:as-term,one,0,1,1,1,3299/0,3299/0 limit,1 +pusher/truncated__as-term/one/seed1,truncated:as-term,one,1,1,1,1,3299/0,3299/0 limit,1 +pusher/truncated__as-term/one/seed2,truncated:as-term,one,2,1,1,1,3299/0,3299/0 limit,1 +pusher/truncated__drop/0.01/seed0,truncated:drop,0.01,0,38,1,38,199/12,199/12 end,1 +pusher/truncated__drop/0.01/seed1,truncated:drop,0.01,1,38,1,38,199/12,199/12 end,1 +pusher/truncated__drop/0.01/seed2,truncated:drop,0.01,2,38,1,38,199/12,199/12 end,1 +pusher/truncated__drop/1.0/seed0,truncated:drop,1.0,0,4096,1,4096,99/0,99/0 end,1 +pusher/truncated__drop/1.0/seed1,truncated:drop,1.0,1,4096,1,4096,99/0,99/0 end,1 +pusher/truncated__drop/1.0/seed2,truncated:drop,1.0,2,4096,1,4096,99/0,99/0 end,1 +pusher/truncated__drop/one/seed0,truncated:drop,one,0,1,1,1,3299/0,3299/0 end,1 +pusher/truncated__drop/one/seed1,truncated:drop,one,1,1,1,1,3299/0,3299/0 end,1 +pusher/truncated__drop/one/seed2,truncated:drop,one,2,1,1,1,3299/0,3299/0 end,1 +pusher/wire-float64/1.0/seed0,wire-float64,1.0,0,0,0,0,,,1 +pusher/wire-float64/1.0/seed1,wire-float64,1.0,1,0,0,0,,,1 +pusher/wire-float64/1.0/seed2,wire-float64,1.0,2,0,0,0,,,1 diff --git a/experiments/e58-pusher-faults/results/ledger.out b/experiments/e58-pusher-faults/results/ledger.out new file mode 100644 index 0000000..5cb498e --- /dev/null +++ b/experiments/e58-pusher-faults/results/ledger.out @@ -0,0 +1 @@ +216 runs compared; right: 216 diff --git a/experiments/e58-pusher-faults/results/load.txt b/experiments/e58-pusher-faults/results/load.txt new file mode 100644 index 0000000..f4c05da --- /dev/null +++ b/experiments/e58-pusher-faults/results/load.txt @@ -0,0 +1,2 @@ + 01:10:57 up 28 days, 14:12, 1 user, load average: 2.09, 5.03, 3.81 + 01:58:40 up 28 days, 15:00, 1 user, load average: 6.20, 9.16, 10.04 diff --git a/experiments/e58-pusher-faults/results/merge.out b/experiments/e58-pusher-faults/results/merge.out new file mode 100644 index 0000000..80f9a27 --- /dev/null +++ b/experiments/e58-pusher-faults/results/merge.out @@ -0,0 +1 @@ +226 runs diff --git a/experiments/e58-pusher-faults/results/pilot/budget.txt b/experiments/e58-pusher-faults/results/pilot/budget.txt new file mode 100644 index 0000000..bcf9e23 --- /dev/null +++ b/experiments/e58-pusher-faults/results/pilot/budget.txt @@ -0,0 +1,51 @@ + 00:52:44 up 28 days, 13:54, 1 user, load average: 0.79, 0.38, 0.79 +2 runs, 2 at a time +worker 1 done +worker 0 done + 01:01:31 up 28 days, 14:03, 1 user, load average: 2.03, 2.03, 1.55 +E58_DONE + 01:02:22 up 28 days, 14:04, 1 user, load average: 0.88, 1.71, 1.46 +26 runs, 10 at a time +worker 0 done +worker 8 done +worker 9 done +worker 7 done +worker 1 done +worker 3 done +worker 4 done +worker 5 done +worker 6 done +worker 2 done + 01:09:00 up 28 days, 14:10, 1 user, load average: 5.92, 6.76, 4.13 +E58_DONE +{ + "env": "pusher", + "fault": "none", + "dose": "1.0", + "seed": 8, + "weights_sha256": "25f2fe6f9589049716eba51bccfb0c84db7aaddd9b508d78966715e36176a9e1", + "learn_s": 507.243, + "steps": 2048000, + "torch": "2.14.1+cpu", + "client_rc": 0 +} +{ + "env": "pusher", + "fault": "none", + "dose": "1.0", + "seed": 9, + "weights_sha256": "4e4a5ca2f035c6f78ff3de4dfd33770594731e64152de8e0bbfaa7f116429ebb", + "learn_s": 510.704, + "steps": 2048000, + "torch": "2.14.1+cpu", + "client_rc": 0 +} +seed 8, first 409600 steps: 4096 episodes, first tenth -111.5, last tenth -38.9, gain 72.6 +seed 8, first 1024000 steps: 10240 episodes, first tenth -97.6, last tenth -32.9, gain 64.7 +seed 8, first 2048000 steps: 20480 episodes, first tenth -76.5, last tenth -32.0, gain 44.5 +seed 8 clean return at 2,048,000 steps (50 episodes): -30.3 +seed 9, first 409600 steps: 4096 episodes, first tenth -110.2, last tenth -36.5, gain 73.7 +seed 9, first 1024000 steps: 10240 episodes, first tenth -104.3, last tenth -29.6, gain 74.7 +seed 9, first 2048000 steps: 20480 episodes, first tenth -82.1, last tenth -27.9, gain 54.2 +seed 9 clean return at 2,048,000 steps (50 episodes): -27.7 +fault pilot none seed 9 clean return at 409,600 steps: -32.1 diff --git a/experiments/e58-pusher-faults/results/pilot/fault-by-dose.csv b/experiments/e58-pusher-faults/results/pilot/fault-by-dose.csv new file mode 100644 index 0000000..3ab0d34 --- /dev/null +++ b/experiments/e58-pusher-faults/results/pilot/fault-by-dose.csv @@ -0,0 +1,4 @@ +env,kind,dose,runs,raises,rule,strict,weights,record,bridge,either +pusher,client,one,21,0.0,0.0,,1.0,0.286,0.0,1.0 +pusher,log,one,2,0.0,0.0,,0.0,1.0,1.0,1.0 +pusher,all,one,23,0.0,0.0,,0.913,0.348,0.087,1.0 diff --git a/experiments/e58-pusher-faults/results/pilot/fault-ledger.csv b/experiments/e58-pusher-faults/results/pilot/fault-ledger.csv new file mode 100644 index 0000000..3fa188b --- /dev/null +++ b/experiments/e58-pusher-faults/results/pilot/fault-ledger.csv @@ -0,0 +1,27 @@ +run,fault,dose,seed,cells,caught,differing,injected,found,right +pusher/action__clip/one/seed9,action:clip,one,9,1,1,1,3249/0,3249/0 action,1 +pusher/action__f16/one/seed9,action:f16,one,9,1,1,1,3249/0,3249/0 action,1 +pusher/action__stale/one/seed9,action:stale,one,9,1,1,1,3249/0,3249/0 action,1 +pusher/action__swap/one/seed9,action:swap,one,9,1,1,1,3249/0,3249/0 action,1 +pusher/action__zero/one/seed9,action:zero,one,9,1,1,1,3249/0,3249/0 action,1 +pusher/delay-1ms/1.0/seed9,delay-1ms,1.0,9,0,0,0,,,1 +pusher/final-obs__f16/one/seed9,final-obs:f16,one,9,1,1,1,3299/0,3299/0 final,1 +pusher/final-obs__stale/one/seed9,final-obs:stale,one,9,1,1,1,3299/0,3299/0 final,1 +pusher/final-obs__swap/one/seed9,final-obs:swap,one,9,1,1,1,3299/0,3299/0 final,1 +pusher/final-obs__zero/one/seed9,final-obs:zero,one,9,1,1,1,3299/0,3299/0 final,1 +pusher/log__drop-first/one/seed9,log:drop-first,one,9,1,0,0,,,1 +pusher/log__short/one/seed9,log:short,one,9,1,0,0,,,1 +pusher/none/1.0/seed9,none,1.0,9,0,0,0,,,1 +pusher/obs__f16/one/seed9,obs:f16,one,9,1,1,1,3249/0,3249/0 obs,1 +pusher/obs__stale/one/seed9,obs:stale,one,9,1,1,1,3249/0,3249/0 obs,1 +pusher/obs__swap/one/seed9,obs:swap,one,9,1,1,1,3249/0,3249/0 obs,1 +pusher/obs__zero/one/seed9,obs:zero,one,9,1,1,1,3249/0,3249/0 obs,1 +pusher/reward__f16/one/seed9,reward:f16,one,9,1,1,1,3249/0,3249/0 reward,1 +pusher/reward__stale/one/seed9,reward:stale,one,9,1,1,1,3249/0,3249/0 reward,1 +pusher/reward__swap/one/seed9,reward:swap,one,9,1,1,1,3249/0,3249/0 reward,1 +pusher/reward__zero/one/seed9,reward:zero,one,9,1,1,1,3249/0,3249/0 reward,1 +pusher/step__fill/one/seed9,step:fill,one,9,1,1,22351,3249/0,3249/0 action,1 +pusher/terminated__spurious/one/seed9,terminated:spurious,one,9,1,1,1,3249/0,3249/0 end,1 +pusher/truncated__as-term/one/seed9,truncated:as-term,one,9,1,1,1,3299/0,3299/0 limit,1 +pusher/truncated__drop/one/seed9,truncated:drop,one,9,1,1,1,3299/0,3299/0 end,1 +pusher/wire-float64/1.0/seed9,wire-float64,1.0,9,0,0,0,,,1 diff --git a/experiments/e58-pusher-faults/results/pilot/fault-runs.csv b/experiments/e58-pusher-faults/results/pilot/fault-runs.csv new file mode 100644 index 0000000..c27ee8a --- /dev/null +++ b/experiments/e58-pusher-faults/results/pilot/fault-runs.csv @@ -0,0 +1,27 @@ +env,fault,dose,seed,cells,raises,rule,strict,weights,record,bridge,gain,last,episodes,sha,learn_s,raised,complete +pusher,action:clip,one,9,1,0,0,,1,0,0,74.6,-35.6,4096,f9bfa53a,116.414,,1 +pusher,action:f16,one,9,1,0,0,,1,0,0,73.5,-36.7,4096,8028322e,115.297,,1 +pusher,action:stale,one,9,1,0,0,,1,0,0,72.8,-37.4,4096,ba82ae81,111.32,,1 +pusher,action:swap,one,9,1,0,0,,1,0,0,73.2,-37.0,4096,c9f2a2b4,111.797,,1 +pusher,action:zero,one,9,1,0,0,,1,0,0,72.8,-37.4,4096,f25881f6,112.604,,1 +pusher,delay-1ms,1.0,9,0,0,0,,0,0,0,73.7,-36.5,4096,124d4c2b,153.436,,1 +pusher,final-obs:f16,one,9,1,0,0,,1,0,0,74.8,-35.4,4096,6a3c8fa8,116.346,,1 +pusher,final-obs:stale,one,9,1,0,0,,1,0,0,73.9,-36.3,4096,56c7d543,116.511,,1 +pusher,final-obs:swap,one,9,1,0,0,,1,0,0,74.4,-35.8,4096,08d73d0d,118.351,,1 +pusher,final-obs:zero,one,9,1,0,0,,1,0,0,74.3,-35.9,4096,f711a949,117.664,,1 +pusher,log:drop-first,one,9,1,0,0,,0,1,1,73.7,-36.5,4096,124d4c2b,104.258,,1 +pusher,log:short,one,9,1,0,0,,0,1,1,73.7,-36.5,4096,124d4c2b,104.66,,1 +pusher,none,1.0,9,0,0,0,,0,0,0,73.7,-36.5,4096,124d4c2b,113.445,,1 +pusher,obs:f16,one,9,1,0,0,,1,0,0,74.0,-36.2,4096,dab5eb4e,113.263,,1 +pusher,obs:stale,one,9,1,0,0,,1,0,0,73.4,-36.8,4096,887cc6d0,113.27,,1 +pusher,obs:swap,one,9,1,0,0,,1,0,0,73.1,-37.1,4096,f6da5ffe,113.65,,1 +pusher,obs:zero,one,9,1,0,0,,1,0,0,73.3,-36.9,4096,03933b6b,113.581,,1 +pusher,reward:f16,one,9,1,0,0,,1,0,0,75.1,-35.1,4096,606593c7,118.706,,1 +pusher,reward:stale,one,9,1,0,0,,1,1,0,74.0,-36.2,4096,2df9de1d,117.871,,1 +pusher,reward:swap,one,9,1,0,0,,1,1,0,73.2,-37.0,4096,d13341a4,119.072,,1 +pusher,reward:zero,one,9,1,0,0,,1,1,0,73.3,-36.9,4096,ec5960d1,116.762,,1 +pusher,step:fill,one,9,1,0,0,,1,1,0,73.6,-36.5,4095,58a32c56,104.348,,1 +pusher,terminated:spurious,one,9,1,0,0,,1,1,0,74.2,-35.9,4097,6dc4638c,104.518,,1 +pusher,truncated:as-term,one,9,1,0,0,,1,0,0,74.3,-35.8,4096,d6c7962e,105.53,,1 +pusher,truncated:drop,one,9,1,0,0,,1,1,0,74.6,-35.6,4095,7575c8ed,102.448,,1 +pusher,wire-float64,1.0,9,0,0,0,,0,0,0,73.7,-36.5,4096,124d4c2b,113.158,,1 diff --git a/experiments/e58-pusher-faults/results/registered.out b/experiments/e58-pusher-faults/results/registered.out new file mode 100644 index 0000000..3e30afd --- /dev/null +++ b/experiments/e58-pusher-faults/results/registered.out @@ -0,0 +1,14 @@ + 01:10:57 up 28 days, 14:12, 1 user, load average: 2.09, 5.03, 3.81 +226 runs, 10 at a time +worker 8 done +worker 0 done +worker 9 done +worker 7 done +worker 6 done +worker 3 done +worker 1 done +worker 5 done +worker 2 done +worker 4 done + 01:58:40 up 28 days, 15:00, 1 user, load average: 6.20, 9.16, 10.04 +E58_DONE diff --git a/experiments/e58-pusher-faults/results/runs.csv b/experiments/e58-pusher-faults/results/runs.csv new file mode 100644 index 0000000..5157542 --- /dev/null +++ b/experiments/e58-pusher-faults/results/runs.csv @@ -0,0 +1,227 @@ +env,fault,dose,seed,cells,raises,rule,strict,weights,record,bridge,gain,last,episodes,sha,learn_s,raised,complete +pusher,action:clip,0.01,0,1433,0,0,0,1,0,0,72.8,-36.3,4096,bb93edf2,114.949,,1 +pusher,action:clip,0.01,1,1454,0,0,0,1,0,0,68.9,-39.5,4096,db00e250,115.843,,1 +pusher,action:clip,0.01,2,1350,0,0,0,1,0,0,72.5,-36.7,4096,0210e9ad,117.846,,1 +pusher,action:clip,1.0,0,203780,0,0,0,1,0,0,46.5,-38.8,4096,202cf122,116.959,,1 +pusher,action:clip,1.0,1,212889,0,0,0,1,0,0,43.8,-40.7,4096,34f2f02e,112.618,,1 +pusher,action:clip,1.0,2,249421,0,0,1,1,0,0,44.0,-43.2,4096,a2062b90,112.933,,1 +pusher,action:clip,one,0,1,0,0,0,1,0,0,71.6,-37.5,4096,0ca4515f,113.245,,1 +pusher,action:clip,one,1,1,0,0,0,1,0,0,70.7,-38.3,4096,8b072c45,112.997,,1 +pusher,action:clip,one,2,1,0,0,0,1,0,0,75.4,-33.4,4096,26e62156,120.148,,1 +pusher,action:f16,0.01,0,4049,0,0,0,1,0,0,72.7,-36.6,4096,f52ff136,116.157,,1 +pusher,action:f16,0.01,1,4049,0,0,0,1,0,0,70.3,-38.2,4096,92859ad7,114.247,,1 +pusher,action:f16,0.01,2,4049,0,0,0,1,0,0,74.2,-34.8,4096,466ced8d,119.489,,1 +pusher,action:f16,1.0,0,409600,0,0,0,1,0,0,74.6,-35.2,4096,5cf67b6a,115.351,,1 +pusher,action:f16,1.0,1,409600,0,0,0,1,0,0,70.7,-38.0,4096,b33ad428,111.512,,1 +pusher,action:f16,1.0,2,409600,0,0,0,1,0,0,74.6,-34.4,4096,2a82b959,120.165,,1 +pusher,action:f16,one,0,1,0,0,0,1,0,0,73.1,-36.1,4096,c44e9e74,114.068,,1 +pusher,action:f16,one,1,1,0,0,0,1,0,0,70.8,-38.1,4096,3b500510,112.016,,1 +pusher,action:f16,one,2,1,0,0,0,1,0,0,74.6,-34.2,4096,3fcef215,119.931,,1 +pusher,action:stale,0.01,0,4049,0,0,0,1,0,0,71.8,-38.1,4096,23f36e67,116.185,,1 +pusher,action:stale,0.01,1,4049,0,0,0,1,0,0,70.2,-38.7,4096,e5ea3a18,115.239,,1 +pusher,action:stale,0.01,2,4049,0,0,0,1,0,0,74.1,-34.9,4096,389ebe06,121.39,,1 +pusher,action:stale,1.0,0,409600,0,0,0,1,0,0,72.0,-36.8,4096,3519c5ea,115.034,,1 +pusher,action:stale,1.0,1,409600,0,0,0,1,0,0,69.4,-40.2,4096,bf210048,111.606,,1 +pusher,action:stale,1.0,2,409600,0,0,0,1,0,0,72.8,-36.8,4096,158cadd1,121.665,,1 +pusher,action:stale,one,0,1,0,0,0,1,0,0,72.0,-37.2,4096,1276c717,114.727,,1 +pusher,action:stale,one,1,1,0,0,0,1,0,0,70.8,-38.2,4096,e230ac05,112.295,,1 +pusher,action:stale,one,2,1,0,0,0,1,0,0,75.0,-33.8,4096,874214dd,120.488,,1 +pusher,action:swap,0.01,0,4049,0,0,0,1,0,0,73.0,-36.7,4096,6b9d1222,115.059,,1 +pusher,action:swap,0.01,1,4049,0,0,0,1,0,0,72.7,-36.2,4096,26e557cd,114.547,,1 +pusher,action:swap,0.01,2,4049,0,0,0,1,0,0,69.5,-39.7,4096,46050b08,117.706,,1 +pusher,action:swap,1.0,0,409600,0,1,1,1,0,0,-0.7,-119.0,4096,9570f31f,107.323,,1 +pusher,action:swap,1.0,1,409600,0,1,1,1,0,0,6.3,-114.0,4096,5e83920b,109.027,,1 +pusher,action:swap,1.0,2,409600,0,1,1,1,0,0,2.5,-118.5,4096,4c8cee29,109.236,,1 +pusher,action:swap,one,0,1,0,0,0,1,0,0,73.0,-36.1,4096,c26509dc,114.311,,1 +pusher,action:swap,one,1,1,0,0,0,1,0,0,70.8,-38.1,4096,5208f617,112.419,,1 +pusher,action:swap,one,2,1,0,0,0,1,0,0,74.7,-34.0,4096,d2c2f535,121.805,,1 +pusher,action:zero,0.01,0,4049,0,0,0,1,0,0,70.7,-38.0,4096,c7814f1f,115.841,,1 +pusher,action:zero,0.01,1,4049,0,0,0,1,0,0,71.3,-36.2,4096,58d7a217,116.365,,1 +pusher,action:zero,0.01,2,4049,0,0,0,1,0,0,73.8,-35.1,4096,3c10ac38,119.007,,1 +pusher,action:zero,1.0,0,409600,0,1,1,1,0,0,-0.4,-54.5,4096,53f13dcf,106.943,,1 +pusher,action:zero,1.0,1,409600,0,1,1,1,0,0,-0.5,-54.5,4096,09ad1e81,106.16,,1 +pusher,action:zero,1.0,2,409600,0,1,1,1,0,0,-0.4,-54.6,4096,d9762f72,107.711,,1 +pusher,action:zero,one,0,1,0,0,0,1,0,0,72.0,-37.1,4096,ac0e58da,113.708,,1 +pusher,action:zero,one,1,1,0,0,0,1,0,0,70.5,-38.4,4096,2f02d40a,112.867,,1 +pusher,action:zero,one,2,1,0,0,0,1,0,0,74.0,-34.7,4096,a7cac94d,120.079,,1 +pusher,delay-1ms,1.0,0,0,0,0,0,0,0,0,71.7,-37.4,4096,d41e519b,161.126,,1 +pusher,delay-1ms,1.0,1,0,0,0,0,0,0,0,69.0,-39.9,4096,65835183,153.137,,1 +pusher,delay-1ms,1.0,2,0,0,0,0,0,0,0,74.4,-34.4,4096,6126b462,161.006,,1 +pusher,final-obs:f16,0.01,0,38,0,0,0,1,0,0,70.7,-38.3,4096,d34f5650,113.241,,1 +pusher,final-obs:f16,0.01,1,38,0,0,0,1,0,0,71.2,-37.8,4096,d30477b2,114.275,,1 +pusher,final-obs:f16,0.01,2,38,0,0,0,1,0,0,74.5,-34.5,4096,dec16a47,120.822,,1 +pusher,final-obs:f16,1.0,0,4096,0,0,0,1,0,0,71.9,-37.8,4096,198720bf,111.296,,1 +pusher,final-obs:f16,1.0,1,4096,0,0,0,1,0,0,69.8,-39.1,4096,7d59d79f,112.022,,1 +pusher,final-obs:f16,1.0,2,4096,0,0,0,1,0,0,74.8,-34.2,4096,d2823663,120.756,,1 +pusher,final-obs:f16,one,0,1,0,0,0,1,0,0,73.7,-35.4,4096,df88466a,114.462,,1 +pusher,final-obs:f16,one,1,1,0,0,0,1,0,0,70.8,-38.1,4096,d0869b01,111.588,,1 +pusher,final-obs:f16,one,2,1,0,0,0,1,0,0,74.2,-34.6,4096,4b6a4539,121.635,,1 +pusher,final-obs:stale,0.01,0,38,0,0,0,1,0,0,71.1,-38.2,4096,e4480b9a,113.64,,1 +pusher,final-obs:stale,0.01,1,38,0,0,0,1,0,0,70.0,-39.1,4096,c4577c1b,113.04,,1 +pusher,final-obs:stale,0.01,2,38,0,0,0,1,0,0,74.3,-34.8,4096,1ae87e50,119.123,,1 +pusher,final-obs:stale,1.0,0,4096,0,0,0,1,0,0,73.1,-36.1,4096,5e32f141,112.115,,1 +pusher,final-obs:stale,1.0,1,4096,0,0,0,1,0,0,70.5,-39.0,4096,6df743b0,112.61,,1 +pusher,final-obs:stale,1.0,2,4096,0,0,0,1,0,0,75.7,-33.5,4096,08f7e594,118.795,,1 +pusher,final-obs:stale,one,0,1,0,0,0,1,0,0,73.1,-36.1,4096,11e0a24c,112.262,,1 +pusher,final-obs:stale,one,1,1,0,0,0,1,0,0,69.1,-39.8,4096,73ebe5d6,112.752,,1 +pusher,final-obs:stale,one,2,1,0,0,0,1,0,0,74.5,-34.3,4096,109051ea,120.765,,1 +pusher,final-obs:swap,0.01,0,38,0,0,0,1,0,0,72.5,-37.1,4096,9fc28832,116.25,,1 +pusher,final-obs:swap,0.01,1,38,0,0,0,1,0,0,70.3,-38.9,4096,f97e630a,112.808,,1 +pusher,final-obs:swap,0.01,2,38,0,0,0,1,0,0,73.9,-35.1,4096,15bfc4ec,117.815,,1 +pusher,final-obs:swap,1.0,0,4096,0,0,0,1,0,0,72.3,-36.3,4096,1aa03a8b,117.621,,1 +pusher,final-obs:swap,1.0,1,4096,0,0,0,1,0,0,73.1,-35.0,4096,fcf8f384,118.301,,1 +pusher,final-obs:swap,1.0,2,4096,0,0,0,1,0,0,74.8,-34.6,4096,55fc1330,119.822,,1 +pusher,final-obs:swap,one,0,1,0,0,0,1,0,0,72.4,-36.7,4096,7c54c40d,111.933,,1 +pusher,final-obs:swap,one,1,1,0,0,0,1,0,0,70.4,-38.5,4096,47bb52c2,111.963,,1 +pusher,final-obs:swap,one,2,1,0,0,0,1,0,0,74.1,-34.7,4096,4d16aff8,119.678,,1 +pusher,final-obs:zero,0.01,0,38,0,0,0,1,0,0,71.6,-37.8,4096,b001da1e,114.608,,1 +pusher,final-obs:zero,0.01,1,38,0,0,0,1,0,0,70.9,-38.0,4096,a3ef5112,113.101,,1 +pusher,final-obs:zero,0.01,2,38,0,0,0,1,0,0,72.0,-37.3,4096,a602ec72,116.954,,1 +pusher,final-obs:zero,1.0,0,4096,0,0,0,1,0,0,72.9,-38.5,4096,00fc8b3c,115.936,,1 +pusher,final-obs:zero,1.0,1,4096,0,0,0,1,0,0,70.9,-39.7,4096,01f0ea0c,116.675,,1 +pusher,final-obs:zero,1.0,2,4096,0,0,0,1,0,0,74.5,-38.7,4096,eee04bbb,115.191,,1 +pusher,final-obs:zero,one,0,1,0,0,0,1,0,0,72.8,-36.4,4096,6710829a,113.674,,1 +pusher,final-obs:zero,one,1,1,0,0,0,1,0,0,70.9,-38.1,4096,bd613efd,112.362,,1 +pusher,final-obs:zero,one,2,1,0,0,0,1,0,0,74.1,-34.6,4096,5404de06,120.346,,1 +pusher,log:drop-first,0.01,0,39,0,0,0,0,1,1,71.7,-37.4,4096,d41e519b,112.154,,1 +pusher,log:drop-first,0.01,1,39,0,0,0,0,1,1,69.0,-39.9,4096,65835183,112.722,,1 +pusher,log:drop-first,0.01,2,39,0,0,0,0,1,1,74.4,-34.4,4096,6126b462,112.004,,1 +pusher,log:drop-first,1.0,0,4096,0,0,0,0,1,1,71.4,-36.6,4096,d41e519b,112.581,,1 +pusher,log:drop-first,1.0,1,4096,0,0,0,0,1,1,68.7,-39.2,4096,65835183,113.187,,1 +pusher,log:drop-first,1.0,2,4096,0,0,0,0,1,1,74.2,-33.5,4096,6126b462,116.922,,1 +pusher,log:drop-first,one,0,1,0,0,0,0,1,1,71.7,-37.4,4096,d41e519b,111.905,,1 +pusher,log:drop-first,one,1,1,0,0,0,0,1,1,69.0,-39.9,4096,65835183,111.923,,1 +pusher,log:drop-first,one,2,1,0,0,0,0,1,1,74.4,-34.4,4096,6126b462,115.772,,1 +pusher,log:short,0.01,0,39,0,0,0,0,1,1,71.7,-37.4,4096,d41e519b,111.671,,1 +pusher,log:short,0.01,1,39,0,0,0,0,1,1,69.0,-39.9,4096,65835183,113.154,,1 +pusher,log:short,0.01,2,39,0,0,0,0,1,1,74.4,-34.4,4096,6126b462,114.405,,1 +pusher,log:short,1.0,0,4096,0,0,0,0,1,1,71.7,-37.4,4096,d41e519b,111.475,,1 +pusher,log:short,1.0,1,4096,0,0,0,0,1,1,69.0,-39.9,4096,65835183,113.198,,1 +pusher,log:short,1.0,2,4096,0,0,0,0,1,1,74.4,-34.4,4096,6126b462,117.56,,1 +pusher,log:short,one,0,1,0,0,0,0,1,1,71.7,-37.4,4096,d41e519b,111.785,,1 +pusher,log:short,one,1,1,0,0,0,0,1,1,69.0,-39.9,4096,65835183,113.596,,1 +pusher,log:short,one,2,1,0,0,0,0,1,1,74.4,-34.4,4096,6126b462,112.162,,1 +pusher,none,1.0,0,0,0,0,0,0,0,0,71.7,-37.4,4096,d41e519b,118.078,,1 +pusher,none,1.0,1,0,0,0,0,0,0,0,69.0,-39.9,4096,65835183,110.786,,1 +pusher,none,1.0,2,0,0,0,0,0,0,0,74.4,-34.4,4096,6126b462,119.566,,1 +pusher,none,1.0,10,0,0,0,0,0,0,0,78.2,-32.8,4096,e9a40341,111.638,,1 +pusher,none,1.0,11,0,0,0,0,0,0,0,72.0,-37.4,4096,8ea70ae2,111.01,,1 +pusher,none,1.0,12,0,0,0,0,0,0,0,72.8,-37.2,4096,7b3c2149,111.611,,1 +pusher,none,1.0,13,0,0,0,0,0,0,0,73.0,-37.6,4096,729cb022,112.254,,1 +pusher,none,1.0,14,0,0,0,0,0,0,0,75.5,-34.6,4096,83d384f5,102.814,,1 +pusher,none,1.0,15,0,0,0,0,0,0,0,76.0,-34.8,4096,f5a8d8ff,101.484,,1 +pusher,none,1.0,16,0,0,0,0,0,0,0,74.8,-35.2,4096,fb2fb8ef,102.983,,1 +pusher,none,1.0,17,0,0,0,0,0,0,0,77.3,-35.5,4096,d4933bbc,102.122,,1 +pusher,none,1.0,18,0,0,0,0,0,0,0,74.4,-36.3,4096,db190f66,102.344,,1 +pusher,none,1.0,19,0,0,0,0,0,0,0,70.9,-39.4,4096,0f2dadb2,99.618,,1 +pusher,obs:f16,0.01,0,4049,0,0,0,1,0,0,73.2,-35.7,4096,4caa38c4,117.921,,1 +pusher,obs:f16,0.01,1,4049,0,0,0,1,0,0,71.4,-37.8,4096,ceadf246,111.437,,1 +pusher,obs:f16,0.01,2,4049,0,0,0,1,0,0,74.5,-34.5,4096,de4686a9,116.974,,1 +pusher,obs:f16,1.0,0,409616,0,0,0,1,0,0,71.6,-38.0,4096,caabf1f9,116.766,,1 +pusher,obs:f16,1.0,1,409616,0,0,0,1,0,0,68.3,-40.1,4096,4aaad3e1,114.517,,1 +pusher,obs:f16,1.0,2,409616,0,0,0,1,0,0,74.7,-34.8,4096,2d29a2d1,117.808,,1 +pusher,obs:f16,one,0,1,0,0,0,1,0,0,71.3,-37.9,4096,13dde12f,114.104,,1 +pusher,obs:f16,one,1,1,0,0,0,1,0,0,71.1,-37.8,4096,0c365702,111.384,,1 +pusher,obs:f16,one,2,1,0,0,0,1,0,0,74.2,-34.6,4096,8fd2dfbc,120.484,,1 +pusher,obs:stale,0.01,0,4049,0,0,0,1,0,0,73.2,-35.7,4096,d045798b,122.325,,1 +pusher,obs:stale,0.01,1,4049,0,0,0,1,0,0,71.0,-37.8,4096,0de69112,113.521,,1 +pusher,obs:stale,0.01,2,4049,0,0,0,1,0,0,75.7,-33.5,4096,99a75cd3,120.302,,1 +pusher,obs:stale,1.0,0,409600,0,0,0,1,0,0,71.6,-36.7,4096,e40fc984,122.48,,1 +pusher,obs:stale,1.0,1,409600,0,0,0,1,0,0,68.5,-40.0,4096,c88591b6,112.745,,1 +pusher,obs:stale,1.0,2,409600,0,0,0,1,0,0,73.1,-36.2,4096,ff71c1c5,120.02,,1 +pusher,obs:stale,one,0,1,0,0,0,1,0,0,72.9,-36.3,4096,e08896f3,119.147,,1 +pusher,obs:stale,one,1,1,0,0,0,1,0,0,69.2,-39.8,4096,9adbf307,110.536,,1 +pusher,obs:stale,one,2,1,0,0,0,1,0,0,74.2,-34.6,4096,a454efa8,120.56,,1 +pusher,obs:swap,0.01,0,4049,0,0,0,1,0,0,71.9,-37.4,4096,9e0fbb93,114.368,,1 +pusher,obs:swap,0.01,1,4049,0,0,0,1,0,0,68.5,-39.7,4096,e3448ee6,112.779,,1 +pusher,obs:swap,0.01,2,4049,0,0,0,1,0,0,73.7,-35.6,4096,64f2f670,118.601,,1 +pusher,obs:swap,1.0,0,409616,0,0,1,1,0,0,62.6,-46.3,4096,31885ab7,110.241,,1 +pusher,obs:swap,1.0,1,409616,0,0,1,1,0,0,63.0,-47.1,4096,478aad7f,109.361,,1 +pusher,obs:swap,1.0,2,409616,0,0,1,1,0,0,65.1,-46.4,4096,c63d576a,109.898,,1 +pusher,obs:swap,one,0,1,0,0,0,1,0,0,71.3,-37.8,4096,6673b065,119.791,,1 +pusher,obs:swap,one,1,1,0,0,0,1,0,0,71.0,-37.9,4096,e4273f54,112.479,,1 +pusher,obs:swap,one,2,1,0,0,0,1,0,0,74.3,-34.5,4096,d8ebd1a6,120.888,,1 +pusher,obs:zero,0.01,0,4049,0,0,0,1,0,0,71.3,-37.3,4096,547e71d5,122.313,,1 +pusher,obs:zero,0.01,1,4049,0,0,0,1,0,0,72.6,-35.2,4096,85902121,118.231,,1 +pusher,obs:zero,0.01,2,4049,0,0,0,1,0,0,74.7,-34.7,4096,81f1f2d1,122.471,,1 +pusher,obs:zero,1.0,0,409616,0,0,1,1,0,0,45.0,-62.4,4096,f972a28c,112.506,,1 +pusher,obs:zero,1.0,1,409616,0,0,1,1,0,0,39.4,-70.7,4096,1a0237b0,106.627,,1 +pusher,obs:zero,1.0,2,409616,0,0,1,1,0,0,40.3,-71.3,4096,9c799edd,107.137,,1 +pusher,obs:zero,one,0,1,0,0,0,1,0,0,71.8,-37.3,4096,ff45cdde,118.873,,1 +pusher,obs:zero,one,1,1,0,0,0,1,0,0,71.1,-37.8,4096,df52c663,110.24,,1 +pusher,obs:zero,one,2,1,0,0,0,1,0,0,73.2,-35.6,4096,783547c0,119.875,,1 +pusher,reward:f16,0.01,0,4049,0,0,0,1,0,0,70.8,-38.1,4096,d55e799a,114.347,,1 +pusher,reward:f16,0.01,1,4047,0,0,0,1,0,0,71.0,-37.6,4096,872f0dee,113.712,,1 +pusher,reward:f16,0.01,2,4049,0,0,0,1,0,0,73.9,-35.1,4096,698812ca,119.224,,1 +pusher,reward:f16,1.0,0,409549,0,0,0,1,0,0,73.2,-36.1,4096,2f4c8b3e,115.312,,1 +pusher,reward:f16,1.0,1,409543,0,0,0,1,0,0,70.1,-39.1,4096,38734034,112.769,,1 +pusher,reward:f16,1.0,2,409546,0,0,0,1,0,0,74.6,-34.6,4096,eddebd83,116.582,,1 +pusher,reward:f16,one,0,1,0,0,0,1,0,0,72.0,-37.2,4096,dc8fb504,114.297,,1 +pusher,reward:f16,one,1,1,0,0,0,1,0,0,70.5,-38.4,4096,06ec3789,111.623,,1 +pusher,reward:f16,one,2,1,0,0,0,1,0,0,73.8,-35.0,4096,ac69a662,121.455,,1 +pusher,reward:stale,0.01,0,4049,0,0,0,1,1,0,71.4,-37.9,4096,5f4d2c40,114.0,,1 +pusher,reward:stale,0.01,1,4049,0,0,0,1,1,0,70.5,-37.9,4096,d4e9bddb,112.525,,1 +pusher,reward:stale,0.01,2,4049,0,0,0,1,1,0,74.6,-35.0,4096,1995b8a1,117.777,,1 +pusher,reward:stale,1.0,0,409600,0,0,0,1,1,0,72.4,-37.5,4096,2cc42cf7,113.119,,1 +pusher,reward:stale,1.0,1,409600,0,0,0,1,1,0,70.6,-38.7,4096,a3a61376,114.162,,1 +pusher,reward:stale,1.0,2,409600,0,0,0,1,1,0,75.1,-34.6,4096,fac52a1b,118.083,,1 +pusher,reward:stale,one,0,1,0,0,0,1,1,0,72.5,-36.7,4096,6d9b80f5,114.137,,1 +pusher,reward:stale,one,1,1,0,0,0,1,1,0,69.6,-39.3,4096,eb26f4a9,112.388,,1 +pusher,reward:stale,one,2,1,0,0,0,1,1,0,73.6,-35.1,4096,e1d0ffeb,120.321,,1 +pusher,reward:swap,0.01,0,4049,0,0,0,1,1,0,71.4,-38.2,4096,68a214d3,114.358,,1 +pusher,reward:swap,0.01,1,4049,0,0,0,1,1,0,70.8,-38.5,4096,c5cfebea,112.267,,1 +pusher,reward:swap,0.01,2,4049,0,0,0,1,1,0,73.2,-35.9,4096,b03ba61e,120.046,,1 +pusher,reward:swap,1.0,0,409600,0,1,1,1,1,0,9.9,-108.0,4096,7bea54f0,105.846,,1 +pusher,reward:swap,1.0,1,409600,0,1,1,1,1,0,7.9,-113.7,4096,23786cd4,107.723,,1 +pusher,reward:swap,1.0,2,409600,0,1,1,1,1,0,-3.8,-125.5,4096,3113625a,110.102,,1 +pusher,reward:swap,one,0,1,0,0,0,1,1,0,73.2,-36.0,4096,ffdb1bfc,114.881,,1 +pusher,reward:swap,one,1,1,0,0,0,1,1,0,70.8,-38.2,4096,51d8063a,111.973,,1 +pusher,reward:swap,one,2,1,0,0,0,1,1,0,75.2,-33.6,4096,469e5c7f,122.103,,1 +pusher,reward:zero,0.01,0,4049,0,0,0,1,1,0,73.5,-34.5,4096,cd3f0a27,116.975,,1 +pusher,reward:zero,0.01,1,4049,0,0,0,1,1,0,72.9,-35.0,4096,4a679e34,116.152,,1 +pusher,reward:zero,0.01,2,4049,0,0,0,1,1,0,74.2,-34.1,4096,c419a5a1,119.486,,1 +pusher,reward:zero,1.0,0,409600,0,1,1,1,1,0,0.0,0.0,4096,62f7004c,106.867,,1 +pusher,reward:zero,1.0,1,409600,0,1,1,1,1,0,0.0,0.0,4096,394a45d4,107.118,,1 +pusher,reward:zero,1.0,2,409600,0,1,1,1,1,0,0.0,0.0,4096,51687f04,107.393,,1 +pusher,reward:zero,one,0,1,0,0,0,1,1,0,72.1,-37.0,4096,36c10899,112.431,,1 +pusher,reward:zero,one,1,1,0,0,0,1,1,0,71.4,-37.6,4096,41991045,112.097,,1 +pusher,reward:zero,one,2,1,0,0,0,1,1,0,74.5,-34.3,4096,7c26c6b9,119.744,,1 +pusher,step:fill,0.01,0,4049,0,0,0,1,1,0,72.7,-35.1,4048,5d236041,117.659,,1 +pusher,step:fill,0.01,1,4049,0,0,0,1,1,0,70.2,-38.7,4048,4b265055,113.743,,1 +pusher,step:fill,0.01,2,4049,0,0,0,1,1,0,72.5,-36.5,4048,f6287830,112.614,,1 +pusher,step:fill,1.0,0,409600,0,1,1,1,0,0,,,0,095a109b,79.68,,1 +pusher,step:fill,1.0,1,409600,0,1,1,1,0,0,,,0,da934b6d,79.178,,1 +pusher,step:fill,1.0,2,409600,0,1,1,1,0,0,,,0,b05e1e9f,79.958,,1 +pusher,step:fill,one,0,1,0,0,0,1,1,0,73.6,-35.5,4095,35a10ae4,113.818,,1 +pusher,step:fill,one,1,1,0,0,0,1,1,0,70.5,-38.5,4095,8c21b1bd,111.431,,1 +pusher,step:fill,one,2,1,0,0,0,1,1,0,75.0,-33.7,4095,b707ac5f,119.598,,1 +pusher,terminated:spurious,0.01,0,4049,0,1,0,1,1,0,19.3,-34.9,8107,bcbb59a8,107.21,,1 +pusher,terminated:spurious,0.01,1,4049,0,1,0,1,1,0,22.4,-32.3,8107,50c468eb,105.645,,1 +pusher,terminated:spurious,0.01,2,4049,0,1,1,1,1,0,25.1,-30.2,8107,01cfac05,109.682,,1 +pusher,terminated:spurious,1.0,0,409600,0,1,1,1,1,0,0.3,-0.5,409600,9ab9689f,108.857,,1 +pusher,terminated:spurious,1.0,1,409600,0,1,1,1,1,0,0.3,-0.5,409600,b3a8fe9c,109.08,,1 +pusher,terminated:spurious,1.0,2,409600,0,1,1,1,1,0,0.3,-0.5,409600,ff364146,109.449,,1 +pusher,terminated:spurious,one,0,1,0,0,0,1,1,0,70.3,-38.8,4097,64fa5e9a,113.064,,1 +pusher,terminated:spurious,one,1,1,0,0,0,1,1,0,70.0,-38.9,4097,4c44114c,110.946,,1 +pusher,terminated:spurious,one,2,1,0,0,0,1,1,0,73.8,-35.0,4097,d7f15888,120.274,,1 +pusher,truncated:as-term,0.01,0,38,0,0,0,1,0,0,69.2,-40.7,4096,9a547d41,111.367,,1 +pusher,truncated:as-term,0.01,1,38,0,0,0,1,0,0,71.2,-37.5,4096,5c8da25a,115.951,,1 +pusher,truncated:as-term,0.01,2,38,0,0,0,1,0,0,72.7,-36.8,4096,d4a0b3f7,116.591,,1 +pusher,truncated:as-term,1.0,0,4096,0,0,1,1,0,0,54.5,-58.6,4096,a21ec041,107.719,,1 +pusher,truncated:as-term,1.0,1,4096,0,0,1,1,0,0,36.2,-75.6,4096,2c830d25,105.447,,1 +pusher,truncated:as-term,1.0,2,4096,0,0,1,1,0,0,52.6,-64.0,4096,2039104a,106.6,,1 +pusher,truncated:as-term,one,0,1,0,0,0,1,0,0,72.4,-36.7,4096,30a4872c,112.633,,1 +pusher,truncated:as-term,one,1,1,0,0,0,1,0,0,69.5,-39.4,4096,f9a4f5fb,110.263,,1 +pusher,truncated:as-term,one,2,1,0,0,0,1,0,0,75.7,-33.1,4096,ab69473c,118.915,,1 +pusher,truncated:drop,0.01,0,38,0,0,0,1,1,0,72.7,-37.7,4058,0904fa0d,114.725,,1 +pusher,truncated:drop,0.01,1,38,0,0,0,1,1,0,72.9,-36.8,4058,c83c6d84,117.007,,1 +pusher,truncated:drop,0.01,2,38,0,0,0,1,1,0,72.9,-37.8,4058,36c8f10f,116.009,,1 +pusher,truncated:drop,1.0,0,4096,0,1,1,1,1,0,,,0,369d70ed,117.404,,1 +pusher,truncated:drop,1.0,1,4096,0,1,1,1,1,0,,,0,10a9228a,116.383,,1 +pusher,truncated:drop,1.0,2,4096,0,1,1,1,1,0,,,0,5cc8b540,115.803,,1 +pusher,truncated:drop,one,0,1,0,0,0,1,1,0,71.7,-37.4,4095,572ec711,112.153,,1 +pusher,truncated:drop,one,1,1,0,0,0,1,1,0,70.6,-38.4,4095,1db72fb1,113.443,,1 +pusher,truncated:drop,one,2,1,0,0,0,1,1,0,74.5,-34.3,4095,762e384f,117.725,,1 +pusher,wire-float64,1.0,0,0,0,0,0,0,0,0,71.7,-37.4,4096,d41e519b,118.634,,1 +pusher,wire-float64,1.0,1,0,0,0,0,0,0,0,69.0,-39.9,4096,65835183,112.272,,1 +pusher,wire-float64,1.0,2,0,0,0,0,0,0,0,74.4,-34.4,4096,6126b462,118.841,,1 diff --git a/experiments/e58-pusher-faults/results/runs.jsonl b/experiments/e58-pusher-faults/results/runs.jsonl new file mode 100644 index 0000000..4a821ba --- /dev/null +++ b/experiments/e58-pusher-faults/results/runs.jsonl @@ -0,0 +1,226 @@ +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1433 cells changed", "dose": "0.01", "env": "pusher", "fault": "action:clip", "fault_json": {"cells": 1433, "dose": "0.01", "fault": "action:clip", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "action:clip", "learn_s": 114.949, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "bb93edf241f5d25c1a24f87f5ce535b6d037da68bda9adc50f7a34f3d6a338c3"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:clip\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"bb93edf241f5d25c1a24f87f5ce535b6d037da68bda9adc50f7a34f3d6a338c3\", \"learn_s\": 114.949, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1454 cells changed", "dose": "0.01", "env": "pusher", "fault": "action:clip", "fault_json": {"cells": 1454, "dose": "0.01", "fault": "action:clip", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "action:clip", "learn_s": 115.843, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "db00e2502238011fb284f1b63ef1ae1e8fba639a4deb88620124834457ea041c"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:clip\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"db00e2502238011fb284f1b63ef1ae1e8fba639a4deb88620124834457ea041c\", \"learn_s\": 115.843, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1350 cells changed", "dose": "0.01", "env": "pusher", "fault": "action:clip", "fault_json": {"cells": 1350, "dose": "0.01", "fault": "action:clip", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "action:clip", "learn_s": 117.846, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "0210e9ad0a86500f779c3f45e5e6fcfddb062e53ce702fadadc44f533c12625a"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:clip\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"0210e9ad0a86500f779c3f45e5e6fcfddb062e53ce702fadadc44f533c12625a\", \"learn_s\": 117.846, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 203780 cells changed", "dose": "1.0", "env": "pusher", "fault": "action:clip", "fault_json": {"cells": 203780, "dose": "1.0", "fault": "action:clip", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "action:clip", "learn_s": 116.959, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "202cf1226d3db6e35e36b6690df7ce25c811e79ca6cd092a1a7678f9972ab2ac"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:clip\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"202cf1226d3db6e35e36b6690df7ce25c811e79ca6cd092a1a7678f9972ab2ac\", \"learn_s\": 116.959, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 212889 cells changed", "dose": "1.0", "env": "pusher", "fault": "action:clip", "fault_json": {"cells": 212889, "dose": "1.0", "fault": "action:clip", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "action:clip", "learn_s": 112.618, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "34f2f02e548754baa04fd251dee9825ae133eb4dc9ef4a3408c72c92fd830567"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:clip\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"34f2f02e548754baa04fd251dee9825ae133eb4dc9ef4a3408c72c92fd830567\", \"learn_s\": 112.618, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 249421 cells changed", "dose": "1.0", "env": "pusher", "fault": "action:clip", "fault_json": {"cells": 249421, "dose": "1.0", "fault": "action:clip", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "action:clip", "learn_s": 112.933, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "a2062b9041be15580b9a4e75736008dd8efe415c034c57e38c695bd170e786b2"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:clip\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"a2062b9041be15580b9a4e75736008dd8efe415c034c57e38c695bd170e786b2\", \"learn_s\": 112.933, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "action:clip", "fault_json": {"cells": 1, "dose": "one", "fault": "action:clip", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "action:clip", "learn_s": 113.245, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "0ca4515f803d4e8e05871776005b4e98b735378b8d3a279818608a052b8240d6"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:clip\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"0ca4515f803d4e8e05871776005b4e98b735378b8d3a279818608a052b8240d6\", \"learn_s\": 113.245, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "action:clip", "fault_json": {"cells": 1, "dose": "one", "fault": "action:clip", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "action:clip", "learn_s": 112.997, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "8b072c45ebf1d5bc933800cb3046d4483c0939b371a2ca375a8f7050104acfb3"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:clip\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"8b072c45ebf1d5bc933800cb3046d4483c0939b371a2ca375a8f7050104acfb3\", \"learn_s\": 112.997, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "action:clip", "fault_json": {"cells": 1, "dose": "one", "fault": "action:clip", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "action:clip", "learn_s": 120.148, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "26e62156df96027440ece7ab4baeb15ae21a23f356067adfe6dcdb501e5d49f2"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:clip\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"26e62156df96027440ece7ab4baeb15ae21a23f356067adfe6dcdb501e5d49f2\", \"learn_s\": 120.148, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "action:f16", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "action:f16", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "action:f16", "learn_s": 116.157, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "f52ff136cde2960f727915e52f2c6a8abee8332a92561c5a4c18921b1b1f4a09"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:f16\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"f52ff136cde2960f727915e52f2c6a8abee8332a92561c5a4c18921b1b1f4a09\", \"learn_s\": 116.157, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "action:f16", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "action:f16", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "action:f16", "learn_s": 114.247, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "92859ad79f668db73c9d75ca1217a5577f05044494aa60b388333bdcc88e1319"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:f16\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"92859ad79f668db73c9d75ca1217a5577f05044494aa60b388333bdcc88e1319\", \"learn_s\": 114.247, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "action:f16", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "action:f16", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "action:f16", "learn_s": 119.489, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "466ced8d0fc7c2bf9ac05d10ac79303bea1042f86eba56dea02d4305fa959fd0"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:f16\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"466ced8d0fc7c2bf9ac05d10ac79303bea1042f86eba56dea02d4305fa959fd0\", \"learn_s\": 119.489, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "action:f16", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "action:f16", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "action:f16", "learn_s": 115.351, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "5cf67b6aee2e719261c0bc559dbc286bc5deac24b9d78d024ed9768cfffcb565"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:f16\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"5cf67b6aee2e719261c0bc559dbc286bc5deac24b9d78d024ed9768cfffcb565\", \"learn_s\": 115.351, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "action:f16", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "action:f16", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "action:f16", "learn_s": 111.512, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "b33ad42859374786551cdb82f5c437abc870496b019f3231a96508e27d86601e"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:f16\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"b33ad42859374786551cdb82f5c437abc870496b019f3231a96508e27d86601e\", \"learn_s\": 111.512, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "action:f16", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "action:f16", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "action:f16", "learn_s": 120.165, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "2a82b95962d185115c95a01b1626d603b918e78c3e5aad81c42ab0c06d0500fa"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:f16\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"2a82b95962d185115c95a01b1626d603b918e78c3e5aad81c42ab0c06d0500fa\", \"learn_s\": 120.165, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "action:f16", "fault_json": {"cells": 1, "dose": "one", "fault": "action:f16", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "action:f16", "learn_s": 114.068, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "c44e9e7448ed3095d35bab5a2441f6a4f88166e9bc342a1bf509499e970abd8d"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:f16\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"c44e9e7448ed3095d35bab5a2441f6a4f88166e9bc342a1bf509499e970abd8d\", \"learn_s\": 114.068, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "action:f16", "fault_json": {"cells": 1, "dose": "one", "fault": "action:f16", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "action:f16", "learn_s": 112.016, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "3b5005107179be765672f9eb75765aebb211709fcf205d789a46fd50dea2f644"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:f16\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"3b5005107179be765672f9eb75765aebb211709fcf205d789a46fd50dea2f644\", \"learn_s\": 112.016, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "action:f16", "fault_json": {"cells": 1, "dose": "one", "fault": "action:f16", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "action:f16", "learn_s": 119.931, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "3fcef215b21aa54d922007a0071559f84d5f3e79178c36afe88ec7373f17fcbd"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:f16\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"3fcef215b21aa54d922007a0071559f84d5f3e79178c36afe88ec7373f17fcbd\", \"learn_s\": 119.931, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "action:stale", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "action:stale", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "action:stale", "learn_s": 116.185, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "23f36e67050c045b85deb888704190ac0844456b906121d5b173b0079eb1080a"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:stale\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"23f36e67050c045b85deb888704190ac0844456b906121d5b173b0079eb1080a\", \"learn_s\": 116.185, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "action:stale", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "action:stale", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "action:stale", "learn_s": 115.239, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "e5ea3a189a68fbaaa18e9ab70b8a2a08856d3dbbaaa163644cae5bbff384db47"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:stale\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"e5ea3a189a68fbaaa18e9ab70b8a2a08856d3dbbaaa163644cae5bbff384db47\", \"learn_s\": 115.239, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "action:stale", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "action:stale", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "action:stale", "learn_s": 121.39, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "389ebe06fb6d809e5547034c04c4f1f502c386142d046e919f5f39baeb0e28dc"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:stale\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"389ebe06fb6d809e5547034c04c4f1f502c386142d046e919f5f39baeb0e28dc\", \"learn_s\": 121.39, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "action:stale", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "action:stale", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "action:stale", "learn_s": 115.034, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "3519c5ea499864cfd4d5d00f89a82d65ef0ecc76e18433d50a52abed206366d2"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:stale\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"3519c5ea499864cfd4d5d00f89a82d65ef0ecc76e18433d50a52abed206366d2\", \"learn_s\": 115.034, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "action:stale", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "action:stale", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "action:stale", "learn_s": 111.606, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "bf21004820996e6759c895f63eeb4b5dc0a952a8e3a0a12d230f017b6c02cdd0"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:stale\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"bf21004820996e6759c895f63eeb4b5dc0a952a8e3a0a12d230f017b6c02cdd0\", \"learn_s\": 111.606, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "action:stale", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "action:stale", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "action:stale", "learn_s": 121.665, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "158cadd1e61d5b31bba303341484ce18ebf6e6a3455a7b391ed887c4a0d83999"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:stale\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"158cadd1e61d5b31bba303341484ce18ebf6e6a3455a7b391ed887c4a0d83999\", \"learn_s\": 121.665, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "action:stale", "fault_json": {"cells": 1, "dose": "one", "fault": "action:stale", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "action:stale", "learn_s": 114.727, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "1276c71755fbb5936a361d635f29b34fa0e68abde2cf260fdaa0303db2ea87bb"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:stale\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"1276c71755fbb5936a361d635f29b34fa0e68abde2cf260fdaa0303db2ea87bb\", \"learn_s\": 114.727, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "action:stale", "fault_json": {"cells": 1, "dose": "one", "fault": "action:stale", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "action:stale", "learn_s": 112.295, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "e230ac05b8c1f919dec71c5c396315882ccbd8b6e262f55f24ead025f91aa3fc"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:stale\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"e230ac05b8c1f919dec71c5c396315882ccbd8b6e262f55f24ead025f91aa3fc\", \"learn_s\": 112.295, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "action:stale", "fault_json": {"cells": 1, "dose": "one", "fault": "action:stale", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "action:stale", "learn_s": 120.488, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "874214dd60208f080e3f873170fbd9d7e561ee898d1ec7f558913fa4784b15b6"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:stale\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"874214dd60208f080e3f873170fbd9d7e561ee898d1ec7f558913fa4784b15b6\", \"learn_s\": 120.488, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "action:swap", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "action:swap", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "action:swap", "learn_s": 115.059, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "6b9d1222db0b6c1128d7080852c0905541fdd4cc73c5233c9038895322619114"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:swap\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"6b9d1222db0b6c1128d7080852c0905541fdd4cc73c5233c9038895322619114\", \"learn_s\": 115.059, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "action:swap", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "action:swap", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "action:swap", "learn_s": 114.547, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "26e557cd04d83de54df8a9012c68a9e29c31d133dd2ef4654c40c65e24b888ab"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:swap\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"26e557cd04d83de54df8a9012c68a9e29c31d133dd2ef4654c40c65e24b888ab\", \"learn_s\": 114.547, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "action:swap", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "action:swap", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "action:swap", "learn_s": 117.706, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "46050b0857d01f30291f7e5cd92437a870daa4e24393304f1819fa6466b972ef"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:swap\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"46050b0857d01f30291f7e5cd92437a870daa4e24393304f1819fa6466b972ef\", \"learn_s\": 117.706, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "action:swap", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "action:swap", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "action:swap", "learn_s": 107.323, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "9570f31f0df8ec34b233fe28f26119ec488bfc7ea09953c2e5bf3d16ff18695b"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:swap\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"9570f31f0df8ec34b233fe28f26119ec488bfc7ea09953c2e5bf3d16ff18695b\", \"learn_s\": 107.323, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "action:swap", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "action:swap", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "action:swap", "learn_s": 109.027, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "5e83920bd7ebdf3754a8932ed3c5a43f73003252eec238a875f34e2f4ee18f01"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:swap\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"5e83920bd7ebdf3754a8932ed3c5a43f73003252eec238a875f34e2f4ee18f01\", \"learn_s\": 109.027, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "action:swap", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "action:swap", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "action:swap", "learn_s": 109.236, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "4c8cee2903ab9ca6cf55ca6599eb86b1329d3b10d4ba139f7a2b17ccfedb9c71"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:swap\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"4c8cee2903ab9ca6cf55ca6599eb86b1329d3b10d4ba139f7a2b17ccfedb9c71\", \"learn_s\": 109.236, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "action:swap", "fault_json": {"cells": 1, "dose": "one", "fault": "action:swap", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "action:swap", "learn_s": 114.311, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "c26509dcfffc52c9d4865bd53241ef31a4b09d4d857c84e889721bd7119c6253"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:swap\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"c26509dcfffc52c9d4865bd53241ef31a4b09d4d857c84e889721bd7119c6253\", \"learn_s\": 114.311, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "action:swap", "fault_json": {"cells": 1, "dose": "one", "fault": "action:swap", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "action:swap", "learn_s": 112.419, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "5208f61705fc6e940d6e04337e68f789f08a12bbc9ac12eec091353b9dc5742c"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:swap\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"5208f61705fc6e940d6e04337e68f789f08a12bbc9ac12eec091353b9dc5742c\", \"learn_s\": 112.419, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "action:swap", "fault_json": {"cells": 1, "dose": "one", "fault": "action:swap", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "action:swap", "learn_s": 121.805, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "d2c2f5357c8cc38482c38e2c33a1e87c3ab443d43e19dbc5b1877341cb6302f9"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:swap\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"d2c2f5357c8cc38482c38e2c33a1e87c3ab443d43e19dbc5b1877341cb6302f9\", \"learn_s\": 121.805, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "action:zero", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "action:zero", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "action:zero", "learn_s": 115.841, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "c7814f1f3b6f31cc3f5ff91132b23cc89172eabb9ead2502dbab33ed9f807509"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:zero\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"c7814f1f3b6f31cc3f5ff91132b23cc89172eabb9ead2502dbab33ed9f807509\", \"learn_s\": 115.841, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "action:zero", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "action:zero", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "action:zero", "learn_s": 116.365, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "58d7a217777f72ea97be982dc18419055b0836a67bdbb06b2b1765abc6c06433"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:zero\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"58d7a217777f72ea97be982dc18419055b0836a67bdbb06b2b1765abc6c06433\", \"learn_s\": 116.365, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "action:zero", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "action:zero", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "action:zero", "learn_s": 119.007, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "3c10ac38a63c23a0657abbbff1909e44d5647b515c8d4c139c27cee3912f7545"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:zero\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"3c10ac38a63c23a0657abbbff1909e44d5647b515c8d4c139c27cee3912f7545\", \"learn_s\": 119.007, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "action:zero", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "action:zero", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "action:zero", "learn_s": 106.943, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "53f13dcfa96a5b1c3b5b5c3ff169e1f51896a6e78db3b63dcbe5389153d3541a"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:zero\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"53f13dcfa96a5b1c3b5b5c3ff169e1f51896a6e78db3b63dcbe5389153d3541a\", \"learn_s\": 106.943, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "action:zero", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "action:zero", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "action:zero", "learn_s": 106.16, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "09ad1e814757821c3287f709a969e4e86b51c79f22d662248f57ad98cca1a862"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:zero\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"09ad1e814757821c3287f709a969e4e86b51c79f22d662248f57ad98cca1a862\", \"learn_s\": 106.16, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "action:zero", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "action:zero", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "action:zero", "learn_s": 107.711, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "d9762f7283b8b0399290965e96d77755f971df7356b7d87be7655347f979d481"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:zero\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"d9762f7283b8b0399290965e96d77755f971df7356b7d87be7655347f979d481\", \"learn_s\": 107.711, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "action:zero", "fault_json": {"cells": 1, "dose": "one", "fault": "action:zero", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "action:zero", "learn_s": 113.708, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "ac0e58dadb80ff873edef3c226eb5df3708c3f9abc815b03c241072cad2e88a4"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:zero\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"ac0e58dadb80ff873edef3c226eb5df3708c3f9abc815b03c241072cad2e88a4\", \"learn_s\": 113.708, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "action:zero", "fault_json": {"cells": 1, "dose": "one", "fault": "action:zero", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "action:zero", "learn_s": 112.867, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "2f02d40aa301a438331ee72415998f9aa1ea274081325462947b2e18ef67ac5c"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:zero\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"2f02d40aa301a438331ee72415998f9aa1ea274081325462947b2e18ef67ac5c\", \"learn_s\": 112.867, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "action:zero", "fault_json": {"cells": 1, "dose": "one", "fault": "action:zero", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "action:zero", "learn_s": 120.079, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "a7cac94d818f73f0d723809f420a60d0ce27eddbb666cca9d7881e1cc75322a2"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"action:zero\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"a7cac94d818f73f0d723809f420a60d0ce27eddbb666cca9d7881e1cc75322a2\", \"learn_s\": 120.079, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pusher", "fault": "delay-1ms", "fault_json": {"cells": 0, "dose": "1.0", "fault": "delay-1ms", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "delay-1ms", "learn_s": 161.126, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "d41e519b18c6944f218f4b10dd51ad62c601829e5d3f66094a3830b499c9a78f"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"delay-1ms\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"d41e519b18c6944f218f4b10dd51ad62c601829e5d3f66094a3830b499c9a78f\", \"learn_s\": 161.126, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pusher", "fault": "delay-1ms", "fault_json": {"cells": 0, "dose": "1.0", "fault": "delay-1ms", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "delay-1ms", "learn_s": 153.137, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "658351831b2fa3fd07566569396f5e45be86787fa4bf3a5883de9bf864069b1e"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"delay-1ms\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"658351831b2fa3fd07566569396f5e45be86787fa4bf3a5883de9bf864069b1e\", \"learn_s\": 153.137, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pusher", "fault": "delay-1ms", "fault_json": {"cells": 0, "dose": "1.0", "fault": "delay-1ms", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "delay-1ms", "learn_s": 161.006, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "6126b462a85d0cb323c333b804f327de0d7eb6e90f04805189397e884597aa17"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"delay-1ms\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"6126b462a85d0cb323c333b804f327de0d7eb6e90f04805189397e884597aa17\", \"learn_s\": 161.006, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 38 cells changed", "dose": "0.01", "env": "pusher", "fault": "final-obs:f16", "fault_json": {"cells": 38, "dose": "0.01", "fault": "final-obs:f16", "first": [199, 12], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "final-obs:f16", "learn_s": 113.241, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "d34f565041ad592969a1b21bd29924653caecc1640453555310dfcde15344a20"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:f16\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"d34f565041ad592969a1b21bd29924653caecc1640453555310dfcde15344a20\", \"learn_s\": 113.241, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 38 cells changed", "dose": "0.01", "env": "pusher", "fault": "final-obs:f16", "fault_json": {"cells": 38, "dose": "0.01", "fault": "final-obs:f16", "first": [199, 12], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "final-obs:f16", "learn_s": 114.275, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "d30477b2295fa680075e397e6b5d145c723337fe8084eeb4f92ceb206848ef89"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:f16\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"d30477b2295fa680075e397e6b5d145c723337fe8084eeb4f92ceb206848ef89\", \"learn_s\": 114.275, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 38 cells changed", "dose": "0.01", "env": "pusher", "fault": "final-obs:f16", "fault_json": {"cells": 38, "dose": "0.01", "fault": "final-obs:f16", "first": [199, 12], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "final-obs:f16", "learn_s": 120.822, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "dec16a47fd45a864eb2b7836c9b055a4ca78e4a2636b41d86240c24e425050dd"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:f16\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"dec16a47fd45a864eb2b7836c9b055a4ca78e4a2636b41d86240c24e425050dd\", \"learn_s\": 120.822, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4096 cells changed", "dose": "1.0", "env": "pusher", "fault": "final-obs:f16", "fault_json": {"cells": 4096, "dose": "1.0", "fault": "final-obs:f16", "first": [99, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "final-obs:f16", "learn_s": 111.296, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "198720bf3cd8808bf2cbf85c0176036e78fad1ada9968bb15308a83f460eaa49"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:f16\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"198720bf3cd8808bf2cbf85c0176036e78fad1ada9968bb15308a83f460eaa49\", \"learn_s\": 111.296, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4096 cells changed", "dose": "1.0", "env": "pusher", "fault": "final-obs:f16", "fault_json": {"cells": 4096, "dose": "1.0", "fault": "final-obs:f16", "first": [99, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "final-obs:f16", "learn_s": 112.022, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "7d59d79f20134b088e0ef45f0625264d22f362ea09c10a40ff716de9cb11f617"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:f16\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"7d59d79f20134b088e0ef45f0625264d22f362ea09c10a40ff716de9cb11f617\", \"learn_s\": 112.022, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4096 cells changed", "dose": "1.0", "env": "pusher", "fault": "final-obs:f16", "fault_json": {"cells": 4096, "dose": "1.0", "fault": "final-obs:f16", "first": [99, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "final-obs:f16", "learn_s": 120.756, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "d2823663f18dd2b331e32b8826a728118b032c681f92c3f06155a8cab7dcc78d"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:f16\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"d2823663f18dd2b331e32b8826a728118b032c681f92c3f06155a8cab7dcc78d\", \"learn_s\": 120.756, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "final-obs:f16", "fault_json": {"cells": 1, "dose": "one", "fault": "final-obs:f16", "first": [3299, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "final-obs:f16", "learn_s": 114.462, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "df88466a8e3698dcfcb4a940b2fa97afc1aa7566d96c187b0ff36f2b787602c3"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:f16\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"df88466a8e3698dcfcb4a940b2fa97afc1aa7566d96c187b0ff36f2b787602c3\", \"learn_s\": 114.462, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "final-obs:f16", "fault_json": {"cells": 1, "dose": "one", "fault": "final-obs:f16", "first": [3299, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "final-obs:f16", "learn_s": 111.588, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "d0869b0179ead805772aafbb5a15394e4922ddb2f9b088f6263ba22620ae7553"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:f16\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"d0869b0179ead805772aafbb5a15394e4922ddb2f9b088f6263ba22620ae7553\", \"learn_s\": 111.588, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "final-obs:f16", "fault_json": {"cells": 1, "dose": "one", "fault": "final-obs:f16", "first": [3299, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "final-obs:f16", "learn_s": 121.635, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "4b6a4539ca64a08616e027629120ee5f88b271369df46b00c0a1c35dcd2f82ba"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:f16\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"4b6a4539ca64a08616e027629120ee5f88b271369df46b00c0a1c35dcd2f82ba\", \"learn_s\": 121.635, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 38 cells changed", "dose": "0.01", "env": "pusher", "fault": "final-obs:stale", "fault_json": {"cells": 38, "dose": "0.01", "fault": "final-obs:stale", "first": [199, 12], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "final-obs:stale", "learn_s": 113.64, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "e4480b9a79a7e94b396fb8d50771d9252cd97b457c90991d7ba456e2e05452a5"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:stale\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"e4480b9a79a7e94b396fb8d50771d9252cd97b457c90991d7ba456e2e05452a5\", \"learn_s\": 113.64, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 38 cells changed", "dose": "0.01", "env": "pusher", "fault": "final-obs:stale", "fault_json": {"cells": 38, "dose": "0.01", "fault": "final-obs:stale", "first": [199, 12], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "final-obs:stale", "learn_s": 113.04, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "c4577c1b964351e770dd1c81b5bf4b3bbf459568444d3038ba84ec65588810b8"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:stale\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"c4577c1b964351e770dd1c81b5bf4b3bbf459568444d3038ba84ec65588810b8\", \"learn_s\": 113.04, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 38 cells changed", "dose": "0.01", "env": "pusher", "fault": "final-obs:stale", "fault_json": {"cells": 38, "dose": "0.01", "fault": "final-obs:stale", "first": [199, 12], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "final-obs:stale", "learn_s": 119.123, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "1ae87e5006d57db6dc3076b3da7f7126e2a58a614990e37e20159867947084b1"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:stale\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"1ae87e5006d57db6dc3076b3da7f7126e2a58a614990e37e20159867947084b1\", \"learn_s\": 119.123, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4096 cells changed", "dose": "1.0", "env": "pusher", "fault": "final-obs:stale", "fault_json": {"cells": 4096, "dose": "1.0", "fault": "final-obs:stale", "first": [99, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "final-obs:stale", "learn_s": 112.115, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "5e32f14158e34d2b7cf7b7f6abb7b44a81ae560600cd9d06f51578f78f1eeb5b"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:stale\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"5e32f14158e34d2b7cf7b7f6abb7b44a81ae560600cd9d06f51578f78f1eeb5b\", \"learn_s\": 112.115, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4096 cells changed", "dose": "1.0", "env": "pusher", "fault": "final-obs:stale", "fault_json": {"cells": 4096, "dose": "1.0", "fault": "final-obs:stale", "first": [99, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "final-obs:stale", "learn_s": 112.61, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "6df743b0c4dadeb9ba322d6acabfbdcc0ac258526c26faf0ed67f0a28f3c6d00"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:stale\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"6df743b0c4dadeb9ba322d6acabfbdcc0ac258526c26faf0ed67f0a28f3c6d00\", \"learn_s\": 112.61, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4096 cells changed", "dose": "1.0", "env": "pusher", "fault": "final-obs:stale", "fault_json": {"cells": 4096, "dose": "1.0", "fault": "final-obs:stale", "first": [99, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "final-obs:stale", "learn_s": 118.795, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "08f7e594ebb730470b3ab82826999a3af44bca73d7a33f53fb30d537f835a6f3"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:stale\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"08f7e594ebb730470b3ab82826999a3af44bca73d7a33f53fb30d537f835a6f3\", \"learn_s\": 118.795, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "final-obs:stale", "fault_json": {"cells": 1, "dose": "one", "fault": "final-obs:stale", "first": [3299, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "final-obs:stale", "learn_s": 112.262, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "11e0a24cf8d267fa6c48b923c3724919efbc716581dd40c14fca6f6fc9b93092"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:stale\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"11e0a24cf8d267fa6c48b923c3724919efbc716581dd40c14fca6f6fc9b93092\", \"learn_s\": 112.262, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "final-obs:stale", "fault_json": {"cells": 1, "dose": "one", "fault": "final-obs:stale", "first": [3299, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "final-obs:stale", "learn_s": 112.752, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "73ebe5d6fc3ad20c71cfcf94254cd62b55a5cd52888e8529399be6fad4985c9a"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:stale\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"73ebe5d6fc3ad20c71cfcf94254cd62b55a5cd52888e8529399be6fad4985c9a\", \"learn_s\": 112.752, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "final-obs:stale", "fault_json": {"cells": 1, "dose": "one", "fault": "final-obs:stale", "first": [3299, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "final-obs:stale", "learn_s": 120.765, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "109051eabe8782e8229e89879a1b085a2b74c8ff2bb0ca62118841fa157654a4"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:stale\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"109051eabe8782e8229e89879a1b085a2b74c8ff2bb0ca62118841fa157654a4\", \"learn_s\": 120.765, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 38 cells changed", "dose": "0.01", "env": "pusher", "fault": "final-obs:swap", "fault_json": {"cells": 38, "dose": "0.01", "fault": "final-obs:swap", "first": [199, 12], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "final-obs:swap", "learn_s": 116.25, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "9fc2883233f20bb46539163f1fb7f7bf9afe9a6e562d1c71521b627ff91ce06f"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:swap\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"9fc2883233f20bb46539163f1fb7f7bf9afe9a6e562d1c71521b627ff91ce06f\", \"learn_s\": 116.25, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 38 cells changed", "dose": "0.01", "env": "pusher", "fault": "final-obs:swap", "fault_json": {"cells": 38, "dose": "0.01", "fault": "final-obs:swap", "first": [199, 12], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "final-obs:swap", "learn_s": 112.808, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "f97e630ad4476dc83ca73fa0ba7bbf54653c30286bab75daff17995b5c0f32b5"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:swap\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"f97e630ad4476dc83ca73fa0ba7bbf54653c30286bab75daff17995b5c0f32b5\", \"learn_s\": 112.808, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 38 cells changed", "dose": "0.01", "env": "pusher", "fault": "final-obs:swap", "fault_json": {"cells": 38, "dose": "0.01", "fault": "final-obs:swap", "first": [199, 12], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "final-obs:swap", "learn_s": 117.815, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "15bfc4ec514879434126f1406e70587f4ab2ce1443a0a68578b5c167b00e0e47"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:swap\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"15bfc4ec514879434126f1406e70587f4ab2ce1443a0a68578b5c167b00e0e47\", \"learn_s\": 117.815, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4096 cells changed", "dose": "1.0", "env": "pusher", "fault": "final-obs:swap", "fault_json": {"cells": 4096, "dose": "1.0", "fault": "final-obs:swap", "first": [99, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "final-obs:swap", "learn_s": 117.621, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "1aa03a8b05be74c0e51a4de442a6090e7bb3902081cc3589f6bad901c8b1f74e"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:swap\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"1aa03a8b05be74c0e51a4de442a6090e7bb3902081cc3589f6bad901c8b1f74e\", \"learn_s\": 117.621, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4096 cells changed", "dose": "1.0", "env": "pusher", "fault": "final-obs:swap", "fault_json": {"cells": 4096, "dose": "1.0", "fault": "final-obs:swap", "first": [99, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "final-obs:swap", "learn_s": 118.301, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "fcf8f384ccbffa974000e2b48eca26e3c129a9bd83eb77cafd8ce048d26474ca"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:swap\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"fcf8f384ccbffa974000e2b48eca26e3c129a9bd83eb77cafd8ce048d26474ca\", \"learn_s\": 118.301, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4096 cells changed", "dose": "1.0", "env": "pusher", "fault": "final-obs:swap", "fault_json": {"cells": 4096, "dose": "1.0", "fault": "final-obs:swap", "first": [99, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "final-obs:swap", "learn_s": 119.822, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "55fc13302a3fab34e44c6aee9c0d07b803875f0b33ddf74691706ee7e15d3059"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:swap\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"55fc13302a3fab34e44c6aee9c0d07b803875f0b33ddf74691706ee7e15d3059\", \"learn_s\": 119.822, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "final-obs:swap", "fault_json": {"cells": 1, "dose": "one", "fault": "final-obs:swap", "first": [3299, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "final-obs:swap", "learn_s": 111.933, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "7c54c40d3723a53d083b540e2650e0cb49a46654fcf2f205a29fcd5b74b3e7fb"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:swap\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"7c54c40d3723a53d083b540e2650e0cb49a46654fcf2f205a29fcd5b74b3e7fb\", \"learn_s\": 111.933, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "final-obs:swap", "fault_json": {"cells": 1, "dose": "one", "fault": "final-obs:swap", "first": [3299, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "final-obs:swap", "learn_s": 111.963, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "47bb52c26abb47f8c1521a408106daacb94c127239562bfe349216517f590695"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:swap\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"47bb52c26abb47f8c1521a408106daacb94c127239562bfe349216517f590695\", \"learn_s\": 111.963, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "final-obs:swap", "fault_json": {"cells": 1, "dose": "one", "fault": "final-obs:swap", "first": [3299, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "final-obs:swap", "learn_s": 119.678, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "4d16aff8643c257c87da0b37d0a22875a487faf29a6b12ffcc40197d7aa3bd85"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:swap\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"4d16aff8643c257c87da0b37d0a22875a487faf29a6b12ffcc40197d7aa3bd85\", \"learn_s\": 119.678, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 38 cells changed", "dose": "0.01", "env": "pusher", "fault": "final-obs:zero", "fault_json": {"cells": 38, "dose": "0.01", "fault": "final-obs:zero", "first": [199, 12], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "final-obs:zero", "learn_s": 114.608, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "b001da1e18fc590e33a51845998260baa7913ad733967fd310e0e05a3df327c0"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:zero\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"b001da1e18fc590e33a51845998260baa7913ad733967fd310e0e05a3df327c0\", \"learn_s\": 114.608, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 38 cells changed", "dose": "0.01", "env": "pusher", "fault": "final-obs:zero", "fault_json": {"cells": 38, "dose": "0.01", "fault": "final-obs:zero", "first": [199, 12], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "final-obs:zero", "learn_s": 113.101, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "a3ef511257fbbeeabbfc3d8d74312263449e38ddd29b2fd022407d9d058fa2ce"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:zero\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"a3ef511257fbbeeabbfc3d8d74312263449e38ddd29b2fd022407d9d058fa2ce\", \"learn_s\": 113.101, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 38 cells changed", "dose": "0.01", "env": "pusher", "fault": "final-obs:zero", "fault_json": {"cells": 38, "dose": "0.01", "fault": "final-obs:zero", "first": [199, 12], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "final-obs:zero", "learn_s": 116.954, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "a602ec729158cf121842b2e78b111a7fa8694f803a17a9c0f53740b1550a70d8"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:zero\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"a602ec729158cf121842b2e78b111a7fa8694f803a17a9c0f53740b1550a70d8\", \"learn_s\": 116.954, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4096 cells changed", "dose": "1.0", "env": "pusher", "fault": "final-obs:zero", "fault_json": {"cells": 4096, "dose": "1.0", "fault": "final-obs:zero", "first": [99, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "final-obs:zero", "learn_s": 115.936, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "00fc8b3c517ebaff59e157773c65cc9b13bdcda011a208f2f47542efda48b45e"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:zero\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"00fc8b3c517ebaff59e157773c65cc9b13bdcda011a208f2f47542efda48b45e\", \"learn_s\": 115.936, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4096 cells changed", "dose": "1.0", "env": "pusher", "fault": "final-obs:zero", "fault_json": {"cells": 4096, "dose": "1.0", "fault": "final-obs:zero", "first": [99, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "final-obs:zero", "learn_s": 116.675, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "01f0ea0cd1abb0a8934357b381e7d51cac0fbdab87d60c2504090269deb851d4"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:zero\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"01f0ea0cd1abb0a8934357b381e7d51cac0fbdab87d60c2504090269deb851d4\", \"learn_s\": 116.675, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4096 cells changed", "dose": "1.0", "env": "pusher", "fault": "final-obs:zero", "fault_json": {"cells": 4096, "dose": "1.0", "fault": "final-obs:zero", "first": [99, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "final-obs:zero", "learn_s": 115.191, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "eee04bbb5020559bad2d8453d080a3b97a02f44a01919b1e72af892043ef3785"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:zero\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"eee04bbb5020559bad2d8453d080a3b97a02f44a01919b1e72af892043ef3785\", \"learn_s\": 115.191, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "final-obs:zero", "fault_json": {"cells": 1, "dose": "one", "fault": "final-obs:zero", "first": [3299, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "final-obs:zero", "learn_s": 113.674, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "6710829a8b431c36222cbbab82382c31641589400645a20b9d1762d5e221f4ee"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:zero\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"6710829a8b431c36222cbbab82382c31641589400645a20b9d1762d5e221f4ee\", \"learn_s\": 113.674, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "final-obs:zero", "fault_json": {"cells": 1, "dose": "one", "fault": "final-obs:zero", "first": [3299, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "final-obs:zero", "learn_s": 112.362, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "bd613efd2cf082ab69ed4e7a79083bc52a2d17c4175d1c8e3c08ffcd0803b336"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:zero\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"bd613efd2cf082ab69ed4e7a79083bc52a2d17c4175d1c8e3c08ffcd0803b336\", \"learn_s\": 112.362, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "final-obs:zero", "fault_json": {"cells": 1, "dose": "one", "fault": "final-obs:zero", "first": [3299, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "final-obs:zero", "learn_s": 120.346, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "5404de0695963a187a9595b80ea891fe1bb2489a5360f8f8a2c489b3b7881671"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"final-obs:zero\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"5404de0695963a187a9595b80ea891fe1bb2489a5360f8f8a2c489b3b7881671\", \"learn_s\": 120.346, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "0.01", "env": "pusher", "fault": "log:drop-first", "fault_json": {"cells": 0, "dose": "0.01", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "log:drop-first", "learn_s": 112.154, "log_cells": 39, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "d41e519b18c6944f218f4b10dd51ad62c601829e5d3f66094a3830b499c9a78f"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"log:drop-first\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"d41e519b18c6944f218f4b10dd51ad62c601829e5d3f66094a3830b499c9a78f\", \"learn_s\": 112.154, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"log_cells\": 39, \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "0.01", "env": "pusher", "fault": "log:drop-first", "fault_json": {"cells": 0, "dose": "0.01", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "log:drop-first", "learn_s": 112.722, "log_cells": 39, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "658351831b2fa3fd07566569396f5e45be86787fa4bf3a5883de9bf864069b1e"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"log:drop-first\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"658351831b2fa3fd07566569396f5e45be86787fa4bf3a5883de9bf864069b1e\", \"learn_s\": 112.722, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"log_cells\": 39, \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "0.01", "env": "pusher", "fault": "log:drop-first", "fault_json": {"cells": 0, "dose": "0.01", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "log:drop-first", "learn_s": 112.004, "log_cells": 39, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "6126b462a85d0cb323c333b804f327de0d7eb6e90f04805189397e884597aa17"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"log:drop-first\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"6126b462a85d0cb323c333b804f327de0d7eb6e90f04805189397e884597aa17\", \"learn_s\": 112.004, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"log_cells\": 39, \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pusher", "fault": "log:drop-first", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "log:drop-first", "learn_s": 112.581, "log_cells": 4096, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "d41e519b18c6944f218f4b10dd51ad62c601829e5d3f66094a3830b499c9a78f"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"log:drop-first\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"d41e519b18c6944f218f4b10dd51ad62c601829e5d3f66094a3830b499c9a78f\", \"learn_s\": 112.581, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"log_cells\": 4096, \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pusher", "fault": "log:drop-first", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "log:drop-first", "learn_s": 113.187, "log_cells": 4096, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "658351831b2fa3fd07566569396f5e45be86787fa4bf3a5883de9bf864069b1e"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"log:drop-first\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"658351831b2fa3fd07566569396f5e45be86787fa4bf3a5883de9bf864069b1e\", \"learn_s\": 113.187, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"log_cells\": 4096, \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pusher", "fault": "log:drop-first", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "log:drop-first", "learn_s": 116.922, "log_cells": 4096, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "6126b462a85d0cb323c333b804f327de0d7eb6e90f04805189397e884597aa17"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"log:drop-first\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"6126b462a85d0cb323c333b804f327de0d7eb6e90f04805189397e884597aa17\", \"learn_s\": 116.922, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"log_cells\": 4096, \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "one", "env": "pusher", "fault": "log:drop-first", "fault_json": {"cells": 0, "dose": "one", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "log:drop-first", "learn_s": 111.905, "log_cells": 1, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "d41e519b18c6944f218f4b10dd51ad62c601829e5d3f66094a3830b499c9a78f"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"log:drop-first\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"d41e519b18c6944f218f4b10dd51ad62c601829e5d3f66094a3830b499c9a78f\", \"learn_s\": 111.905, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"log_cells\": 1, \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "one", "env": "pusher", "fault": "log:drop-first", "fault_json": {"cells": 0, "dose": "one", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "log:drop-first", "learn_s": 111.923, "log_cells": 1, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "658351831b2fa3fd07566569396f5e45be86787fa4bf3a5883de9bf864069b1e"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"log:drop-first\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"658351831b2fa3fd07566569396f5e45be86787fa4bf3a5883de9bf864069b1e\", \"learn_s\": 111.923, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"log_cells\": 1, \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "one", "env": "pusher", "fault": "log:drop-first", "fault_json": {"cells": 0, "dose": "one", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "log:drop-first", "learn_s": 115.772, "log_cells": 1, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "6126b462a85d0cb323c333b804f327de0d7eb6e90f04805189397e884597aa17"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"log:drop-first\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"6126b462a85d0cb323c333b804f327de0d7eb6e90f04805189397e884597aa17\", \"learn_s\": 115.772, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"log_cells\": 1, \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "0.01", "env": "pusher", "fault": "log:short", "fault_json": {"cells": 0, "dose": "0.01", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "log:short", "learn_s": 111.671, "log_cells": 39, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "d41e519b18c6944f218f4b10dd51ad62c601829e5d3f66094a3830b499c9a78f"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"log:short\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"d41e519b18c6944f218f4b10dd51ad62c601829e5d3f66094a3830b499c9a78f\", \"learn_s\": 111.671, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"log_cells\": 39, \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "0.01", "env": "pusher", "fault": "log:short", "fault_json": {"cells": 0, "dose": "0.01", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "log:short", "learn_s": 113.154, "log_cells": 39, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "658351831b2fa3fd07566569396f5e45be86787fa4bf3a5883de9bf864069b1e"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"log:short\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"658351831b2fa3fd07566569396f5e45be86787fa4bf3a5883de9bf864069b1e\", \"learn_s\": 113.154, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"log_cells\": 39, \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "0.01", "env": "pusher", "fault": "log:short", "fault_json": {"cells": 0, "dose": "0.01", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "log:short", "learn_s": 114.405, "log_cells": 39, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "6126b462a85d0cb323c333b804f327de0d7eb6e90f04805189397e884597aa17"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"log:short\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"6126b462a85d0cb323c333b804f327de0d7eb6e90f04805189397e884597aa17\", \"learn_s\": 114.405, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"log_cells\": 39, \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pusher", "fault": "log:short", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "log:short", "learn_s": 111.475, "log_cells": 4096, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "d41e519b18c6944f218f4b10dd51ad62c601829e5d3f66094a3830b499c9a78f"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"log:short\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"d41e519b18c6944f218f4b10dd51ad62c601829e5d3f66094a3830b499c9a78f\", \"learn_s\": 111.475, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"log_cells\": 4096, \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pusher", "fault": "log:short", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "log:short", "learn_s": 113.198, "log_cells": 4096, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "658351831b2fa3fd07566569396f5e45be86787fa4bf3a5883de9bf864069b1e"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"log:short\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"658351831b2fa3fd07566569396f5e45be86787fa4bf3a5883de9bf864069b1e\", \"learn_s\": 113.198, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"log_cells\": 4096, \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pusher", "fault": "log:short", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "log:short", "learn_s": 117.56, "log_cells": 4096, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "6126b462a85d0cb323c333b804f327de0d7eb6e90f04805189397e884597aa17"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"log:short\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"6126b462a85d0cb323c333b804f327de0d7eb6e90f04805189397e884597aa17\", \"learn_s\": 117.56, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"log_cells\": 4096, \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "one", "env": "pusher", "fault": "log:short", "fault_json": {"cells": 0, "dose": "one", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "log:short", "learn_s": 111.785, "log_cells": 1, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "d41e519b18c6944f218f4b10dd51ad62c601829e5d3f66094a3830b499c9a78f"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"log:short\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"d41e519b18c6944f218f4b10dd51ad62c601829e5d3f66094a3830b499c9a78f\", \"learn_s\": 111.785, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"log_cells\": 1, \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "one", "env": "pusher", "fault": "log:short", "fault_json": {"cells": 0, "dose": "one", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "log:short", "learn_s": 113.596, "log_cells": 1, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "658351831b2fa3fd07566569396f5e45be86787fa4bf3a5883de9bf864069b1e"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"log:short\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"658351831b2fa3fd07566569396f5e45be86787fa4bf3a5883de9bf864069b1e\", \"learn_s\": 113.596, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"log_cells\": 1, \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "one", "env": "pusher", "fault": "log:short", "fault_json": {"cells": 0, "dose": "one", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "log:short", "learn_s": 112.162, "log_cells": 1, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "6126b462a85d0cb323c333b804f327de0d7eb6e90f04805189397e884597aa17"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"log:short\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"6126b462a85d0cb323c333b804f327de0d7eb6e90f04805189397e884597aa17\", \"learn_s\": 112.162, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"log_cells\": 1, \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pusher", "fault": "none", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "none", "learn_s": 118.078, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "d41e519b18c6944f218f4b10dd51ad62c601829e5d3f66094a3830b499c9a78f"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"none\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"d41e519b18c6944f218f4b10dd51ad62c601829e5d3f66094a3830b499c9a78f\", \"learn_s\": 118.078, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pusher", "fault": "none", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "none", "learn_s": 110.786, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "658351831b2fa3fd07566569396f5e45be86787fa4bf3a5883de9bf864069b1e"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"none\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"658351831b2fa3fd07566569396f5e45be86787fa4bf3a5883de9bf864069b1e\", \"learn_s\": 110.786, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pusher", "fault": "none", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "none", "learn_s": 111.638, "seed": 10, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "e9a403411aa338dcafb281644ea8eddc249822d12a359abe3f623109fbccba0d"}, "seed": 10, "train_log": "{\"env\": \"pusher\", \"fault\": \"none\", \"dose\": \"1.0\", \"seed\": 10, \"weights_sha256\": \"e9a403411aa338dcafb281644ea8eddc249822d12a359abe3f623109fbccba0d\", \"learn_s\": 111.638, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pusher", "fault": "none", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "none", "learn_s": 111.01, "seed": 11, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "8ea70ae26939dad096761ca41ac6dd631f69c7f9bb547c7e5fd032cf99ac8676"}, "seed": 11, "train_log": "{\"env\": \"pusher\", \"fault\": \"none\", \"dose\": \"1.0\", \"seed\": 11, \"weights_sha256\": \"8ea70ae26939dad096761ca41ac6dd631f69c7f9bb547c7e5fd032cf99ac8676\", \"learn_s\": 111.01, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pusher", "fault": "none", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "none", "learn_s": 111.611, "seed": 12, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "7b3c214918d058c4d2598c53d541df26be9a13a3fc7240d62a1c1375a3bead7c"}, "seed": 12, "train_log": "{\"env\": \"pusher\", \"fault\": \"none\", \"dose\": \"1.0\", \"seed\": 12, \"weights_sha256\": \"7b3c214918d058c4d2598c53d541df26be9a13a3fc7240d62a1c1375a3bead7c\", \"learn_s\": 111.611, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pusher", "fault": "none", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "none", "learn_s": 112.254, "seed": 13, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "729cb0227ad3bfda4511a05f1c2eb81841ad992f6b57703745e37c37fc174633"}, "seed": 13, "train_log": "{\"env\": \"pusher\", \"fault\": \"none\", \"dose\": \"1.0\", \"seed\": 13, \"weights_sha256\": \"729cb0227ad3bfda4511a05f1c2eb81841ad992f6b57703745e37c37fc174633\", \"learn_s\": 112.254, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pusher", "fault": "none", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "none", "learn_s": 102.814, "seed": 14, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "83d384f580ec06131647c8cec81f5573fae03a42f20964911180368606488da9"}, "seed": 14, "train_log": "{\"env\": \"pusher\", \"fault\": \"none\", \"dose\": \"1.0\", \"seed\": 14, \"weights_sha256\": \"83d384f580ec06131647c8cec81f5573fae03a42f20964911180368606488da9\", \"learn_s\": 102.814, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pusher", "fault": "none", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "none", "learn_s": 101.484, "seed": 15, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "f5a8d8ffa14dc112166e0610af7a1fda98d04390249e44b3593162183efe6a31"}, "seed": 15, "train_log": "{\"env\": \"pusher\", \"fault\": \"none\", \"dose\": \"1.0\", \"seed\": 15, \"weights_sha256\": \"f5a8d8ffa14dc112166e0610af7a1fda98d04390249e44b3593162183efe6a31\", \"learn_s\": 101.484, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pusher", "fault": "none", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "none", "learn_s": 102.983, "seed": 16, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "fb2fb8ef0714b44a752b36a8a840d802973102a7fc015e03aef50ce4aa24fbfa"}, "seed": 16, "train_log": "{\"env\": \"pusher\", \"fault\": \"none\", \"dose\": \"1.0\", \"seed\": 16, \"weights_sha256\": \"fb2fb8ef0714b44a752b36a8a840d802973102a7fc015e03aef50ce4aa24fbfa\", \"learn_s\": 102.983, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pusher", "fault": "none", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "none", "learn_s": 102.122, "seed": 17, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "d4933bbc28c1ea9d1712df142cb28bceedf96a981074b55f5824779ffd73592d"}, "seed": 17, "train_log": "{\"env\": \"pusher\", \"fault\": \"none\", \"dose\": \"1.0\", \"seed\": 17, \"weights_sha256\": \"d4933bbc28c1ea9d1712df142cb28bceedf96a981074b55f5824779ffd73592d\", \"learn_s\": 102.122, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pusher", "fault": "none", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "none", "learn_s": 102.344, "seed": 18, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "db190f6639344c10261f76cedee677e83f19ea5e9952b4983772da4f863745f4"}, "seed": 18, "train_log": "{\"env\": \"pusher\", \"fault\": \"none\", \"dose\": \"1.0\", \"seed\": 18, \"weights_sha256\": \"db190f6639344c10261f76cedee677e83f19ea5e9952b4983772da4f863745f4\", \"learn_s\": 102.344, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pusher", "fault": "none", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "none", "learn_s": 99.618, "seed": 19, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "0f2dadb26cf8736187d7d085ec18fe48b1900eb3bc58892175ec2ff4c071e571"}, "seed": 19, "train_log": "{\"env\": \"pusher\", \"fault\": \"none\", \"dose\": \"1.0\", \"seed\": 19, \"weights_sha256\": \"0f2dadb26cf8736187d7d085ec18fe48b1900eb3bc58892175ec2ff4c071e571\", \"learn_s\": 99.618, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pusher", "fault": "none", "fault_json": {"cells": 0, "dose": "1.0", "fault": "none", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "none", "learn_s": 119.566, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "6126b462a85d0cb323c333b804f327de0d7eb6e90f04805189397e884597aa17"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"none\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"6126b462a85d0cb323c333b804f327de0d7eb6e90f04805189397e884597aa17\", \"learn_s\": 119.566, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "obs:f16", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "obs:f16", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "obs:f16", "learn_s": 117.921, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "4caa38c4e84ad4a98a228965012cba1f761ac582d776785964fafb1fe89f9557"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:f16\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"4caa38c4e84ad4a98a228965012cba1f761ac582d776785964fafb1fe89f9557\", \"learn_s\": 117.921, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "obs:f16", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "obs:f16", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "obs:f16", "learn_s": 111.437, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "ceadf246ab5a46abcba0ed2812fe22df09f0c8425d825ddf9df2d267e413db32"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:f16\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"ceadf246ab5a46abcba0ed2812fe22df09f0c8425d825ddf9df2d267e413db32\", \"learn_s\": 111.437, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "obs:f16", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "obs:f16", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "obs:f16", "learn_s": 116.974, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "de4686a974b0cbcf8a6c545f826f1aee823ba42baa63b41499590772622a65a4"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:f16\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"de4686a974b0cbcf8a6c545f826f1aee823ba42baa63b41499590772622a65a4\", \"learn_s\": 116.974, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409616 cells changed", "dose": "1.0", "env": "pusher", "fault": "obs:f16", "fault_json": {"cells": 409616, "dose": "1.0", "fault": "obs:f16", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "obs:f16", "learn_s": 116.766, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "caabf1f906ad1d492eed5eb2af6e32363ce25b243199af79208cd3b62693e55a"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:f16\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"caabf1f906ad1d492eed5eb2af6e32363ce25b243199af79208cd3b62693e55a\", \"learn_s\": 116.766, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409616 cells changed", "dose": "1.0", "env": "pusher", "fault": "obs:f16", "fault_json": {"cells": 409616, "dose": "1.0", "fault": "obs:f16", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "obs:f16", "learn_s": 114.517, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "4aaad3e1f5a9a05162f9543bbfae4088bedb59f5a84751039043850b7d6d7103"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:f16\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"4aaad3e1f5a9a05162f9543bbfae4088bedb59f5a84751039043850b7d6d7103\", \"learn_s\": 114.517, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409616 cells changed", "dose": "1.0", "env": "pusher", "fault": "obs:f16", "fault_json": {"cells": 409616, "dose": "1.0", "fault": "obs:f16", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "obs:f16", "learn_s": 117.808, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "2d29a2d1b854a5cc77fcf0cd17d5c60227c07d50ec697c3b559e2afb6b046ddd"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:f16\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"2d29a2d1b854a5cc77fcf0cd17d5c60227c07d50ec697c3b559e2afb6b046ddd\", \"learn_s\": 117.808, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "obs:f16", "fault_json": {"cells": 1, "dose": "one", "fault": "obs:f16", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "obs:f16", "learn_s": 114.104, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "13dde12f3680e46dd85bee51ade0668cddec7e3cc08b9d346591084b14d077f0"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:f16\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"13dde12f3680e46dd85bee51ade0668cddec7e3cc08b9d346591084b14d077f0\", \"learn_s\": 114.104, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "obs:f16", "fault_json": {"cells": 1, "dose": "one", "fault": "obs:f16", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "obs:f16", "learn_s": 111.384, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "0c365702125697f4fcd7a5704a5038d44615721b20fb93f6addd34dfc6cd520d"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:f16\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"0c365702125697f4fcd7a5704a5038d44615721b20fb93f6addd34dfc6cd520d\", \"learn_s\": 111.384, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "obs:f16", "fault_json": {"cells": 1, "dose": "one", "fault": "obs:f16", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "obs:f16", "learn_s": 120.484, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "8fd2dfbcb006b3a3320d041842005e138076d713718783a1c99b33c73384af33"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:f16\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"8fd2dfbcb006b3a3320d041842005e138076d713718783a1c99b33c73384af33\", \"learn_s\": 120.484, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "obs:stale", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "obs:stale", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "obs:stale", "learn_s": 122.325, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "d045798b865f7f42ac0206230f64b1d1fec75410c22a01d988a757555db8038b"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:stale\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"d045798b865f7f42ac0206230f64b1d1fec75410c22a01d988a757555db8038b\", \"learn_s\": 122.325, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "obs:stale", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "obs:stale", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "obs:stale", "learn_s": 113.521, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "0de69112cb7a801bfbda9ffca3205fd75797b9b27d9901ba26156465def58a51"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:stale\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"0de69112cb7a801bfbda9ffca3205fd75797b9b27d9901ba26156465def58a51\", \"learn_s\": 113.521, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "obs:stale", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "obs:stale", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "obs:stale", "learn_s": 120.302, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "99a75cd3e47f2a88c9bbf0ae8876307877512b194d60345f0cdbbed6a0612f52"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:stale\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"99a75cd3e47f2a88c9bbf0ae8876307877512b194d60345f0cdbbed6a0612f52\", \"learn_s\": 120.302, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "obs:stale", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "obs:stale", "first": [1, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "obs:stale", "learn_s": 122.48, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "e40fc9846dca013d0ae2cbce69da1d2521051747e338e9207c0c07f60333da48"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:stale\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"e40fc9846dca013d0ae2cbce69da1d2521051747e338e9207c0c07f60333da48\", \"learn_s\": 122.48, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "obs:stale", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "obs:stale", "first": [1, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "obs:stale", "learn_s": 112.745, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "c88591b626036ce4d785c67e8ebf5c42ecca61dd6170f9fe4fedf63fd2ff388a"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:stale\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"c88591b626036ce4d785c67e8ebf5c42ecca61dd6170f9fe4fedf63fd2ff388a\", \"learn_s\": 112.745, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "obs:stale", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "obs:stale", "first": [1, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "obs:stale", "learn_s": 120.02, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "ff71c1c5564e64c9623bc1899c5c3cbbbbef53a6126f8f21124cf07b525ce0ed"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:stale\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"ff71c1c5564e64c9623bc1899c5c3cbbbbef53a6126f8f21124cf07b525ce0ed\", \"learn_s\": 120.02, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "obs:stale", "fault_json": {"cells": 1, "dose": "one", "fault": "obs:stale", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "obs:stale", "learn_s": 119.147, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "e08896f32dbfa7d74d8e728c955c6dc594367a36399cf62e4e532d0d43a06b1a"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:stale\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"e08896f32dbfa7d74d8e728c955c6dc594367a36399cf62e4e532d0d43a06b1a\", \"learn_s\": 119.147, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "obs:stale", "fault_json": {"cells": 1, "dose": "one", "fault": "obs:stale", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "obs:stale", "learn_s": 110.536, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "9adbf307b00b95292ab362829c6e94a2e1d6f06dde9c092981d0daa760215d58"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:stale\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"9adbf307b00b95292ab362829c6e94a2e1d6f06dde9c092981d0daa760215d58\", \"learn_s\": 110.536, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "obs:stale", "fault_json": {"cells": 1, "dose": "one", "fault": "obs:stale", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "obs:stale", "learn_s": 120.56, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "a454efa8c1a5cbee96d86888704af93dd4db85519f97f78e9170d82439d13349"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:stale\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"a454efa8c1a5cbee96d86888704af93dd4db85519f97f78e9170d82439d13349\", \"learn_s\": 120.56, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "obs:swap", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "obs:swap", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "obs:swap", "learn_s": 114.368, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "9e0fbb93991b4263857a63873b5fa7fbe01582bf812844c1fdc217e426f3e028"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:swap\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"9e0fbb93991b4263857a63873b5fa7fbe01582bf812844c1fdc217e426f3e028\", \"learn_s\": 114.368, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "obs:swap", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "obs:swap", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "obs:swap", "learn_s": 112.779, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "e3448ee66c27e91d39b908f41e33d924f42f17b1a71734a8a991a8258f314de8"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:swap\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"e3448ee66c27e91d39b908f41e33d924f42f17b1a71734a8a991a8258f314de8\", \"learn_s\": 112.779, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "obs:swap", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "obs:swap", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "obs:swap", "learn_s": 118.601, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "64f2f6703bbdee3c8e8f093d4afa4f3632cff93dcbf0dc268974752138f64dab"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:swap\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"64f2f6703bbdee3c8e8f093d4afa4f3632cff93dcbf0dc268974752138f64dab\", \"learn_s\": 118.601, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409616 cells changed", "dose": "1.0", "env": "pusher", "fault": "obs:swap", "fault_json": {"cells": 409616, "dose": "1.0", "fault": "obs:swap", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "obs:swap", "learn_s": 110.241, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "31885ab7d143ad5f500de202adaa05065f90d6b182275106688a4fb865bbef7c"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:swap\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"31885ab7d143ad5f500de202adaa05065f90d6b182275106688a4fb865bbef7c\", \"learn_s\": 110.241, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409616 cells changed", "dose": "1.0", "env": "pusher", "fault": "obs:swap", "fault_json": {"cells": 409616, "dose": "1.0", "fault": "obs:swap", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "obs:swap", "learn_s": 109.361, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "478aad7f6c7c342005cdb60f15799c9609761177f2fc98d4d36effdc2fc4063b"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:swap\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"478aad7f6c7c342005cdb60f15799c9609761177f2fc98d4d36effdc2fc4063b\", \"learn_s\": 109.361, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409616 cells changed", "dose": "1.0", "env": "pusher", "fault": "obs:swap", "fault_json": {"cells": 409616, "dose": "1.0", "fault": "obs:swap", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "obs:swap", "learn_s": 109.898, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "c63d576a1e284599d96f0f23e19f0ad6ebd0edafc928336fee62347661f691c2"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:swap\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"c63d576a1e284599d96f0f23e19f0ad6ebd0edafc928336fee62347661f691c2\", \"learn_s\": 109.898, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "obs:swap", "fault_json": {"cells": 1, "dose": "one", "fault": "obs:swap", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "obs:swap", "learn_s": 119.791, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "6673b06551bcb4f5247622263390d036d4cf8cfbb477dfd0a94bc0dd9514882c"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:swap\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"6673b06551bcb4f5247622263390d036d4cf8cfbb477dfd0a94bc0dd9514882c\", \"learn_s\": 119.791, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "obs:swap", "fault_json": {"cells": 1, "dose": "one", "fault": "obs:swap", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "obs:swap", "learn_s": 112.479, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "e4273f5433b77e9c92cce93765c7117d95074b192eac43db474e843621d95adf"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:swap\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"e4273f5433b77e9c92cce93765c7117d95074b192eac43db474e843621d95adf\", \"learn_s\": 112.479, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "obs:swap", "fault_json": {"cells": 1, "dose": "one", "fault": "obs:swap", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "obs:swap", "learn_s": 120.888, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "d8ebd1a62d36d3f07c8c501ad48ddea4c10418144ff3641954e8f23858d19194"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:swap\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"d8ebd1a62d36d3f07c8c501ad48ddea4c10418144ff3641954e8f23858d19194\", \"learn_s\": 120.888, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "obs:zero", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "obs:zero", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "obs:zero", "learn_s": 122.313, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "547e71d5e16fddb4c332d2182e7eef3cf789334cab5b0bce5c87f7d608efd4cd"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:zero\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"547e71d5e16fddb4c332d2182e7eef3cf789334cab5b0bce5c87f7d608efd4cd\", \"learn_s\": 122.313, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "obs:zero", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "obs:zero", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "obs:zero", "learn_s": 118.231, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "85902121c69ec4c8551cfa7255b28fbeb087c05e1871ed1afd2d53c3d03439c3"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:zero\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"85902121c69ec4c8551cfa7255b28fbeb087c05e1871ed1afd2d53c3d03439c3\", \"learn_s\": 118.231, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "obs:zero", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "obs:zero", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "obs:zero", "learn_s": 122.471, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "81f1f2d1d2467abf43b16d599268604bbc42860cab5b032c51933de15791f49b"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:zero\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"81f1f2d1d2467abf43b16d599268604bbc42860cab5b032c51933de15791f49b\", \"learn_s\": 122.471, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409616 cells changed", "dose": "1.0", "env": "pusher", "fault": "obs:zero", "fault_json": {"cells": 409616, "dose": "1.0", "fault": "obs:zero", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "obs:zero", "learn_s": 112.506, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "f972a28c58fd214d5b32e2ca2b748e2c2e6da90bffad69f26008f8474712d9d1"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:zero\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"f972a28c58fd214d5b32e2ca2b748e2c2e6da90bffad69f26008f8474712d9d1\", \"learn_s\": 112.506, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409616 cells changed", "dose": "1.0", "env": "pusher", "fault": "obs:zero", "fault_json": {"cells": 409616, "dose": "1.0", "fault": "obs:zero", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "obs:zero", "learn_s": 106.627, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "1a0237b02b656b3055e83ff82a4764f0c0365f92954b0867df653af58119146b"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:zero\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"1a0237b02b656b3055e83ff82a4764f0c0365f92954b0867df653af58119146b\", \"learn_s\": 106.627, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409616 cells changed", "dose": "1.0", "env": "pusher", "fault": "obs:zero", "fault_json": {"cells": 409616, "dose": "1.0", "fault": "obs:zero", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "obs:zero", "learn_s": 107.137, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "9c799eddc18f3476826d8981865d9cd0c3d4a4a00571bc7b23b8978c99597602"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:zero\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"9c799eddc18f3476826d8981865d9cd0c3d4a4a00571bc7b23b8978c99597602\", \"learn_s\": 107.137, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "obs:zero", "fault_json": {"cells": 1, "dose": "one", "fault": "obs:zero", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "obs:zero", "learn_s": 118.873, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "ff45cddea8ecfe48dd4a9892948701d3b3160649d595218f9b7b158e979ca39d"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:zero\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"ff45cddea8ecfe48dd4a9892948701d3b3160649d595218f9b7b158e979ca39d\", \"learn_s\": 118.873, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "obs:zero", "fault_json": {"cells": 1, "dose": "one", "fault": "obs:zero", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "obs:zero", "learn_s": 110.24, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "df52c663f8f0e7440f04d139352c069ef90670f6603301aeda4156e9967df384"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:zero\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"df52c663f8f0e7440f04d139352c069ef90670f6603301aeda4156e9967df384\", \"learn_s\": 110.24, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "obs:zero", "fault_json": {"cells": 1, "dose": "one", "fault": "obs:zero", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "obs:zero", "learn_s": 119.875, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "783547c06c8abd93356b530049e5becfa9789c5150d1711b2ae8cf54c35e8109"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"obs:zero\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"783547c06c8abd93356b530049e5becfa9789c5150d1711b2ae8cf54c35e8109\", \"learn_s\": 119.875, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "reward:f16", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "reward:f16", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "reward:f16", "learn_s": 114.347, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "d55e799a5ba49c104b79de542dd9b468637a5773234b9e32b3813e8056aac833"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:f16\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"d55e799a5ba49c104b79de542dd9b468637a5773234b9e32b3813e8056aac833\", \"learn_s\": 114.347, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4047 cells changed", "dose": "0.01", "env": "pusher", "fault": "reward:f16", "fault_json": {"cells": 4047, "dose": "0.01", "fault": "reward:f16", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "reward:f16", "learn_s": 113.712, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "872f0deea23defc4e5137320f65c0ff6aed0935c4dcc91a4239d53f39d3ce579"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:f16\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"872f0deea23defc4e5137320f65c0ff6aed0935c4dcc91a4239d53f39d3ce579\", \"learn_s\": 113.712, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "reward:f16", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "reward:f16", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "reward:f16", "learn_s": 119.224, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "698812ca6cfa01d8158603ffe9ed2241c184f64e0f4c0ef5066acc29545afaca"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:f16\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"698812ca6cfa01d8158603ffe9ed2241c184f64e0f4c0ef5066acc29545afaca\", \"learn_s\": 119.224, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409549 cells changed", "dose": "1.0", "env": "pusher", "fault": "reward:f16", "fault_json": {"cells": 409549, "dose": "1.0", "fault": "reward:f16", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "reward:f16", "learn_s": 115.312, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "2f4c8b3e3a388b36669ad43cc39c60170098bb7c3531b127643178932718fed8"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:f16\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"2f4c8b3e3a388b36669ad43cc39c60170098bb7c3531b127643178932718fed8\", \"learn_s\": 115.312, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409543 cells changed", "dose": "1.0", "env": "pusher", "fault": "reward:f16", "fault_json": {"cells": 409543, "dose": "1.0", "fault": "reward:f16", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "reward:f16", "learn_s": 112.769, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "38734034d4d862c44f6432638ebbcb734aea916458f4436ace2c15ea47af97e4"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:f16\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"38734034d4d862c44f6432638ebbcb734aea916458f4436ace2c15ea47af97e4\", \"learn_s\": 112.769, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409546 cells changed", "dose": "1.0", "env": "pusher", "fault": "reward:f16", "fault_json": {"cells": 409546, "dose": "1.0", "fault": "reward:f16", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "reward:f16", "learn_s": 116.582, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "eddebd834d7cd78fa1dc4a0162c3f61295b1ef50813d418b86a70ce67c370b24"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:f16\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"eddebd834d7cd78fa1dc4a0162c3f61295b1ef50813d418b86a70ce67c370b24\", \"learn_s\": 116.582, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "reward:f16", "fault_json": {"cells": 1, "dose": "one", "fault": "reward:f16", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "reward:f16", "learn_s": 114.297, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "dc8fb504b3a6d3dbc5c4ac6f5d77da7c7da6550477130e1f697200fb260e51dd"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:f16\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"dc8fb504b3a6d3dbc5c4ac6f5d77da7c7da6550477130e1f697200fb260e51dd\", \"learn_s\": 114.297, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "reward:f16", "fault_json": {"cells": 1, "dose": "one", "fault": "reward:f16", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "reward:f16", "learn_s": 111.623, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "06ec378986782a950f8441d44f13f6a6dc747ac8a022aa1c7fef37d2e46c0b6e"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:f16\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"06ec378986782a950f8441d44f13f6a6dc747ac8a022aa1c7fef37d2e46c0b6e\", \"learn_s\": 111.623, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "reward:f16", "fault_json": {"cells": 1, "dose": "one", "fault": "reward:f16", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "reward:f16", "learn_s": 121.455, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "ac69a6621a8c78bfaea1c3188d002c01a09fad700d42e25fee06d3317a3c632e"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:f16\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"ac69a6621a8c78bfaea1c3188d002c01a09fad700d42e25fee06d3317a3c632e\", \"learn_s\": 121.455, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "reward:stale", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "reward:stale", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "reward:stale", "learn_s": 114.0, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "5f4d2c4022e2eb02cfadea16205226cdcb87f8d423a811c51603d8590bb9dd41"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:stale\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"5f4d2c4022e2eb02cfadea16205226cdcb87f8d423a811c51603d8590bb9dd41\", \"learn_s\": 114.0, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "reward:stale", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "reward:stale", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "reward:stale", "learn_s": 112.525, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "d4e9bddbccd8326f245643b9169cedeaf6adae53a4d204f5de73b67f4103f261"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:stale\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"d4e9bddbccd8326f245643b9169cedeaf6adae53a4d204f5de73b67f4103f261\", \"learn_s\": 112.525, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "reward:stale", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "reward:stale", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "reward:stale", "learn_s": 117.777, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "1995b8a11d69c6ca2006cb9928366289151cfc0014925f0b2e891f7c9c36c159"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:stale\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"1995b8a11d69c6ca2006cb9928366289151cfc0014925f0b2e891f7c9c36c159\", \"learn_s\": 117.777, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "reward:stale", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "reward:stale", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "reward:stale", "learn_s": 113.119, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "2cc42cf7e9d3238313bf91504a865c6b45004386ffb0b2572cd65231aeec0ae6"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:stale\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"2cc42cf7e9d3238313bf91504a865c6b45004386ffb0b2572cd65231aeec0ae6\", \"learn_s\": 113.119, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "reward:stale", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "reward:stale", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "reward:stale", "learn_s": 114.162, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "a3a61376de85228944f8f035275102cf7a26a8a7401fb86d46650925de77ceda"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:stale\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"a3a61376de85228944f8f035275102cf7a26a8a7401fb86d46650925de77ceda\", \"learn_s\": 114.162, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "reward:stale", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "reward:stale", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "reward:stale", "learn_s": 118.083, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "fac52a1b8cc7f2f2e67af0c397bb637d0ce1c8f09cfc8f7fa1703ee89e545d17"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:stale\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"fac52a1b8cc7f2f2e67af0c397bb637d0ce1c8f09cfc8f7fa1703ee89e545d17\", \"learn_s\": 118.083, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "reward:stale", "fault_json": {"cells": 1, "dose": "one", "fault": "reward:stale", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "reward:stale", "learn_s": 114.137, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "6d9b80f574bd2281e0dd2ca8975a88ff5822a524110f6295dd1be5f4a43ac682"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:stale\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"6d9b80f574bd2281e0dd2ca8975a88ff5822a524110f6295dd1be5f4a43ac682\", \"learn_s\": 114.137, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "reward:stale", "fault_json": {"cells": 1, "dose": "one", "fault": "reward:stale", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "reward:stale", "learn_s": 112.388, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "eb26f4a958414751d96052aa769fdbb429032de2e4c411e4130e6fa8d54415ec"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:stale\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"eb26f4a958414751d96052aa769fdbb429032de2e4c411e4130e6fa8d54415ec\", \"learn_s\": 112.388, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "reward:stale", "fault_json": {"cells": 1, "dose": "one", "fault": "reward:stale", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "reward:stale", "learn_s": 120.321, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "e1d0ffeb8a40d09c19d1b6c36f6117987cc558cbeecce4a3686412c7fca64132"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:stale\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"e1d0ffeb8a40d09c19d1b6c36f6117987cc558cbeecce4a3686412c7fca64132\", \"learn_s\": 120.321, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "reward:swap", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "reward:swap", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "reward:swap", "learn_s": 114.358, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "68a214d32115230ba6e198358f3c35805f0f5895ea8f2ec89755f365c5cc7ff2"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:swap\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"68a214d32115230ba6e198358f3c35805f0f5895ea8f2ec89755f365c5cc7ff2\", \"learn_s\": 114.358, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "reward:swap", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "reward:swap", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "reward:swap", "learn_s": 112.267, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "c5cfebeaf379f7871dccbf3f41b38db07dc350801593db8f4f73ad6582ad0ee8"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:swap\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"c5cfebeaf379f7871dccbf3f41b38db07dc350801593db8f4f73ad6582ad0ee8\", \"learn_s\": 112.267, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "reward:swap", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "reward:swap", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "reward:swap", "learn_s": 120.046, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "b03ba61e4345c464e72a85b5669ed9d27fbabe5b19831c2432f1f15501d967f0"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:swap\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"b03ba61e4345c464e72a85b5669ed9d27fbabe5b19831c2432f1f15501d967f0\", \"learn_s\": 120.046, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "reward:swap", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "reward:swap", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "reward:swap", "learn_s": 105.846, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "7bea54f062ee387aec52566808cdbf87efc12bd869e9c7cf77a353571e6dd5e2"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:swap\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"7bea54f062ee387aec52566808cdbf87efc12bd869e9c7cf77a353571e6dd5e2\", \"learn_s\": 105.846, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "reward:swap", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "reward:swap", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "reward:swap", "learn_s": 107.723, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "23786cd4d89665f190c8b06694f92b940a441bc63199c08b2902f35f1103ccb6"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:swap\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"23786cd4d89665f190c8b06694f92b940a441bc63199c08b2902f35f1103ccb6\", \"learn_s\": 107.723, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "reward:swap", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "reward:swap", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "reward:swap", "learn_s": 110.102, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "3113625a74b9d635c6285413f5518e9b0f0c454c470e19bf7231190648601f21"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:swap\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"3113625a74b9d635c6285413f5518e9b0f0c454c470e19bf7231190648601f21\", \"learn_s\": 110.102, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "reward:swap", "fault_json": {"cells": 1, "dose": "one", "fault": "reward:swap", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "reward:swap", "learn_s": 114.881, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "ffdb1bfc1e9b86ba22573f95870370bb77c5a7505182ed179631a0da1fc2787a"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:swap\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"ffdb1bfc1e9b86ba22573f95870370bb77c5a7505182ed179631a0da1fc2787a\", \"learn_s\": 114.881, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "reward:swap", "fault_json": {"cells": 1, "dose": "one", "fault": "reward:swap", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "reward:swap", "learn_s": 111.973, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "51d8063ac97f76702201bd883186fe629c922568f10f9a0f9741d5038f84c3a3"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:swap\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"51d8063ac97f76702201bd883186fe629c922568f10f9a0f9741d5038f84c3a3\", \"learn_s\": 111.973, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "reward:swap", "fault_json": {"cells": 1, "dose": "one", "fault": "reward:swap", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "reward:swap", "learn_s": 122.103, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "469e5c7f5f24d3daa862b14101eed2a7499ff64d9d92b4bbf2e347e1799d4762"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:swap\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"469e5c7f5f24d3daa862b14101eed2a7499ff64d9d92b4bbf2e347e1799d4762\", \"learn_s\": 122.103, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "reward:zero", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "reward:zero", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "reward:zero", "learn_s": 116.975, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "cd3f0a279ea1d9da545308166116b4c4431be02b641c1df42975a90c64be12ef"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:zero\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"cd3f0a279ea1d9da545308166116b4c4431be02b641c1df42975a90c64be12ef\", \"learn_s\": 116.975, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "reward:zero", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "reward:zero", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "reward:zero", "learn_s": 116.152, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "4a679e34a633246d09dd9a70b8f783c5ce8af297bf52ebceaea3a971730a8899"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:zero\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"4a679e34a633246d09dd9a70b8f783c5ce8af297bf52ebceaea3a971730a8899\", \"learn_s\": 116.152, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "reward:zero", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "reward:zero", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "reward:zero", "learn_s": 119.486, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "c419a5a15fdb61d992e7b9aed6fe9afeb951d68ddefe783f70fd9d9fdfa5c35a"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:zero\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"c419a5a15fdb61d992e7b9aed6fe9afeb951d68ddefe783f70fd9d9fdfa5c35a\", \"learn_s\": 119.486, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "reward:zero", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "reward:zero", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "reward:zero", "learn_s": 106.867, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "62f7004cbb6f33830414e929edaa32e66110e81d0d0550b73d33dd050ba0eac8"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:zero\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"62f7004cbb6f33830414e929edaa32e66110e81d0d0550b73d33dd050ba0eac8\", \"learn_s\": 106.867, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "reward:zero", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "reward:zero", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "reward:zero", "learn_s": 107.118, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "394a45d4806b85afbb1f87600e80241875b17780396e95d76c2014fda0d903d4"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:zero\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"394a45d4806b85afbb1f87600e80241875b17780396e95d76c2014fda0d903d4\", \"learn_s\": 107.118, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "reward:zero", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "reward:zero", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "reward:zero", "learn_s": 107.393, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "51687f046ed93f44d84b85ed0f4c3cb17c1ce5b48dc3eb21c9426f3cb88a2b8a"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:zero\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"51687f046ed93f44d84b85ed0f4c3cb17c1ce5b48dc3eb21c9426f3cb88a2b8a\", \"learn_s\": 107.393, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "reward:zero", "fault_json": {"cells": 1, "dose": "one", "fault": "reward:zero", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "reward:zero", "learn_s": 112.431, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "36c10899e16ca8147a011661667dc6601b7e2b4af5d45a1a6674168d74db36ae"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:zero\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"36c10899e16ca8147a011661667dc6601b7e2b4af5d45a1a6674168d74db36ae\", \"learn_s\": 112.431, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "reward:zero", "fault_json": {"cells": 1, "dose": "one", "fault": "reward:zero", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "reward:zero", "learn_s": 112.097, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "419910451231bb9931bcf071ad91a53318e1d5cb43dbd77af1dcd7ef3f0feff0"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:zero\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"419910451231bb9931bcf071ad91a53318e1d5cb43dbd77af1dcd7ef3f0feff0\", \"learn_s\": 112.097, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "reward:zero", "fault_json": {"cells": 1, "dose": "one", "fault": "reward:zero", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "reward:zero", "learn_s": 119.744, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "7c26c6b95fdbe0e7560689f586be5540d460167388e40710af248a49e9a0bf3f"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"reward:zero\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"7c26c6b95fdbe0e7560689f586be5540d460167388e40710af248a49e9a0bf3f\", \"learn_s\": 119.744, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "step:fill", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "step:fill", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "step:fill", "learn_s": 117.659, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "5d23604184dce5ab8d61f24835156f0d4e2aee0a258af2c4f95ae3fd527dd2d2"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"step:fill\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"5d23604184dce5ab8d61f24835156f0d4e2aee0a258af2c4f95ae3fd527dd2d2\", \"learn_s\": 117.659, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "step:fill", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "step:fill", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "step:fill", "learn_s": 113.743, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "4b265055134dea43251a9ed8ef7d744ec1716338d466a441403dca6e15850ef1"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"step:fill\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"4b265055134dea43251a9ed8ef7d744ec1716338d466a441403dca6e15850ef1\", \"learn_s\": 113.743, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "step:fill", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "step:fill", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "step:fill", "learn_s": 112.614, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "f62878306b31fc5a6542aceefdae3aaccbee42e519d16317a5103aae68e8a1ee"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"step:fill\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"f62878306b31fc5a6542aceefdae3aaccbee42e519d16317a5103aae68e8a1ee\", \"learn_s\": 112.614, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "step:fill", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "step:fill", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "step:fill", "learn_s": 79.68, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "095a109b8fe5a3722c414d58f413cb5ace12fc0eac0143853995f609b5053663"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"step:fill\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"095a109b8fe5a3722c414d58f413cb5ace12fc0eac0143853995f609b5053663\", \"learn_s\": 79.68, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "step:fill", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "step:fill", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "step:fill", "learn_s": 79.178, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "da934b6d1a78c92aa6a8df792b3f5c43199217fa2ee2311f6dab4cbc8157185d"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"step:fill\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"da934b6d1a78c92aa6a8df792b3f5c43199217fa2ee2311f6dab4cbc8157185d\", \"learn_s\": 79.178, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "step:fill", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "step:fill", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "step:fill", "learn_s": 79.958, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "b05e1e9f8c30b6859730bdf13471d3d5a90b6b9e57f0acb988a08bfa52bd1d1f"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"step:fill\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"b05e1e9f8c30b6859730bdf13471d3d5a90b6b9e57f0acb988a08bfa52bd1d1f\", \"learn_s\": 79.958, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "step:fill", "fault_json": {"cells": 1, "dose": "one", "fault": "step:fill", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "step:fill", "learn_s": 113.818, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "35a10ae483d62bfbee7665f193e7f937b3d0acf95d4c2eb472be281de27592e1"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"step:fill\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"35a10ae483d62bfbee7665f193e7f937b3d0acf95d4c2eb472be281de27592e1\", \"learn_s\": 113.818, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "step:fill", "fault_json": {"cells": 1, "dose": "one", "fault": "step:fill", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "step:fill", "learn_s": 111.431, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "8c21b1bdd5c3eb3d081a9a07507d4e8ded8dda28ab22c00a50ee4599c2611418"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"step:fill\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"8c21b1bdd5c3eb3d081a9a07507d4e8ded8dda28ab22c00a50ee4599c2611418\", \"learn_s\": 111.431, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "step:fill", "fault_json": {"cells": 1, "dose": "one", "fault": "step:fill", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "step:fill", "learn_s": 119.598, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "b707ac5ffe3f318452855d55e4be5ef2fd6270101c4a8eb83944f1393370afb1"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"step:fill\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"b707ac5ffe3f318452855d55e4be5ef2fd6270101c4a8eb83944f1393370afb1\", \"learn_s\": 119.598, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "terminated:spurious", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "terminated:spurious", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "terminated:spurious", "learn_s": 107.21, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "bcbb59a8eec4fe8797d5c2b2b945339f547ee29f04c109b3ef08a8d78c7392f4"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"terminated:spurious\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"bcbb59a8eec4fe8797d5c2b2b945339f547ee29f04c109b3ef08a8d78c7392f4\", \"learn_s\": 107.21, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "terminated:spurious", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "terminated:spurious", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "terminated:spurious", "learn_s": 105.645, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "50c468eb666a175efc503e22172b5833f5609f219801915ecc2d37f1c2ec54fd"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"terminated:spurious\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"50c468eb666a175efc503e22172b5833f5609f219801915ecc2d37f1c2ec54fd\", \"learn_s\": 105.645, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4049 cells changed", "dose": "0.01", "env": "pusher", "fault": "terminated:spurious", "fault_json": {"cells": 4049, "dose": "0.01", "fault": "terminated:spurious", "first": [5, 7], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "terminated:spurious", "learn_s": 109.682, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "01cfac0516c980a01f3f61cf96cf960d693beeee9ea8021fd66718dfd57c00b5"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"terminated:spurious\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"01cfac0516c980a01f3f61cf96cf960d693beeee9ea8021fd66718dfd57c00b5\", \"learn_s\": 109.682, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "terminated:spurious", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "terminated:spurious", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "terminated:spurious", "learn_s": 108.857, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "9ab9689ff2002dd07ae9422d4ec7f319668a1f7521910bc4bbaf2be12da78b4e"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"terminated:spurious\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"9ab9689ff2002dd07ae9422d4ec7f319668a1f7521910bc4bbaf2be12da78b4e\", \"learn_s\": 108.857, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "terminated:spurious", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "terminated:spurious", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "terminated:spurious", "learn_s": 109.08, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "b3a8fe9ca4d19eb2023d481f4bc88b6bd6796799efaf99a4461e66ce022e0e07"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"terminated:spurious\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"b3a8fe9ca4d19eb2023d481f4bc88b6bd6796799efaf99a4461e66ce022e0e07\", \"learn_s\": 109.08, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 409600 cells changed", "dose": "1.0", "env": "pusher", "fault": "terminated:spurious", "fault_json": {"cells": 409600, "dose": "1.0", "fault": "terminated:spurious", "first": [0, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "terminated:spurious", "learn_s": 109.449, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "ff3641464fa618468b6f14d2968141d2bca2c9c9f0af6e1e221838cbad2f4083"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"terminated:spurious\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"ff3641464fa618468b6f14d2968141d2bca2c9c9f0af6e1e221838cbad2f4083\", \"learn_s\": 109.449, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "terminated:spurious", "fault_json": {"cells": 1, "dose": "one", "fault": "terminated:spurious", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "terminated:spurious", "learn_s": 113.064, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "64fa5e9a49fedf4ba42597a1819fb80f955fa6294510ebf2b8b150d68df2843b"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"terminated:spurious\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"64fa5e9a49fedf4ba42597a1819fb80f955fa6294510ebf2b8b150d68df2843b\", \"learn_s\": 113.064, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "terminated:spurious", "fault_json": {"cells": 1, "dose": "one", "fault": "terminated:spurious", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "terminated:spurious", "learn_s": 110.946, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "4c44114c7d688439d10e9467f8733be54437df178174d7f403be5c8513d675d5"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"terminated:spurious\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"4c44114c7d688439d10e9467f8733be54437df178174d7f403be5c8513d675d5\", \"learn_s\": 110.946, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "terminated:spurious", "fault_json": {"cells": 1, "dose": "one", "fault": "terminated:spurious", "first": [3249, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "terminated:spurious", "learn_s": 120.274, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "d7f158887ab6f24d384de958efe90d40e5af4e7e6659d4663053107ca738d7a0"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"terminated:spurious\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"d7f158887ab6f24d384de958efe90d40e5af4e7e6659d4663053107ca738d7a0\", \"learn_s\": 120.274, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 38 cells changed", "dose": "0.01", "env": "pusher", "fault": "truncated:as-term", "fault_json": {"cells": 38, "dose": "0.01", "fault": "truncated:as-term", "first": [199, 12], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "truncated:as-term", "learn_s": 111.367, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "9a547d41384f49b03d9963c27e0357e4bdb2919a7f9288b94bf0c7e4a390ca8d"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"truncated:as-term\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"9a547d41384f49b03d9963c27e0357e4bdb2919a7f9288b94bf0c7e4a390ca8d\", \"learn_s\": 111.367, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 38 cells changed", "dose": "0.01", "env": "pusher", "fault": "truncated:as-term", "fault_json": {"cells": 38, "dose": "0.01", "fault": "truncated:as-term", "first": [199, 12], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "truncated:as-term", "learn_s": 115.951, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "5c8da25ac997ece0f8d2440b232830c05a3ef85d27ce721178df751ab5fab6e0"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"truncated:as-term\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"5c8da25ac997ece0f8d2440b232830c05a3ef85d27ce721178df751ab5fab6e0\", \"learn_s\": 115.951, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 38 cells changed", "dose": "0.01", "env": "pusher", "fault": "truncated:as-term", "fault_json": {"cells": 38, "dose": "0.01", "fault": "truncated:as-term", "first": [199, 12], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "truncated:as-term", "learn_s": 116.591, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "d4a0b3f7936b979b965c92ee52810cebbaec6a0583e589d49d77cfdc20e95a8a"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"truncated:as-term\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"d4a0b3f7936b979b965c92ee52810cebbaec6a0583e589d49d77cfdc20e95a8a\", \"learn_s\": 116.591, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4096 cells changed", "dose": "1.0", "env": "pusher", "fault": "truncated:as-term", "fault_json": {"cells": 4096, "dose": "1.0", "fault": "truncated:as-term", "first": [99, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "truncated:as-term", "learn_s": 107.719, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "a21ec041acaf32796475a00aadcfb4b76159656aa2883c7834ac817256725011"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"truncated:as-term\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"a21ec041acaf32796475a00aadcfb4b76159656aa2883c7834ac817256725011\", \"learn_s\": 107.719, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4096 cells changed", "dose": "1.0", "env": "pusher", "fault": "truncated:as-term", "fault_json": {"cells": 4096, "dose": "1.0", "fault": "truncated:as-term", "first": [99, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "truncated:as-term", "learn_s": 105.447, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "2c830d25d1c44d4f803985a65ac6c8efb999933f7fcb427112a3fab11a011a33"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"truncated:as-term\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"2c830d25d1c44d4f803985a65ac6c8efb999933f7fcb427112a3fab11a011a33\", \"learn_s\": 105.447, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4096 cells changed", "dose": "1.0", "env": "pusher", "fault": "truncated:as-term", "fault_json": {"cells": 4096, "dose": "1.0", "fault": "truncated:as-term", "first": [99, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "truncated:as-term", "learn_s": 106.6, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "2039104a4953acea1d0a3119831ca97b53a7923118c14cd7f3f1921a1f1f1919"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"truncated:as-term\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"2039104a4953acea1d0a3119831ca97b53a7923118c14cd7f3f1921a1f1f1919\", \"learn_s\": 106.6, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "truncated:as-term", "fault_json": {"cells": 1, "dose": "one", "fault": "truncated:as-term", "first": [3299, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "truncated:as-term", "learn_s": 112.633, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "30a4872ce72959ad31c47aee27ca47b9c04ae277d5f642b4b13a895c509762cd"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"truncated:as-term\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"30a4872ce72959ad31c47aee27ca47b9c04ae277d5f642b4b13a895c509762cd\", \"learn_s\": 112.633, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "truncated:as-term", "fault_json": {"cells": 1, "dose": "one", "fault": "truncated:as-term", "first": [3299, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "truncated:as-term", "learn_s": 110.263, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "f9a4f5fbc0ed5860816ea81afdcb7cab53692c24edd8ffd1f620e073481c2a38"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"truncated:as-term\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"f9a4f5fbc0ed5860816ea81afdcb7cab53692c24edd8ffd1f620e073481c2a38\", \"learn_s\": 110.263, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "truncated:as-term", "fault_json": {"cells": 1, "dose": "one", "fault": "truncated:as-term", "first": [3299, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "truncated:as-term", "learn_s": 118.915, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "ab69473c46b34c61daa1c09070c77b2294fdcd20188d7c12f4dee352fd6279fd"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"truncated:as-term\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"ab69473c46b34c61daa1c09070c77b2294fdcd20188d7c12f4dee352fd6279fd\", \"learn_s\": 118.915, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 38 cells changed", "dose": "0.01", "env": "pusher", "fault": "truncated:drop", "fault_json": {"cells": 38, "dose": "0.01", "fault": "truncated:drop", "first": [199, 12], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "truncated:drop", "learn_s": 114.725, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "0904fa0dd7b3f0885103dd984ef1876776c18d10fd71e83ffcebd7c6659cdf62"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"truncated:drop\", \"dose\": \"0.01\", \"seed\": 0, \"weights_sha256\": \"0904fa0dd7b3f0885103dd984ef1876776c18d10fd71e83ffcebd7c6659cdf62\", \"learn_s\": 114.725, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 38 cells changed", "dose": "0.01", "env": "pusher", "fault": "truncated:drop", "fault_json": {"cells": 38, "dose": "0.01", "fault": "truncated:drop", "first": [199, 12], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "truncated:drop", "learn_s": 117.007, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "c83c6d84ce188e97f7d3b9e90e0b23bc85904617cfcda76e706a16b720add321"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"truncated:drop\", \"dose\": \"0.01\", \"seed\": 1, \"weights_sha256\": \"c83c6d84ce188e97f7d3b9e90e0b23bc85904617cfcda76e706a16b720add321\", \"learn_s\": 117.007, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 38 cells changed", "dose": "0.01", "env": "pusher", "fault": "truncated:drop", "fault_json": {"cells": 38, "dose": "0.01", "fault": "truncated:drop", "first": [199, 12], "steps": 25600}, "result": {"client_rc": 0, "dose": "0.01", "env": "pusher", "fault": "truncated:drop", "learn_s": 116.009, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "36c8f10f26cb6d9c5b020be593421bb90434eb423dcdaf8a6a9fe6f520d692cb"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"truncated:drop\", \"dose\": \"0.01\", \"seed\": 2, \"weights_sha256\": \"36c8f10f26cb6d9c5b020be593421bb90434eb423dcdaf8a6a9fe6f520d692cb\", \"learn_s\": 116.009, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4096 cells changed", "dose": "1.0", "env": "pusher", "fault": "truncated:drop", "fault_json": {"cells": 4096, "dose": "1.0", "fault": "truncated:drop", "first": [99, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "truncated:drop", "learn_s": 117.404, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "369d70ed736327d93db7033fa21cc371242c6f2b379d99d89906142f3642541e"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"truncated:drop\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"369d70ed736327d93db7033fa21cc371242c6f2b379d99d89906142f3642541e\", \"learn_s\": 117.404, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4096 cells changed", "dose": "1.0", "env": "pusher", "fault": "truncated:drop", "fault_json": {"cells": 4096, "dose": "1.0", "fault": "truncated:drop", "first": [99, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "truncated:drop", "learn_s": 116.383, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "10a9228af33ec44d4f8463fcb38d6269e21e554623c9a6dbeb2fafb11b5375b5"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"truncated:drop\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"10a9228af33ec44d4f8463fcb38d6269e21e554623c9a6dbeb2fafb11b5375b5\", \"learn_s\": 116.383, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 4096 cells changed", "dose": "1.0", "env": "pusher", "fault": "truncated:drop", "fault_json": {"cells": 4096, "dose": "1.0", "fault": "truncated:drop", "first": [99, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "truncated:drop", "learn_s": 115.803, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "5cc8b5401e35f082b8a4ad6b0cb0c79211e53a2d0e888e8659fcd31d5ebec04c"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"truncated:drop\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"5cc8b5401e35f082b8a4ad6b0cb0c79211e53a2d0e888e8659fcd31d5ebec04c\", \"learn_s\": 115.803, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "truncated:drop", "fault_json": {"cells": 1, "dose": "one", "fault": "truncated:drop", "first": [3299, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "truncated:drop", "learn_s": 112.153, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "572ec71135c0bb6d5ba809423eb7080025472c24ab6f849b893458d3f3b4899e"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"truncated:drop\", \"dose\": \"one\", \"seed\": 0, \"weights_sha256\": \"572ec71135c0bb6d5ba809423eb7080025472c24ab6f849b893458d3f3b4899e\", \"learn_s\": 112.153, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "truncated:drop", "fault_json": {"cells": 1, "dose": "one", "fault": "truncated:drop", "first": [3299, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "truncated:drop", "learn_s": 113.443, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "1db72fb1b61435f9a291bd1d10e56701d02fd36dcb65af695203d07734549c22"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"truncated:drop\", \"dose\": \"one\", \"seed\": 1, \"weights_sha256\": \"1db72fb1b61435f9a291bd1d10e56701d02fd36dcb65af695203d07734549c22\", \"learn_s\": 113.443, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 1 cells changed", "dose": "one", "env": "pusher", "fault": "truncated:drop", "fault_json": {"cells": 1, "dose": "one", "fault": "truncated:drop", "first": [3299, 0], "steps": 25600}, "result": {"client_rc": 0, "dose": "one", "env": "pusher", "fault": "truncated:drop", "learn_s": 117.725, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "762e384f353d793fb319fa4c330da3a6942e7bf3b264452200376660f74d03a0"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"truncated:drop\", \"dose\": \"one\", \"seed\": 2, \"weights_sha256\": \"762e384f353d793fb319fa4c330da3a6942e7bf3b264452200376660f74d03a0\", \"learn_s\": 117.725, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pusher", "fault": "wire-float64", "fault_json": {"cells": 0, "dose": "1.0", "fault": "wire-float64", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "wire-float64", "learn_s": 118.634, "seed": 0, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "d41e519b18c6944f218f4b10dd51ad62c601829e5d3f66094a3830b499c9a78f"}, "seed": 0, "train_log": "{\"env\": \"pusher\", \"fault\": \"wire-float64\", \"dose\": \"1.0\", \"seed\": 0, \"weights_sha256\": \"d41e519b18c6944f218f4b10dd51ad62c601829e5d3f66094a3830b499c9a78f\", \"learn_s\": 118.634, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pusher", "fault": "wire-float64", "fault_json": {"cells": 0, "dose": "1.0", "fault": "wire-float64", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "wire-float64", "learn_s": 112.272, "seed": 1, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "658351831b2fa3fd07566569396f5e45be86787fa4bf3a5883de9bf864069b1e"}, "seed": 1, "train_log": "{\"env\": \"pusher\", \"fault\": \"wire-float64\", \"dose\": \"1.0\", \"seed\": 1, \"weights_sha256\": \"658351831b2fa3fd07566569396f5e45be86787fa4bf3a5883de9bf864069b1e\", \"learn_s\": 112.272, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} +{"client_log": "closed after 25600 steps: 'plugrl-server-stop'; 0 cells changed", "dose": "1.0", "env": "pusher", "fault": "wire-float64", "fault_json": {"cells": 0, "dose": "1.0", "fault": "wire-float64", "first": null, "steps": 25600}, "result": {"client_rc": 0, "dose": "1.0", "env": "pusher", "fault": "wire-float64", "learn_s": 118.841, "seed": 2, "steps": 409600, "torch": "2.14.1+cpu", "weights_sha256": "6126b462a85d0cb323c333b804f327de0d7eb6e90f04805189397e884597aa17"}, "seed": 2, "train_log": "{\"env\": \"pusher\", \"fault\": \"wire-float64\", \"dose\": \"1.0\", \"seed\": 2, \"weights_sha256\": \"6126b462a85d0cb323c333b804f327de0d7eb6e90f04805189397e884597aa17\", \"learn_s\": 118.841, \"steps\": 409600, \"torch\": \"2.14.1+cpu\", \"client_rc\": 0}"} diff --git a/experiments/e58-pusher-faults/results/summarise.out b/experiments/e58-pusher-faults/results/summarise.out new file mode 100644 index 0000000..f36e797 --- /dev/null +++ b/experiments/e58-pusher-faults/results/summarise.out @@ -0,0 +1,88 @@ +env fault dose cells raises rule strict weights record bridge +pusher none 1.0 0/0/0 0/3 0/3 0/3 0/3 0/3 0/3 +pusher delay-1ms 1.0 0/0/0 0/3 0/3 0/3 0/3 0/3 0/3 +pusher wire-float64 1.0 0/0/0 0/3 0/3 0/3 0/3 0/3 0/3 +pusher obs:zero 0.01 4049/4049/4049 0/3 0/3 0/3 3/3 0/3 0/3 +pusher obs:zero 1.0 409616/409616/409616 0/3 0/3 3/3 3/3 0/3 0/3 +pusher obs:zero one 1/1/1 0/3 0/3 0/3 3/3 0/3 0/3 +pusher obs:stale 0.01 4049/4049/4049 0/3 0/3 0/3 3/3 0/3 0/3 +pusher obs:stale 1.0 409600/409600/409600 0/3 0/3 0/3 3/3 0/3 0/3 +pusher obs:stale one 1/1/1 0/3 0/3 0/3 3/3 0/3 0/3 +pusher obs:swap 0.01 4049/4049/4049 0/3 0/3 0/3 3/3 0/3 0/3 +pusher obs:swap 1.0 409616/409616/409616 0/3 0/3 3/3 3/3 0/3 0/3 +pusher obs:swap one 1/1/1 0/3 0/3 0/3 3/3 0/3 0/3 +pusher obs:f16 0.01 4049/4049/4049 0/3 0/3 0/3 3/3 0/3 0/3 +pusher obs:f16 1.0 409616/409616/409616 0/3 0/3 0/3 3/3 0/3 0/3 +pusher obs:f16 one 1/1/1 0/3 0/3 0/3 3/3 0/3 0/3 +pusher action:zero 0.01 4049/4049/4049 0/3 0/3 0/3 3/3 0/3 0/3 +pusher action:zero 1.0 409600/409600/409600 0/3 3/3 3/3 3/3 0/3 0/3 +pusher action:zero one 1/1/1 0/3 0/3 0/3 3/3 0/3 0/3 +pusher action:stale 0.01 4049/4049/4049 0/3 0/3 0/3 3/3 0/3 0/3 +pusher action:stale 1.0 409600/409600/409600 0/3 0/3 0/3 3/3 0/3 0/3 +pusher action:stale one 1/1/1 0/3 0/3 0/3 3/3 0/3 0/3 +pusher action:swap 0.01 4049/4049/4049 0/3 0/3 0/3 3/3 0/3 0/3 +pusher action:swap 1.0 409600/409600/409600 0/3 3/3 3/3 3/3 0/3 0/3 +pusher action:swap one 1/1/1 0/3 0/3 0/3 3/3 0/3 0/3 +pusher action:f16 0.01 4049/4049/4049 0/3 0/3 0/3 3/3 0/3 0/3 +pusher action:f16 1.0 409600/409600/409600 0/3 0/3 0/3 3/3 0/3 0/3 +pusher action:f16 one 1/1/1 0/3 0/3 0/3 3/3 0/3 0/3 +pusher action:clip 0.01 1433/1454/1350 0/3 0/3 0/3 3/3 0/3 0/3 +pusher action:clip 1.0 203780/212889/249421 0/3 0/3 1/3 3/3 0/3 0/3 +pusher action:clip one 1/1/1 0/3 0/3 0/3 3/3 0/3 0/3 +pusher reward:zero 0.01 4049/4049/4049 0/3 0/3 0/3 3/3 3/3 0/3 +pusher reward:zero 1.0 409600/409600/409600 0/3 3/3 3/3 3/3 3/3 0/3 +pusher reward:zero one 1/1/1 0/3 0/3 0/3 3/3 3/3 0/3 +pusher reward:stale 0.01 4049/4049/4049 0/3 0/3 0/3 3/3 3/3 0/3 +pusher reward:stale 1.0 409600/409600/409600 0/3 0/3 0/3 3/3 3/3 0/3 +pusher reward:stale one 1/1/1 0/3 0/3 0/3 3/3 3/3 0/3 +pusher reward:swap 0.01 4049/4049/4049 0/3 0/3 0/3 3/3 3/3 0/3 +pusher reward:swap 1.0 409600/409600/409600 0/3 3/3 3/3 3/3 3/3 0/3 +pusher reward:swap one 1/1/1 0/3 0/3 0/3 3/3 3/3 0/3 +pusher reward:f16 0.01 4049/4047/4049 0/3 0/3 0/3 3/3 0/3 0/3 +pusher reward:f16 1.0 409549/409543/409546 0/3 0/3 0/3 3/3 0/3 0/3 +pusher reward:f16 one 1/1/1 0/3 0/3 0/3 3/3 0/3 0/3 +pusher final-obs:zero 0.01 38/38/38 0/3 0/3 0/3 3/3 0/3 0/3 +pusher final-obs:zero 1.0 4096/4096/4096 0/3 0/3 0/3 3/3 0/3 0/3 +pusher final-obs:zero one 1/1/1 0/3 0/3 0/3 3/3 0/3 0/3 +pusher final-obs:stale 0.01 38/38/38 0/3 0/3 0/3 3/3 0/3 0/3 +pusher final-obs:stale 1.0 4096/4096/4096 0/3 0/3 0/3 3/3 0/3 0/3 +pusher final-obs:stale one 1/1/1 0/3 0/3 0/3 3/3 0/3 0/3 +pusher final-obs:swap 0.01 38/38/38 0/3 0/3 0/3 3/3 0/3 0/3 +pusher final-obs:swap 1.0 4096/4096/4096 0/3 0/3 0/3 3/3 0/3 0/3 +pusher final-obs:swap one 1/1/1 0/3 0/3 0/3 3/3 0/3 0/3 +pusher final-obs:f16 0.01 38/38/38 0/3 0/3 0/3 3/3 0/3 0/3 +pusher final-obs:f16 1.0 4096/4096/4096 0/3 0/3 0/3 3/3 0/3 0/3 +pusher final-obs:f16 one 1/1/1 0/3 0/3 0/3 3/3 0/3 0/3 +pusher terminated:spurious 0.01 4049/4049/4049 0/3 3/3 1/3 3/3 3/3 0/3 +pusher terminated:spurious 1.0 409600/409600/409600 0/3 3/3 3/3 3/3 3/3 0/3 +pusher terminated:spurious one 1/1/1 0/3 0/3 0/3 3/3 3/3 0/3 +pusher truncated:drop 0.01 38/38/38 0/3 0/3 0/3 3/3 3/3 0/3 +pusher truncated:drop 1.0 4096/4096/4096 0/3 3/3 3/3 3/3 3/3 0/3 +pusher truncated:drop one 1/1/1 0/3 0/3 0/3 3/3 3/3 0/3 +pusher truncated:as-term 0.01 38/38/38 0/3 0/3 0/3 3/3 0/3 0/3 +pusher truncated:as-term 1.0 4096/4096/4096 0/3 0/3 3/3 3/3 0/3 0/3 +pusher truncated:as-term one 1/1/1 0/3 0/3 0/3 3/3 0/3 0/3 +pusher step:fill 0.01 4049/4049/4049 0/3 0/3 0/3 3/3 3/3 0/3 +pusher step:fill 1.0 409600/409600/409600 0/3 3/3 3/3 3/3 0/3 0/3 +pusher step:fill one 1/1/1 0/3 0/3 0/3 3/3 3/3 0/3 +pusher log:drop-first 0.01 39/39/39 0/3 0/3 0/3 0/3 3/3 3/3 +pusher log:drop-first 1.0 4096/4096/4096 0/3 0/3 0/3 0/3 3/3 3/3 +pusher log:drop-first one 1/1/1 0/3 0/3 0/3 0/3 3/3 3/3 +pusher log:short 0.01 39/39/39 0/3 0/3 0/3 0/3 3/3 3/3 +pusher log:short 1.0 4096/4096/4096 0/3 0/3 0/3 0/3 3/3 3/3 +pusher log:short one 1/1/1 0/3 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) + pusher client one n= 63 raises 0.0 rule 0.0 strict 0.0 weights 1.0 record 0.286 bridge 0.0 either 1.0 + pusher client 0.01 n= 63 raises 0.0 rule 0.048 strict 0.016 weights 1.0 record 0.286 bridge 0.0 either 1.0 + pusher client 1.0 n= 63 raises 0.0 rule 0.333 strict 0.492 weights 1.0 record 0.238 bridge 0.0 either 1.0 + pusher log one n= 6 raises 0.0 rule 0.0 strict 0.0 weights 0.0 record 1.0 bridge 1.0 either 1.0 + pusher log 0.01 n= 6 raises 0.0 rule 0.0 strict 0.0 weights 0.0 record 1.0 bridge 1.0 either 1.0 + pusher log 1.0 n= 6 raises 0.0 rule 0.0 strict 0.0 weights 0.0 record 1.0 bridge 1.0 either 1.0 + pusher all one n= 69 raises 0.0 rule 0.0 strict 0.0 weights 0.913 record 0.348 bridge 0.087 either 1.0 + pusher all 0.01 n= 69 raises 0.0 rule 0.043 strict 0.014 weights 0.913 record 0.348 bridge 0.087 either 1.0 + pusher all 1.0 n= 69 raises 0.0 rule 0.304 strict 0.449 weights 0.913 record 0.304 bridge 0.087 either 1.0 + +pusher fault-free band, seeds 10-19: mean -36.1, sd 1.9, min -39.4, max -32.8 +pusher strict check on fault-free seeds 10-19, each against the other nine: 0 of 10 flagged +incomplete without an error: none diff --git a/experiments/e58-pusher-faults/results/verdicts.txt b/experiments/e58-pusher-faults/results/verdicts.txt new file mode 100644 index 0000000..213577a --- /dev/null +++ b/experiments/e58-pusher-faults/results/verdicts.txt @@ -0,0 +1,12 @@ +V1: holds - 226 of 226 complete +V2: holds - controls on none's weights: 6 of 6 +P1: holds - weights differ in 189 of 189 +P2: holds - log faults on none's weights: 18 of 18 +P3: holds - one: 0/69 (0.0%, cap 10%); 0.01: 3/69 (4.3%, cap 10%); 1.0: 21/69 (30.4%, cap 60%) +P4: holds - missed 0, caught 0 it should not +P5: holds - bridge caught 18 of 18 log-fault runs, 0 of 189 client-fault runs +P6: holds - caught and right in 189 of 189 client-fault runs; no difference in 27 of 27 control and log-fault runs +P7: holds - ledger or record caught 207 of 207 +P8: holds - band seeds flagged against the other nine: 0 of 10 +P9: holds - harmed at doses one and 0.01: 3 of 126 +reported: clean band mean -31.8 sd 2.1, harm bar -38.0; harmed: 0 of 155 runs silent on both curve checks, 30 of 34 runs a curve check caught; silent and harmed: [] diff --git a/experiments/e58-pusher-faults/run.sh b/experiments/e58-pusher-faults/run.sh new file mode 100644 index 0000000..a361b1e --- /dev/null +++ b/experiments/e58-pusher-faults/run.sh @@ -0,0 +1,53 @@ +#!/usr/bin/env bash +# E58's 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] +# bash run.sh budget budget [W] +# Writes DIR////seed/, with train.log in it. +# A traced run is judged by ledger.py as soon as it ends (ledger.json), and +# its trace.npz and ledger.npz are deleted, as in E56. Every run's final policy +# is then evaluated on a clean environment (evaluate.py, clean_eval.json), as in E57. +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, pilot or budget}"; 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 ledger.py evaluate.py > "$DIR/e58-src.sha256" +echo "$(wc -l < "$DIR/jobs.txt") runs, $W at a time" + +worker() { + local w=$1 port=$((8920 + $1)) + # 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 total; 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" + budget=""; [ -n "${total:-}" ] && budget="--total $total" + "$PY" train.py --env "$env" --fault "$fault" --dose "$dose" --seed "$seed" \ + --out "$out" --port "$port" $flag $budget > "$out/train.log" 2>&1 || echo "worker $w: train.py exited $? on $out" + if [ "$trace" = trace ]; then + if "$PY" ledger.py --run "$out" > "$out/ledger.log" 2>&1; then + rm -f "$out/trace.npz" "$out/ledger.npz" + else + echo "worker $w: ledger.py failed on $out; kept its npz" + fi + fi + "$PY" evaluate.py "$out" "$out" --episodes 50 > "$out/eval.log" 2>&1 || echo "worker $w: evaluate.py failed on $out" + done + echo "worker $w done" +} + +for w in $(seq 0 $((W - 1))); do + worker "$w" & +done +wait +uptime | tee -a "$DIR/load.txt" +echo E58_DONE diff --git a/experiments/e58-pusher-faults/summarise.py b/experiments/e58-pusher-faults/summarise.py new file mode 100644 index 0000000..dbaf8c6 --- /dev/null +++ b/experiments/e58-pusher-faults/summarise.py @@ -0,0 +1,290 @@ +"""E54's summarise.py, via E56, with Pusher (E58): what each check says about each fault, at each dose. + +E58: Pusher's status rule counts episodes, as Hopper's does: the mean return of +the last tenth of the trainer's log against the first tenth's. Its budget and +bar are fixed by the budget pilot (PUSHER_STEPS, PUSHER_BAR; PROTOCOL.md). + +E54's docstring: + + 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, "hopper": 1_024_000} +# 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) +# E58: fixed by the budget pilot, before the registered runs (PROTOCOL.md). +PUSHER_STEPS = 409_600 +PUSHER_BAR = 36.0 # half the budget pilot's mean gain at 409,600 steps (72.6, 73.7) +STEPS["pusher"] = PUSHER_STEPS + + +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 in ("hopper", "pusher"): + # Hopper's episodes vary in length, so its windows count episodes: the + # first and the last tenth of the trainer's log, at least 20 episodes. + if len(returns) < 20: + return None + k = len(returns) // 10 + first, last = statistics.mean(returns[:k]), statistics.mean(returns[-k:]) + return last - first, last + 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: + if env == "pusher": + return PUSHER_BAR + if env == "hopper": + return 1000.0 # E56's, fixed after its budget pilot (PROTOCOL.md) + 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", "hopper", "pusher"): + 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", "hopper", "pusher"): + 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/e58-pusher-faults/train.py b/experiments/e58-pusher-faults/train.py new file mode 100644 index 0000000..cd5d413 --- /dev/null +++ b/experiments/e58-pusher-faults/train.py @@ -0,0 +1,320 @@ +"""E58: E56's train.py, with Pusher-v5. + +- pusher: Pusher-v5, a 7-joint arm that pushes an object to a goal, SB3's + defaults with 16 x 256 frames per rollout, as HalfCheetah and Hopper. Its + episodes always end at the 100-step time limit; it never terminates. + The budget is fixed after the budget pilot (PROTOCOL.md). --total overrides + it, for the pilot only. +Everything below is E56's, unchanged. + +E56's docstring: + +E56: E55's train.py, with Hopper-v5. + +- hopper: Hopper-v5, SB3's defaults with 16 x 256 frames per rollout, as + HalfCheetah in E50. Hopper ends an episode when it falls. --total overrides + the budget, for the pilot only. +Everything below is E55's, unchanged. + +E55's docstring: + +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 (E56'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), + ), + "hopper": dict( + id="Hopper-v5", + total=1_024_000, + action=(3, 1.0), + ppo=dict(n_steps=256), + ), + "pusher": dict( + id="Pusher-v5", + total=409_600, # set by the budget pilot; see PROTOCOL.md + action=(7, 2.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") + p.add_argument("--total", type=int, default=None, help="pilot only") + a = p.parse_args() + spec = dict(ENVS[a.env]) + if a.total is not None: + spec["total"] = a.total + 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/e58-pusher-faults/verdicts.py b/experiments/e58-pusher-faults/verdicts.py new file mode 100644 index 0000000..c14f5c5 --- /dev/null +++ b/experiments/e58-pusher-faults/verdicts.py @@ -0,0 +1,213 @@ +"""E58: judge PROTOCOL.md's checks and predictions from runs.csv, ledger.csv +and each run's clean_eval.json. + + python verdicts.py results # prints, and writes results/verdicts.txt + +Each prediction is judged as PROTOCOL.md words it, on seeds 0-2, over runs +whose fault changed at least one value. E56's verdicts.py, with these changes: +- P1 covers every client fault: Pusher's episodes all end at the time limit, + where SB3 bootstraps from the final observation, so the final-obs faults + are read by training; +- P4 drops terminated:drop and terminated:as-trunc, which E58 does not run; +- P8 and P9 judge the clean evaluation, as E57 did. +""" + +from __future__ import annotations + +import csv +import json +import pathlib +import statistics +import sys + +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") +SEEDS = {"0", "1", "2"} +FINAL_OBS = tuple(f for f in SILENT if f.startswith("final-obs:")) + + +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 HERE / "results" + rows = read(root / "runs.csv") + ledger = read(root / "ledger.csv") + reg = [r for r in rows if r["seed"] in SEEDS] + changed = [ + r + for r in reg + if r["fault"] not in CONTROLS + LOUD and r["cells"] not in ("", "0", "None") + ] + out = [] + + def verdict(name: str, ok: bool, detail: str) -> None: + out.append(f"{name}: {'holds' if ok else 'FAILS'} - {detail}") + + def runs_of(rs) -> list: + return [(r["fault"], r["dose"], r["seed"]) for r in rs] + + bad = [r for r in rows if r["complete"] != "1"] + verdict( + "V1", + not bad, + f"{len(rows) - len(bad)} of {len(rows)} complete" + + (f"; not: {runs_of(bad)[:5]}" if bad else ""), + ) + none = {r["seed"]: r["sha"] for r in reg if r["fault"] == "none"} + ctrl = [r for r in reg if r["fault"] in ("delay-1ms", "wire-float64")] + v2_bad = [r for r in ctrl if r["sha"] != none.get(r["seed"])] + verdict( + "V2", + not v2_bad and len(ctrl) == 6, + f"controls on none's weights: {len(ctrl) - len(v2_bad)} of {len(ctrl)}", + ) + + client = [r for r in changed if r["fault"] in SILENT] + p1 = client + p1_bad = [r for r in p1 if r["weights"] != "1"] + verdict( + "P1", + not p1_bad, + f"weights differ in {len(p1) - len(p1_bad)} of {len(p1)}" + + (f"; not: {runs_of(p1_bad)}" if p1_bad else ""), + ) + + logs = [r for r in changed if r["fault"] in LOG] + p2_bad = [r for r in logs if r["weights"] != "0"] + verdict( + "P2", + not p2_bad, + f"log faults on none's weights: {len(logs) - len(p2_bad)} of {len(logs)}", + ) + + p3_ok, parts = True, [] + for dose, cap in (("one", 0.10), ("0.01", 0.10), ("1.0", 0.60)): + rs = [r for r in client + logs if r["dose"] == dose] + n = sum(r["rule"] == "1" for r in rs) + p3_ok &= n / len(rs) <= cap + parts.append(f"{dose}: {n}/{len(rs)} ({n / len(rs):.1%}, cap {cap:.0%})") + verdict("P3", p3_ok, "; ".join(parts)) + + must = ( + "reward:zero", + "reward:stale", + "reward:swap", + "terminated:spurious", + "truncated:drop", + ) + never = tuple( + f for f in SILENT if f.split(":")[0] in ("obs", "action", "final-obs") + ) + ("truncated:as-term",) + miss = [ + r + for r in changed + if r["fault"] in must and r["dose"] in ("0.01", "1.0") and r["record"] != "1" + ] + miss += [ + r + for r in changed + if r["fault"] == "step:fill" and r["dose"] == "0.01" and r["record"] != "1" + ] + miss += [r for r in logs if r["record"] != "1"] + false = [r for r in changed if r["fault"] in never and r["record"] == "1"] + verdict( + "P4", + not miss and not false, + f"missed {len(miss)}, caught {len(false)} it should not" + + (f"; missed: {runs_of(miss)[:8]}" if miss else "") + + (f"; caught: {runs_of(false)[:8]}" if false else ""), + ) + + p5_ok = all(r["bridge"] == "1" for r in logs) and all( + r["bridge"] == "0" for r in client + ) + verdict( + "P5", + p5_ok, + f"bridge caught {sum(r['bridge'] == '1' for r in logs)} of {len(logs)} log-fault runs, " + f"{sum(r['bridge'] == '1' for r in client)} of {len(client)} client-fault runs", + ) + + led = [r for r in ledger if r["seed"] in SEEDS] + led_client = [ + r for r in led if r["fault"] in SILENT and r["cells"] not in ("", "0") + ] + led_quiet = [r for r in led if r["fault"] in CONTROLS + LOG] + p6_bad = [r for r in led_client if r["caught"] != "1" or r["right"] != "1"] + p6_false = [r for r in led_quiet if r["caught"] != "0"] + verdict( + "P6", + not p6_bad and not p6_false, + f"caught and right in {len(led_client) - len(p6_bad)} of {len(led_client)} client-fault runs; " + f"no difference in {len(led_quiet) - len(p6_false)} of {len(led_quiet)} control and log-fault runs" + + ( + f"; not: {[(r['fault'], r['dose'], r['seed'], r['found']) for r in p6_bad][:6]}" + if p6_bad + else "" + ), + ) + + caught_ledger = { + (r["fault"], r["dose"], r["seed"]) for r in led if r["caught"] == "1" + } + p7_miss = [r for r in client + logs + if r["record"] != "1" and (r["fault"], r["dose"], r["seed"]) not in caught_ledger] # fmt: skip + verdict( + "P7", + not p7_miss, + f"ledger or record caught {len(client + logs) - len(p7_miss)} of {len(client + logs)}", + ) + + # Clean evaluation (E57's rule): harmed = clean return more than 3 s.d. + # below the band of fault-free seeds 10-19. + clean = {} + for f in root.glob("*/*/*/seed*/clean_eval.json"): + d = json.loads(f.read_text()) + clean[(d["fault"], d["dose"], str(d["seed"]))] = d["mean"] + band = [ + clean[("none", "1.0", str(s))] + for s in range(10, 20) + if ("none", "1.0", str(s)) in clean + ] + flagged = 0 + for i, x in enumerate(band): + rest = band[:i] + band[i + 1 :] + flagged += x < statistics.mean(rest) - 3 * statistics.stdev(rest) + verdict( + "P8", + len(band) == 10 and flagged <= 1, + f"band seeds flagged against the other nine: {flagged} of {len(band)}", + ) + mu, sd = statistics.mean(band), statistics.stdev(band) + harmed = {k for k, v in clean.items() if v < mu - 3 * sd} + low = [r for r in client if r["dose"] in ("one", "0.01")] + low_h = [r for r in low if (r["fault"], r["dose"], r["seed"]) in harmed] + verdict( + "P9", + len(low_h) <= 0.10 * len(low), + f"harmed at doses one and 0.01: {len(low_h)} of {len(low)}", + ) + silent = [r for r in client if r["rule"] == "0" and r["strict"] == "0"] + silent_h = [r for r in silent if (r["fault"], r["dose"], r["seed"]) in harmed] + caught = [r for r in client if not (r["rule"] == "0" and r["strict"] == "0")] + caught_h = [r for r in caught if (r["fault"], r["dose"], r["seed"]) in harmed] + out.append( + f"reported: clean band mean {mu:.1f} sd {sd:.1f}, harm bar {mu - 3 * sd:.1f}; " + f"harmed: {len(silent_h)} of {len(silent)} runs silent on both curve checks, " + f"{len(caught_h)} of {len(caught)} runs a curve check caught; " + f"silent and harmed: {runs_of(silent_h)}" + ) + text = "\n".join(out) + print(text) + (root / "verdicts.txt").write_bytes((text + "\n").encode("utf-8")) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main())