diff --git a/.gitattributes b/.gitattributes index a6344aac8c09253b3b630fb776ae94478aa0275b..552508adbc0eeec8bc79cc6432605e376269aeb1 100644 --- a/.gitattributes +++ b/.gitattributes @@ -33,3 +33,9 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text *.zip filter=lfs diff=lfs merge=lfs -text *.zst filter=lfs diff=lfs merge=lfs -text *tfevents* filter=lfs diff=lfs merge=lfs -text +planet/cartpole_swingup/tensorflow/model.ckpt-4504500.data-00000-of-00001 filter=lfs diff=lfs merge=lfs -text +planet/cartpole_swingup/tensorflow/model.ckpt-4504500.meta filter=lfs diff=lfs merge=lfs -text +planet/cheetah_run/tensorflow/model.ckpt-4504500.data-00000-of-00001 filter=lfs diff=lfs merge=lfs -text +planet/cheetah_run/tensorflow/model.ckpt-4504500.meta filter=lfs diff=lfs merge=lfs -text +planet/reacher_easy/tensorflow/model.ckpt-4504500.data-00000-of-00001 filter=lfs diff=lfs merge=lfs -text +planet/reacher_easy/tensorflow/model.ckpt-4504500.meta filter=lfs diff=lfs merge=lfs -text diff --git a/LICENSES.md b/LICENSES.md new file mode 100644 index 0000000000000000000000000000000000000000..945396ed85370f86ce4efd2ebe065ad212ec2af7 --- /dev/null +++ b/LICENSES.md @@ -0,0 +1,17 @@ +# Attribution and license notices + +The `licenses/` directory contains the license notices shipped with the five +source code repositories used to produce or load these checkpoints: + +| Project | Source notice | +|---|---| +| LeWM | [MIT notice](licenses/le-wm.txt) | +| DINO-WM | [MIT notice](licenses/dino_wm.txt) | +| PlaNet | [Apache 2.0 notice](licenses/planet.txt) | +| TD-MPC2 | [MIT notice](licenses/tdmpc2.txt) | +| DreamerV3 | [Source license](licenses/dreamerv3.txt) | + +These source notices are preserved for attribution. They do not create a new +blanket license for this collection or replace any terms accompanying upstream +weights and datasets. Consult the linked upstream artifact pages for those terms. +No new collection-wide license is assigned in this preparation. diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..78865094866b50416d4f220230189b1963146c2b --- /dev/null +++ b/README.md @@ -0,0 +1,87 @@ +--- +language: +- en +tags: +- reinforcement-learning +- world-model +- robustness +- adversarial-evaluation +- checkpoint +--- + +# World-model attack research checkpoints + +Frozen checkpoints and supporting configurations for the research project +**Misranking Imagined Futures: Test-Time Attacks on Frozen World-Model Planners**. +This collection preserves the available checkpoints used by the local research +implementations, including upstream pretrained models and locally trained models. + +| Directory | Included artifacts | +|---|---| +| `le-wm/` | Cube, Push-T, Reacher, and Two-Rooms model weights and architecture configurations; residual HGD and paper HGD defense checkpoints | +| `dino_wm/` | Released Push-T and Wall/Two-Rooms model checkpoints and training configurations | +| `planet/` | Cartpole Swingup, Reacher Easy, and Cheetah Run native TensorFlow checkpoints, frozen PyTorch inference exports, and TensorFlow parity fixtures | +| `tdmpc2/` | The four RGB checkpoints selected by the research reference manifests: Finger Spin at 1,000,000 steps; Cup Catch and Cheetah Run at 1,500,000; Cartpole Balance at 250,000 | +| `dreamerv3/` | Cheetah Run and Reacher Easy training configurations and immutable checkpoint directories | + +These checkpoints have different observation preprocessing, architectures, task +interfaces, and Python dependencies. Use the corresponding research model loader; +they are not interchangeable Transformers models. The PlaNet PyTorch exports +contain 32 inference tensors and require the research implementation of PlaNet. +The DINO-WM checkpoints also require their DINOv2 encoder dependency and native +task data. LeWM and defense evaluations require their datasets and simulators. + +## Download and integrity + +Download the repository using the Hugging Face CLI: + +```bash +hf download mohendy/world-model-attack-checkpoints --local-dir ./checkpoints +python ./checkpoints/verify_download.py +``` + +If the repository is private, authenticate with `hf auth login` first. For a +durable experiment record, pass `--revision` with the repository commit SHA +returned by the upload, instead of relying on the moving `main` branch. A partial +download can be checked with `python verify_download.py --model planet` from the +downloaded directory. + +`manifest.json` records the SHA-256 and size of every checkpoint/configuration, +plus its original relative location in the research workspace. Its +`source_relative_path` field provides the destination mapping for the code +release's artifact layout. Binary model checkpoints preserve their source bytes. +Configuration output paths are sanitized and relative. HGD checkpoints are +re-exported with sanitized metadata; their `state_dict` tensors were verified to +be exactly equal to the originals. Both original and released hashes are recorded. + +Copy or link artifacts into the code release using that mapping, and set explicit +checkpoint/data paths for your machine. Run directories for Dreamer must include +their `config.yaml` and chosen `ckpt//` directory. Select the +immutable directory explicitly instead of a training run's `latest` pointer. + +Model-specific `runtime.json` files record the installed Python and package +versions from the research environment. They are provenance records, not a +guarantee that all packages resolve unchanged on another platform. The code +release maintains environment installation instructions and validation results. + +## Scope and provenance + +Datasets, experiment logs, videos, and per-episode adversarial perturbations are +not included. Checkpoint availability alone does not reproduce the paper tables: +the task datasets, episode identities, seed schedules, preprocessing, planner +configuration, and matched clean reference results must also agree. + +Upstream projects and weight sources: + +- [LeWM code](https://github.com/lucas-maes/le-wm) and + [checkpoint collection](https://huggingface.co/collections/quentinll/lewm). +- [DINO-WM code](https://github.com/gaoyuezhou/dino_wm) and its + [released artifacts](https://osf.io/bmw48/). +- [PlaNet code](https://github.com/google-research/planet); the local inference + exports record source artifact revision + `b26a7fe027c018f62b3178c8e126371fbdee33e5` in `attack_export.json`. +- [TD-MPC2 code](https://github.com/nicklashansen/tdmpc2). +- [DreamerV3 code](https://github.com/danijar/dreamerv3). + +See [LICENSES.md](LICENSES.md) for the accompanying upstream notices. Original +upstream work and local research additions should be credited separately. diff --git a/dino_wm/pusht/hydra.yaml b/dino_wm/pusht/hydra.yaml new file mode 100644 index 0000000000000000000000000000000000000000..74a7c50ea8d175dba40cb0abdac62ed61b6708b4 --- /dev/null +++ b/dino_wm/pusht/hydra.yaml @@ -0,0 +1,96 @@ +ckpt_base_path: ./checkpoints +training: + seed: 0 + epochs: 100 + batch_size: 32 + save_every_x_epoch: 1 + reconstruct_every_x_batch: 500 + num_reconstruct_samples: 6 + encoder_lr: 1.0e-06 + decoder_lr: 0.0003 + predictor_lr: 0.0005 + action_encoder_lr: 0.0005 +img_size: 224 +frameskip: 5 +concat_dim: 1 +normalize_action: true +action_emb_dim: 10 +num_action_repeat: 1 +proprio_emb_dim: 10 +num_proprio_repeat: 1 +num_hist: 3 +num_pred: 1 +has_predictor: true +has_decoder: true +state_based: false +model: + _target_: models.visual_world_model.VWorldModel + image_size: 224 + num_hist: 3 + num_pred: 1 + train_encoder: false + train_predictor: true + train_decoder: true +debug: false +plan_settings: + plan_cfg_path: conf/plan.yaml + planner: + - cem + goal_source: + - dset + goal_H: + - 5 + alpha: + - 0.1 + - 1 +env: + name: pusht + args: [] + kwargs: + with_velocity: true + with_target: true + dataset: + _target_: datasets.pusht_dset.load_pusht_slice_train_val + with_velocity: true + n_rollout: null + normalize_action: true + data_path: ${oc.env:DATASET_DIR}/pusht_noise + split_ratio: 0.9 + transform: + _target_: datasets.img_transforms.default_transform + img_size: 224 + decoder_path: null + num_workers: 16 +encoder: + _target_: models.dino.DinoV2Encoder + name: dinov2_vits14 + feature_key: x_norm_patchtokens +action_encoder: + _target_: models.proprio.ProprioceptiveEmbedding + num_frames: 1 + tubelet_size: 1 + use_3d_pos: false +proprio_encoder: + _target_: models.proprio.ProprioceptiveEmbedding + num_frames: 1 + tubelet_size: 1 + use_3d_pos: false +decoder: + _target_: models.vqvae.VQVAE + channel: 384 + n_embed: 2048 + n_res_block: 4 + n_res_channel: 128 + quantize: false +predictor: + _target_: models.vit.ViTPredictor + depth: 6 + heads: 16 + mlp_dim: 2048 + dropout: 0.1 + emb_dropout: 0 + pool: mean +saved_folder: ./checkpoints +effective_batch_size: 32 +gpu_batch_size: 1 +wandb_run_id: null diff --git a/dino_wm/pusht/model_latest.pth b/dino_wm/pusht/model_latest.pth new file mode 100644 index 0000000000000000000000000000000000000000..3dc09e1aa1b90a4146264ca30d437e228186a6b4 --- /dev/null +++ b/dino_wm/pusht/model_latest.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e909f0cec958fc0b49a79f2e85730ae6b5f83dee61a224705f91883eb3bb74c5 +size 377929744 diff --git a/dino_wm/runtime.json b/dino_wm/runtime.json new file mode 100644 index 0000000000000000000000000000000000000000..aff386f9063b044b1a80e6473496da3759dcb354 --- /dev/null +++ b/dino_wm/runtime.json @@ -0,0 +1,103 @@ +{ + "python": "3.10.14", + "platform": "Linux x86_64", + "packages": { + "hydra-submitit-launcher": "1.2.0", + "submitit": "1.5.1", + "typing-extensions": "4.15.0", + "cloudpickle": "2.1.0", + "hydra-core": "1.2.0", + "packaging": "24.0", + "antlr4-python3-runtime": "4.9.3", + "omegaconf": "2.3.0", + "pyyaml": "6.0.1", + "accelerate": "0.26.1", + "safetensors": "0.4.3", + "huggingface-hub": "0.36.2", + "tqdm": "4.66.4", + "requests": "2.32.3", + "certifi": "2024.6.2", + "urllib3": "2.2.1", + "idna": "3.7", + "charset-normalizer": "3.3.2", + "hf-xet": "1.2.0", + "fsspec": "2024.5.0", + "filelock": "3.14.0", + "torch": "2.7.0+cu128", + "triton": "3.3.0", + "setuptools": "70.0.0", + "nvidia-cufile-cu12": "1.13.0.11", + "nvidia-nvjitlink-cu12": "12.8.61", + "nvidia-nvtx-cu12": "12.8.55", + "nvidia-nccl-cu12": "2.26.2", + "nvidia-cusparselt-cu12": "0.6.3", + "nvidia-cusparse-cu12": "12.5.7.53", + "nvidia-cusolver-cu12": "11.7.2.55", + "nvidia-cublas-cu12": "12.8.3.14", + "nvidia-curand-cu12": "10.3.9.55", + "nvidia-cufft-cu12": "11.3.3.41", + "nvidia-cudnn-cu12": "9.7.1.26", + "nvidia-cuda-cupti-cu12": "12.8.57", + "nvidia-cuda-runtime-cu12": "12.8.57", + "nvidia-cuda-nvrtc-cu12": "12.8.61", + "jinja2": "3.1.4", + "markupsafe": "2.1.5", + "networkx": "3.2.1", + "sympy": "1.14.0", + "mpmath": "1.3.0", + "psutil": "7.2.2", + "numpy": "1.26.4", + "dill": "0.4.1", + "scikit-image": "0.19.3", + "pywavelets": "1.6.0", + "tifffile": "2024.5.22", + "imageio": "2.34.1", + "pillow": "10.3.0", + "scipy": "1.13.1", + "numba": "0.59.1", + "llvmlite": "0.42.0", + "decord": "0.6.0", + "h5py": "3.11.0", + "pygame": "2.5.2", + "pymunk": "6.8.0", + "cffi": "1.16.0", + "pycparser": "2.22", + "mujoco": "3.2.7", + "pyopengl": "3.1.7", + "glfw": "2.7.0", + "etils": "1.5.2", + "zipp": "3.19.1", + "importlib-resources": "6.4.0", + "absl-py": "2.1.0", + "dm-control": "1.0.27", + "pyparsing": "3.1.2", + "protobuf": "6.33.6", + "lxml": "5.3.1", + "labmaze": "1.0.6", + "dm-tree": "0.1.8", + "dm-env": "1.6", + "gym": "0.23.1", + "gym-notices": "0.0.8", + "wandb": "0.25.1", + "sentry-sdk": "2.3.1", + "pydantic": "2.12.5", + "typing-inspection": "0.4.2", + "pydantic-core": "2.41.5", + "annotated-types": "0.7.0", + "platformdirs": "4.2.2", + "gitpython": "3.1.43", + "gitdb": "4.0.11", + "smmap": "5.0.1", + "click": "8.1.7", + "einops": "0.4.1", + "matplotlib": "3.5.3", + "python-dateutil": "2.9.0.post0", + "six": "1.16.0", + "kiwisolver": "1.4.5", + "fonttools": "4.53.0", + "cycler": "0.12.1", + "imageio-ffmpeg": "0.4.9", + "torchvision": "0.22.0+cu128" + }, + "metadata_conflicts": [] +} diff --git a/dino_wm/wall_single/hydra.yaml b/dino_wm/wall_single/hydra.yaml new file mode 100644 index 0000000000000000000000000000000000000000..cb4d25fd4fccef207b2a2b182f05bad59d987149 --- /dev/null +++ b/dino_wm/wall_single/hydra.yaml @@ -0,0 +1,96 @@ +ckpt_base_path: ./checkpoints +training: + seed: 0 + epochs: 1000 + batch_size: 128 + save_every_x_epoch: 5 + reconstruct_every_x_batch: 500 + num_reconstruct_samples: 6 + encoder_lr: 1.0e-06 + decoder_lr: 0.0003 + predictor_lr: 0.0005 + action_encoder_lr: 0.0005 +img_size: 224 +frameskip: 5 +concat_dim: 1 +normalize_action: true +action_emb_dim: 10 +num_action_repeat: 1 +proprio_emb_dim: 10 +num_proprio_repeat: 1 +num_hist: 1 +num_pred: 1 +has_predictor: true +has_decoder: true +state_based: false +model: + _target_: models.visual_world_model.VWorldModel + image_size: 224 + num_hist: 1 + num_pred: 1 + train_encoder: false + train_predictor: true + train_decoder: true +debug: true +plan_settings: + plan_cfg_path: conf/plan.yaml + planner: + - gd + - cem + goal_source: + - dset + - random_state + goal_H: + - 5 + alpha: + - 0.1 + - 1 +env: + name: wall + args: [] + kwargs: {} + load_dir: '' + dataset: + _target_: datasets.wall_dset.load_wall_slice_train_val + n_rollout: null + normalize_action: true + data_path: ${oc.env:DATASET_DIR}/wall_single + split_ratio: 0.9 + split_mode: random + transform: + _target_: datasets.img_transforms.default_transform + img_size: 224 + decoder_path: null + linear_probe_model_path: null + num_workers: 0 +encoder: + _target_: models.dino.DinoV2Encoder + name: dinov2_vits14 + feature_key: x_norm_patchtokens +action_encoder: + _target_: models.proprio.ProprioceptiveEmbedding + num_frames: 1 + tubelet_size: 1 + use_3d_pos: false +proprio_encoder: + _target_: models.proprio.ProprioceptiveEmbedding + num_frames: 1 + tubelet_size: 1 + use_3d_pos: false +decoder: + _target_: models.vqvae.VQVAE + n_embed: 2048 + n_res_block: 4 + n_res_channel: 128 + quantize: false +predictor: + _target_: models.vit.ViTPredictor + depth: 6 + heads: 16 + mlp_dim: 2048 + dropout: 0.1 + emb_dropout: 0.1 + pool: mean +saved_folder: ./checkpoints +effective_batch_size: 128 +gpu_batch_size: 4 diff --git a/dino_wm/wall_single/model_latest.pth b/dino_wm/wall_single/model_latest.pth new file mode 100644 index 0000000000000000000000000000000000000000..ebf9d1f72aa2d2eb1fde8912b284a7472364e3be --- /dev/null +++ b/dino_wm/wall_single/model_latest.pth @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8441971becdae934fe08de5b163398390a32f6fe1fb0a8df113290e2468e142b +size 368656057 diff --git a/dreamerv3/cheetah_run/ckpt/20260901T093748F019112/agent.pkl b/dreamerv3/cheetah_run/ckpt/20260901T093748F019112/agent.pkl new file mode 100644 index 0000000000000000000000000000000000000000..2a901329f235ad310e874dd9ea36672b5e2494db --- /dev/null +++ b/dreamerv3/cheetah_run/ckpt/20260901T093748F019112/agent.pkl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d94c5824d8c77ba8191ccd5207409986a08bbf7e04ae5d55a9d468c7d158af3 +size 2042806149 diff --git a/dreamerv3/cheetah_run/ckpt/20260901T093748F019112/done b/dreamerv3/cheetah_run/ckpt/20260901T093748F019112/done new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/dreamerv3/cheetah_run/ckpt/20260901T093748F019112/step.pkl b/dreamerv3/cheetah_run/ckpt/20260901T093748F019112/step.pkl new file mode 100644 index 0000000000000000000000000000000000000000..ffaba24078506fd75df30c6f1103ed764ed18b8b --- /dev/null +++ b/dreamerv3/cheetah_run/ckpt/20260901T093748F019112/step.pkl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69901686be1d13680e0c0ddbfd0a0d2f2a70bb0ae46a2e636bf78bf5bc45cce2 +size 17 diff --git a/dreamerv3/cheetah_run/config.yaml b/dreamerv3/cheetah_run/config.yaml new file mode 100644 index 0000000000000000000000000000000000000000..3a13209c7399f1820a55cb20f0010a10bf7d36e8 --- /dev/null +++ b/dreamerv3/cheetah_run/config.yaml @@ -0,0 +1,185 @@ +agent: + ac_grads: false + advnorm: {impl: none, limit: 1e-08, rate: 0.01} + conhead: {act: silu, layers: 1, norm: rms, output: binary, outscale: 1.0, + units: 1024, winit: trunc_normal_in} + contdisc: true + dec: + simple: + act: silu + bspace: 8 + depth: 64 + kernel: 5 + layers: 3 + mults: [2, 3, 4, 4] + norm: rms + outer: false + outscale: 1.0 + strided: false + units: 1024 + winit: trunc_normal_in + typ: simple + dyn: + rssm: {absolute: false, act: silu, blocks: 8, classes: 64, deter: 8192, + dynlayers: 1, free_nats: 1.0, hidden: 1024, imglayers: 2, norm: rms, + obslayers: 1, outscale: 1.0, stoch: 32, unimix: 0.01, winit: + trunc_normal_in} + typ: rssm + enc: + simple: + act: silu + depth: 64 + kernel: 5 + layers: 3 + mults: [2, 3, 4, 4] + norm: rms + outer: false + strided: false + symlog: true + units: 1024 + winit: trunc_normal_in + typ: simple + horizon: 333 + imag_last: 0 + imag_length: 15 + imag_loss: {actent: 0.0003, lam: 0.95, slowreg: 1.0, slowtar: false} + loss_scales: {con: 1.0, dyn: 1.0, policy: 1.0, rec: 1.0, rep: 0.1, repval: 0.3, + rew: 1.0, value: 1.0} + opt: {agc: 0.3, anneal: 0, beta1: 0.9, beta2: 0.999, eps: 1e-20, lr: 4e-05, + momentum: true, schedule: const, warmup: 1000, wd: 0.0} + policy: {act: silu, layers: 3, maxstd: 1.0, minstd: 0.1, norm: rms, outscale: + 0.01, unimix: 0.01, units: 1024, winit: trunc_normal_in} + policy_dist_cont: bounded_normal + policy_dist_disc: categorical + repl_loss: {lam: 0.95, slowreg: 1.0, slowtar: false} + report: true + report_gradnorms: false + repval_grad: true + repval_loss: true + retnorm: {debias: false, impl: perc, limit: 1.0, perchi: 95.0, perclo: 5.0, + rate: 0.01} + reward_grad: true + rewhead: {act: silu, bins: 255, layers: 1, norm: rms, output: symexp_twohot, + outscale: 0.0, units: 1024, winit: trunc_normal_in} + slowvalue: {every: 1, rate: 0.02} + valnorm: {impl: none, limit: 1e-08, rate: 0.01} + value: {act: silu, bins: 255, layers: 3, norm: rms, output: symexp_twohot, + outscale: 0.0, units: 1024, winit: trunc_normal_in} +batch_length: 64 +batch_size: 16 +clock_addr: '' +clock_port: '' +consec_report: 1 +consec_train: 1 +env: + atari: + actions: all + aggregate: max + autostart: false + clip_reward: false + gray: true + lives: unused + noops: 30 + pooling: 2 + repeat: 4 + resize: pillow + size: [96, 96] + sticky: true + atari100k: + actions: needed + autostart: false + clip_reward: false + gray: false + lives: unused + noops: 30 + repeat: 4 + resize: pillow + size: [64, 64] + sticky: false + crafter: + logs: false + size: [64, 64] + dmc: + camera: -1 + image: true + proprio: false + repeat: 1 + size: [64, 64] + dmlab: + episodic: true + repeat: 4 + size: [64, 64] + use_seed: true + loconav: + camera: -1 + repeat: 1 + size: [64, 64] + minecraft: + break_speed: 100.0 + length: 36000 + logs: false + size: [64, 64] + procgen: + resize: pillow + size: [96, 96] +errfile: false +ipv6: false +jax: + compute_dtype: bfloat16 + coordinator_address: '' + debug: false + enable_policy: true + expect_devices: 0 + jit: true + mock_devices: 0 + platform: cuda + policy_devices: [0] + prealloc: true + train_devices: [0] +logdir: ./logdir/dreamer/cheetah_run/slurm-23188 +logger: + filter: score|length|fps|ratio|train/loss/|train/rand/ + fps: 15 + outputs: [jsonl, scope] + timer: true + user: '' +method: name +random_agent: false +replay: + chunksize: 1024 + fracs: {priority: 0.0, recency: 0.0, uniform: 1.0} + online: true + prio: {exponent: 0.8, initial: inf, maxfrac: 0.5, zero_on_sample: true} + priosignal: model + recexp: 1.0 + size: 5000000.0 +replay_context: 1 +replica: 0 +replicas: 1 +report_length: 32 +run: + actor_addr: localhost:{auto} + actor_batch: -1 + actor_threads: 1 + agent_process: false + debug: true + duration: 0 + envs: 16 + episode_timeout: 180 + eval_envs: 4 + eval_eps: 1 + from_checkpoint: '' + log_every: 120 + logger_addr: localhost:{auto} + remote_envs: false + remote_replay: false + replay_addr: localhost:{auto} + report_batches: 1 + report_every: 300 + save_every: 900 + steps: 1100000.0 + train_ratio: 256.0 + usage: {gc: false, gputil: false, malloc: false, nvsmi: true, psutil: true} +script: train +seed: 0 +task: dmc_cheetah_run diff --git a/dreamerv3/reacher_easy/ckpt/20260830T195435F325934/agent.pkl b/dreamerv3/reacher_easy/ckpt/20260830T195435F325934/agent.pkl new file mode 100644 index 0000000000000000000000000000000000000000..5c5b81be57dd63da31e971c16ac8bc6900ca6cd5 --- /dev/null +++ b/dreamerv3/reacher_easy/ckpt/20260830T195435F325934/agent.pkl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a1fb60436f02fcfa6ba1fbd0b5b5078142cb6f6c34b13c42e4a5967ef047b394 +size 2042658588 diff --git a/dreamerv3/reacher_easy/ckpt/20260830T195435F325934/done b/dreamerv3/reacher_easy/ckpt/20260830T195435F325934/done new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/dreamerv3/reacher_easy/ckpt/20260830T195435F325934/step.pkl b/dreamerv3/reacher_easy/ckpt/20260830T195435F325934/step.pkl new file mode 100644 index 0000000000000000000000000000000000000000..05ef87bd0c2682e311e12dc3411b1ca048037e7d --- /dev/null +++ b/dreamerv3/reacher_easy/ckpt/20260830T195435F325934/step.pkl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e5c5685c2d39badee13ea957052bbe8a3f71e577e2369e55151ad875842cb2f +size 17 diff --git a/dreamerv3/reacher_easy/config.yaml b/dreamerv3/reacher_easy/config.yaml new file mode 100644 index 0000000000000000000000000000000000000000..82b2cf1a26d3763e907e35a03ac5529b3795704f --- /dev/null +++ b/dreamerv3/reacher_easy/config.yaml @@ -0,0 +1,185 @@ +agent: + ac_grads: false + advnorm: {impl: none, limit: 1e-08, rate: 0.01} + conhead: {act: silu, layers: 1, norm: rms, output: binary, outscale: 1.0, + units: 1024, winit: trunc_normal_in} + contdisc: true + dec: + simple: + act: silu + bspace: 8 + depth: 64 + kernel: 5 + layers: 3 + mults: [2, 3, 4, 4] + norm: rms + outer: false + outscale: 1.0 + strided: false + units: 1024 + winit: trunc_normal_in + typ: simple + dyn: + rssm: {absolute: false, act: silu, blocks: 8, classes: 64, deter: 8192, + dynlayers: 1, free_nats: 1.0, hidden: 1024, imglayers: 2, norm: rms, + obslayers: 1, outscale: 1.0, stoch: 32, unimix: 0.01, winit: + trunc_normal_in} + typ: rssm + enc: + simple: + act: silu + depth: 64 + kernel: 5 + layers: 3 + mults: [2, 3, 4, 4] + norm: rms + outer: false + strided: false + symlog: true + units: 1024 + winit: trunc_normal_in + typ: simple + horizon: 333 + imag_last: 0 + imag_length: 15 + imag_loss: {actent: 0.0003, lam: 0.95, slowreg: 1.0, slowtar: false} + loss_scales: {con: 1.0, dyn: 1.0, policy: 1.0, rec: 1.0, rep: 0.1, repval: 0.3, + rew: 1.0, value: 1.0} + opt: {agc: 0.3, anneal: 0, beta1: 0.9, beta2: 0.999, eps: 1e-20, lr: 4e-05, + momentum: true, schedule: const, warmup: 1000, wd: 0.0} + policy: {act: silu, layers: 3, maxstd: 1.0, minstd: 0.1, norm: rms, outscale: + 0.01, unimix: 0.01, units: 1024, winit: trunc_normal_in} + policy_dist_cont: bounded_normal + policy_dist_disc: categorical + repl_loss: {lam: 0.95, slowreg: 1.0, slowtar: false} + report: true + report_gradnorms: false + repval_grad: true + repval_loss: true + retnorm: {debias: false, impl: perc, limit: 1.0, perchi: 95.0, perclo: 5.0, + rate: 0.01} + reward_grad: true + rewhead: {act: silu, bins: 255, layers: 1, norm: rms, output: symexp_twohot, + outscale: 0.0, units: 1024, winit: trunc_normal_in} + slowvalue: {every: 1, rate: 0.02} + valnorm: {impl: none, limit: 1e-08, rate: 0.01} + value: {act: silu, bins: 255, layers: 3, norm: rms, output: symexp_twohot, + outscale: 0.0, units: 1024, winit: trunc_normal_in} +batch_length: 64 +batch_size: 16 +clock_addr: '' +clock_port: '' +consec_report: 1 +consec_train: 1 +env: + atari: + actions: all + aggregate: max + autostart: false + clip_reward: false + gray: true + lives: unused + noops: 30 + pooling: 2 + repeat: 4 + resize: pillow + size: [96, 96] + sticky: true + atari100k: + actions: needed + autostart: false + clip_reward: false + gray: false + lives: unused + noops: 30 + repeat: 4 + resize: pillow + size: [64, 64] + sticky: false + crafter: + logs: false + size: [64, 64] + dmc: + camera: -1 + image: true + proprio: false + repeat: 1 + size: [64, 64] + dmlab: + episodic: true + repeat: 4 + size: [64, 64] + use_seed: true + loconav: + camera: -1 + repeat: 1 + size: [64, 64] + minecraft: + break_speed: 100.0 + length: 36000 + logs: false + size: [64, 64] + procgen: + resize: pillow + size: [96, 96] +errfile: false +ipv6: false +jax: + compute_dtype: bfloat16 + coordinator_address: '' + debug: false + enable_policy: true + expect_devices: 0 + jit: true + mock_devices: 0 + platform: cuda + policy_devices: [0] + prealloc: true + train_devices: [0] +logdir: ./logdir/dreamer/reacher_easy/20260830T125224 +logger: + filter: score|length|fps|ratio|train/loss/|train/rand/ + fps: 15 + outputs: [jsonl, scope] + timer: true + user: '' +method: name +random_agent: false +replay: + chunksize: 1024 + fracs: {priority: 0.0, recency: 0.0, uniform: 1.0} + online: true + prio: {exponent: 0.8, initial: inf, maxfrac: 0.5, zero_on_sample: true} + priosignal: model + recexp: 1.0 + size: 5000000.0 +replay_context: 1 +replica: 0 +replicas: 1 +report_length: 32 +run: + actor_addr: localhost:{auto} + actor_batch: -1 + actor_threads: 1 + agent_process: false + debug: true + duration: 0 + envs: 16 + episode_timeout: 180 + eval_envs: 4 + eval_eps: 1 + from_checkpoint: '' + log_every: 120 + logger_addr: localhost:{auto} + remote_envs: false + remote_replay: false + replay_addr: localhost:{auto} + report_batches: 1 + report_every: 300 + save_every: 900 + steps: 1100000.0 + train_ratio: 256.0 + usage: {gc: false, gputil: false, malloc: false, nvsmi: true, psutil: true} +script: train +seed: 0 +task: dmc_reacher_easy diff --git a/dreamerv3/runtime.json b/dreamerv3/runtime.json new file mode 100644 index 0000000000000000000000000000000000000000..16032b37cff004d4f018743cea5c10aa273946aa --- /dev/null +++ b/dreamerv3/runtime.json @@ -0,0 +1,126 @@ +{ + "python": "3.12.14", + "platform": "Linux x86_64", + "packages": { + "nvidia-cuda-nvcc-cu12": "12.9.86", + "google-resumable-media": "2.10.2", + "google-crc32c": "1.8.0", + "scope": "0.7.1", + "uvicorn": "0.52.4", + "websockets": "17.1", + "watchfiles": "1.2.0", + "anyio": "4.14.2", + "typing-extensions": "4.16.0", + "idna": "3.19", + "uvloop": "0.22.1", + "pyyaml": "6.0.3", + "python-dotenv": "1.2.3", + "httptools": "0.8.0", + "h11": "0.16.0", + "click": "8.5.0", + "pillow": "12.3.0", + "orjson": "3.12.0", + "numpy": "1.26.4", + "mediapy": "1.2.7", + "matplotlib": "3.11.1", + "python-dateutil": "2.9.0.post0", + "six": "1.17.0", + "pyparsing": "3.3.2", + "packaging": "26.3", + "kiwisolver": "1.5.1", + "fonttools": "4.63.0", + "cycler": "0.12.1", + "contourpy": "1.3.3", + "ipython": "9.17.0", + "traitlets": "5.16.1", + "stack-data": "0.6.3", + "pure-eval": "0.2.3", + "asttokens": "3.0.2", + "executing": "2.2.1", + "pygments": "2.21.0", + "psutil": "7.2.2", + "prompt-toolkit": "3.0.53", + "wcwidth": "0.8.3", + "pexpect": "4.9.0", + "ptyprocess": "0.7.0", + "matplotlib-inline": "0.2.2", + "jedi": "0.20.0", + "parso": "0.8.7", + "ipython-pygments-lexers": "1.1.1", + "filelock": "3.32.4", + "fastapi": "0.141.1", + "annotated-doc": "0.0.5", + "typing-inspection": "0.4.4", + "pydantic": "2.13.5", + "pydantic-core": "2.46.5", + "annotated-types": "0.8.0", + "starlette": "1.6.0", + "elements": "3.22.0", + "ruamel-yaml": "0.19.1", + "google-cloud-storage": "3.13.1", + "requests": "2.34.2", + "certifi": "2026.7.22", + "urllib3": "2.7.0", + "charset-normalizer": "3.5.1", + "google-cloud-core": "2.7.0", + "google-auth": "2.57.0", + "cryptography": "50.0.1", + "cffi": "2.1.1", + "pycparser": "3.0", + "pyasn1-modules": "0.4.2", + "pyasn1": "0.6.4", + "google-api-core": "2.34.0", + "proto-plus": "1.28.4", + "protobuf": "7.36.0", + "googleapis-common-protos": "1.75.2", + "av": "18.1.0", + "jaxtyping": "0.3.11", + "wadler-lindig": "0.1.7", + "colored-traceback": "0.4.2", + "cloudpickle": "3.1.2", + "mujoco": "3.12.0", + "pyopengl": "3.1.10", + "glfw": "2.10.2", + "etils": "1.14.0", + "zipp": "4.1.0", + "fsspec": "2026.7.0", + "absl-py": "2.5.0", + "dm-control": "1.0.45", + "tqdm": "4.70.0", + "scipy": "1.17.1", + "setuptools": "83.0.0", + "lxml": "6.1.2", + "labmaze": "1.0.6", + "dm-tree": "0.1.10", + "wrapt": "2.3.0", + "attrs": "26.1.0", + "dm-env": "1.6", + "einops": "0.8.2", + "chex": "0.1.90", + "toolz": "1.1.0", + "jaxlib": "0.7.1", + "ml-dtypes": "0.5.4", + "jax": "0.7.1", + "opt-einsum": "3.4.0", + "optax": "0.2.5", + "granular": "0.23.3", + "msgpack": "1.2.2", + "portal": "3.8.1", + "ninjax": "3.6.3", + "jax-cuda12-plugin": "0.7.1", + "nvidia-nvshmem-cu12": "3.7.2", + "nvidia-cuda-cccl-cu12": "12.9.27", + "nvidia-cuda-nvrtc-cu12": "12.9.86", + "nvidia-nvjitlink-cu12": "12.9.86", + "nvidia-nccl-cu12": "2.31.2", + "nvidia-cusparse-cu12": "12.5.10.65", + "nvidia-cusolver-cu12": "11.7.5.82", + "nvidia-cublas-cu12": "12.9.2.10", + "nvidia-cufft-cu12": "11.4.1.4", + "nvidia-cudnn-cu12": "9.25.1.1", + "nvidia-cuda-runtime-cu12": "12.9.79", + "nvidia-cuda-cupti-cu12": "12.9.79", + "jax-cuda12-pjrt": "0.7.1" + }, + "metadata_conflicts": [] +} diff --git a/le-wm/cube/config.json b/le-wm/cube/config.json new file mode 100644 index 0000000000000000000000000000000000000000..f9a946cdc87e3f7139de9e8eecccc2a436007425 --- /dev/null +++ b/le-wm/cube/config.json @@ -0,0 +1,49 @@ +{ + "_target_": "stable_worldmodel.wm.lewm.LeWM", + "encoder": { + "_target_": "stable_pretraining.backbone.utils.vit_hf", + "size": "tiny", + "patch_size": 14, + "image_size": 224, + "pretrained": false, + "use_mask_token": false + }, + "predictor": { + "_target_": "stable_worldmodel.wm.lewm.module.Predictor", + "num_frames": 3, + "input_dim": 192, + "hidden_dim": 192, + "output_dim": 192, + "depth": 6, + "heads": 16, + "mlp_dim": 2048, + "dim_head": 64, + "dropout": 0.1, + "emb_dropout": 0.0 + }, + "action_encoder": { + "_target_": "stable_worldmodel.wm.lewm.module.Embedder", + "input_dim": 25, + "emb_dim": 192 + }, + "projector": { + "_target_": "stable_worldmodel.wm.lewm.module.MLP", + "input_dim": 192, + "output_dim": 192, + "hidden_dim": 2048, + "norm_fn": { + "_target_": "torch.nn.BatchNorm1d", + "_partial_": true + } + }, + "pred_proj": { + "_target_": "stable_worldmodel.wm.lewm.module.MLP", + "input_dim": 192, + "output_dim": 192, + "hidden_dim": 2048, + "norm_fn": { + "_target_": "torch.nn.BatchNorm1d", + "_partial_": true + } + } +} diff --git a/le-wm/cube/weights.pt b/le-wm/cube/weights.pt new file mode 100644 index 0000000000000000000000000000000000000000..d349bccc09fca264183262592f997a4c7bf156f1 --- /dev/null +++ b/le-wm/cube/weights.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2839a907362f403f9136383016e91774373a295d958ae75121791f22a9fddf89 +size 72291425 diff --git a/le-wm/defenses/cube/paper_hgd/hgd_paper.best.pt b/le-wm/defenses/cube/paper_hgd/hgd_paper.best.pt new file mode 100644 index 0000000000000000000000000000000000000000..19f52bfa549a5fac8729238d6c23b08208fec76b --- /dev/null +++ b/le-wm/defenses/cube/paper_hgd/hgd_paper.best.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04ed4a9b4d9edea42f4e4ec7b489ae79378890a3c2d505077a97d69d19fd1ec9 +size 132576538 diff --git a/le-wm/defenses/cube/paper_hgd/hgd_paper.pt b/le-wm/defenses/cube/paper_hgd/hgd_paper.pt new file mode 100644 index 0000000000000000000000000000000000000000..bc1df50cfa6a855f06d0ec9d5ec582c3e37e621f --- /dev/null +++ b/le-wm/defenses/cube/paper_hgd/hgd_paper.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ebae97be8b61cefde85958dadea28d5ae34c959b3cd183f4932f6bfe1debdf2 +size 132574859 diff --git a/le-wm/defenses/cube/residual_hgd/hgd_eps16.best.pt b/le-wm/defenses/cube/residual_hgd/hgd_eps16.best.pt new file mode 100644 index 0000000000000000000000000000000000000000..8e19b29f5b04b23447aa7ee86d2786eae7d29bf4 --- /dev/null +++ b/le-wm/defenses/cube/residual_hgd/hgd_eps16.best.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68f58d28e6b39954331143c2f66e736f402882f15fce35ace8afc8d464c17f07 +size 5917691 diff --git a/le-wm/defenses/cube/residual_hgd/hgd_eps16.pt b/le-wm/defenses/cube/residual_hgd/hgd_eps16.pt new file mode 100644 index 0000000000000000000000000000000000000000..283473ecdb526d493d980d607acac80c37573134 --- /dev/null +++ b/le-wm/defenses/cube/residual_hgd/hgd_eps16.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc3af72c1ae2ed328c8907f87e5709b719e00c8dd61e7c32ccb9dc722951772a +size 5916747 diff --git a/le-wm/pusht/config.json b/le-wm/pusht/config.json new file mode 100644 index 0000000000000000000000000000000000000000..2e534ee5c6286721c0ef967e24bddbfde482abf9 --- /dev/null +++ b/le-wm/pusht/config.json @@ -0,0 +1,49 @@ +{ + "_target_": "stable_worldmodel.wm.lewm.LeWM", + "encoder": { + "_target_": "stable_pretraining.backbone.utils.vit_hf", + "size": "tiny", + "patch_size": 14, + "image_size": 224, + "pretrained": false, + "use_mask_token": false + }, + "predictor": { + "_target_": "stable_worldmodel.wm.lewm.module.Predictor", + "num_frames": 3, + "input_dim": 192, + "hidden_dim": 192, + "output_dim": 192, + "depth": 6, + "heads": 16, + "mlp_dim": 2048, + "dim_head": 64, + "dropout": 0.1, + "emb_dropout": 0.0 + }, + "action_encoder": { + "_target_": "stable_worldmodel.wm.lewm.module.Embedder", + "input_dim": 10, + "emb_dim": 192 + }, + "projector": { + "_target_": "stable_worldmodel.wm.lewm.module.MLP", + "input_dim": 192, + "output_dim": 192, + "hidden_dim": 2048, + "norm_fn": { + "_target_": "torch.nn.BatchNorm1d", + "_partial_": true + } + }, + "pred_proj": { + "_target_": "stable_worldmodel.wm.lewm.module.MLP", + "input_dim": 192, + "output_dim": 192, + "hidden_dim": 2048, + "norm_fn": { + "_target_": "torch.nn.BatchNorm1d", + "_partial_": true + } + } +} diff --git a/le-wm/pusht/weights.pt b/le-wm/pusht/weights.pt new file mode 100644 index 0000000000000000000000000000000000000000..3a7873ece010f9f3c240b2ff3a4695e979aead41 --- /dev/null +++ b/le-wm/pusht/weights.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48938400ae3464c9680731287f583a9cb516f55a8ec64ea13a91be47fb15b607 +size 72290721 diff --git a/le-wm/reacher/config.json b/le-wm/reacher/config.json new file mode 100644 index 0000000000000000000000000000000000000000..2e534ee5c6286721c0ef967e24bddbfde482abf9 --- /dev/null +++ b/le-wm/reacher/config.json @@ -0,0 +1,49 @@ +{ + "_target_": "stable_worldmodel.wm.lewm.LeWM", + "encoder": { + "_target_": "stable_pretraining.backbone.utils.vit_hf", + "size": "tiny", + "patch_size": 14, + "image_size": 224, + "pretrained": false, + "use_mask_token": false + }, + "predictor": { + "_target_": "stable_worldmodel.wm.lewm.module.Predictor", + "num_frames": 3, + "input_dim": 192, + "hidden_dim": 192, + "output_dim": 192, + "depth": 6, + "heads": 16, + "mlp_dim": 2048, + "dim_head": 64, + "dropout": 0.1, + "emb_dropout": 0.0 + }, + "action_encoder": { + "_target_": "stable_worldmodel.wm.lewm.module.Embedder", + "input_dim": 10, + "emb_dim": 192 + }, + "projector": { + "_target_": "stable_worldmodel.wm.lewm.module.MLP", + "input_dim": 192, + "output_dim": 192, + "hidden_dim": 2048, + "norm_fn": { + "_target_": "torch.nn.BatchNorm1d", + "_partial_": true + } + }, + "pred_proj": { + "_target_": "stable_worldmodel.wm.lewm.module.MLP", + "input_dim": 192, + "output_dim": 192, + "hidden_dim": 2048, + "norm_fn": { + "_target_": "torch.nn.BatchNorm1d", + "_partial_": true + } + } +} diff --git a/le-wm/reacher/weights.pt b/le-wm/reacher/weights.pt new file mode 100644 index 0000000000000000000000000000000000000000..0274887f3bfbff8e1010526fbffade50a087068e --- /dev/null +++ b/le-wm/reacher/weights.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb70b1fd5409f8f81875d62f5ee5a20dd220a3128a477de66b5760f475f0f469 +size 72290849 diff --git a/le-wm/runtime.json b/le-wm/runtime.json new file mode 100644 index 0000000000000000000000000000000000000000..3bc08c2b2341485bee38064e4b136f481be725c1 --- /dev/null +++ b/le-wm/runtime.json @@ -0,0 +1,190 @@ +{ + "python": "3.10.20", + "platform": "Linux x86_64", + "packages": { + "einops": "0.8.2", + "huggingface-hub": "0.36.2", + "typing-extensions": "4.16.0", + "tqdm": "4.70.0", + "requests": "2.34.2", + "certifi": "2026.7.22", + "urllib3": "2.7.0", + "idna": "3.18", + "charset-normalizer": "3.4.9", + "pyyaml": "6.0.3", + "packaging": "26.2", + "hf-xet": "1.5.2", + "fsspec": "2025.10.0", + "filelock": "3.32.0", + "hydra-core": "1.3.4", + "antlr4-python3-runtime": "4.9.3", + "omegaconf": "2.3.1", + "h5py": "3.16.0", + "numpy": "2.2.6", + "matplotlib": "3.10.9", + "python-dateutil": "2.9.0.post0", + "six": "1.17.0", + "pyparsing": "3.3.2", + "pillow": "11.3.0", + "kiwisolver": "1.5.0", + "fonttools": "4.63.0", + "cycler": "0.12.1", + "contourpy": "1.3.2", + "imageio-ffmpeg": "0.6.0", + "imageio": "2.37.4", + "scipy": "1.15.3", + "torchvision": "0.28.0", + "torch": "2.13.0", + "triton": "3.7.1", + "nvidia-nvshmem-cu13": "3.4.5", + "nvidia-nccl-cu13": "2.29.7", + "nvidia-cusparselt-cu13": "0.8.1", + "nvidia-cudnn-cu13": "9.20.0.48", + "nvidia-cublas": "13.1.1.3", + "nvidia-cuda-nvrtc": "13.0.88", + "cuda-bindings": "13.3.1", + "cuda-pathfinder": "1.6.0", + "cuda-toolkit": "13.0.3.0", + "nvidia-nvtx": "13.0.85", + "nvidia-nvjitlink": "13.3.33", + "nvidia-cusparse": "12.6.3.3", + "nvidia-cusolver": "12.0.4.66", + "nvidia-curand": "10.4.0.35", + "nvidia-cuda-cupti": "13.0.85", + "nvidia-cufile": "1.15.1.6", + "nvidia-cufft": "12.0.0.61", + "nvidia-cuda-runtime": "13.0.96", + "jinja2": "3.1.6", + "markupsafe": "3.0.3", + "networkx": "3.4.2", + "sympy": "1.14.0", + "mpmath": "1.3.0", + "setuptools": "83.0.0", + "stable-worldmodel": "0.1.1", + "wandb": "0.28.1", + "sentry-sdk": "2.66.1", + "pydantic": "2.13.4", + "typing-inspection": "0.4.2", + "pydantic-core": "2.46.4", + "annotated-types": "0.8.0", + "protobuf": "7.35.1", + "platformdirs": "4.11.0", + "click": "8.4.2", + "hydra-submitit-launcher": "1.2.0", + "submitit": "1.5.4", + "cloudpickle": "3.1.2", + "stable-pretraining": "0.1.7", + "opencv-python-headless": "5.0.0.93", + "pylance": "9.0.0", + "lance-namespace": "0.8.6", + "lance-namespace-urllib3-client": "0.8.6", + "pyarrow": "20.0.0", + "opt-einsum": "3.4.0", + "richuru": "0.1.1", + "rich": "15.0.0", + "pygments": "2.20.0", + "markdown-it-py": "4.2.0", + "mdurl": "0.1.2", + "loguru": "0.7.3", + "scikit-learn": "1.7.2", + "threadpoolctl": "3.6.0", + "joblib": "1.5.3", + "minari": "0.5.3", + "gymnasium": "1.3.0", + "farama-notifications": "0.0.6", + "typer": "0.27.0", + "annotated-doc": "0.0.5", + "shellingham": "1.5.4", + "datasets": "4.4.0", + "aiohttp": "3.14.3", + "yarl": "1.24.5", + "propcache": "0.5.2", + "multidict": "6.7.1", + "frozenlist": "1.8.0", + "attrs": "26.1.0", + "async-timeout": "5.0.1", + "aiosignal": "1.4.0", + "aiohappyeyeballs": "2.7.1", + "multiprocess": "0.70.18", + "dill": "0.4.0", + "xxhash": "3.8.1", + "httpx": "0.28.1", + "httpcore": "1.0.9", + "h11": "0.16.0", + "anyio": "4.14.2", + "exceptiongroup": "1.3.1", + "pandas": "2.3.3", + "tzdata": "2026.3", + "pytz": "2026.3.post1", + "transformers": "4.57.3", + "safetensors": "0.8.0", + "tokenizers": "0.22.2", + "regex": "2026.7.19", + "zstandard": "0.25.0", + "timm": "1.0.28", + "prettytable": "3.18.0", + "wcwidth": "0.8.2", + "requests-cache": "1.3.3", + "url-normalize": "3.0.0", + "cattrs": "26.1.0", + "tabulate": "0.10.0", + "lightning": "2.6.5", + "pytorch-lightning": "2.6.5", + "lightning-utilities": "0.15.3", + "torchmetrics": "1.9.0", + "ale-py": "0.12.0", + "craftax": "1.6.1", + "pygame": "2.6.1", + "flax": "0.10.7", + "treescope": "0.1.10", + "tensorstore": "0.1.78", + "ml-dtypes": "0.5.4", + "orbax-checkpoint": "0.11.39", + "uvloop": "0.22.1", + "psutil": "7.2.2", + "simplejson": "4.1.1", + "humanize": "4.16.0", + "aiofiles": "25.1.0", + "jax": "0.6.2", + "jaxlib": "0.6.2", + "msgpack": "1.2.1", + "etils": "1.13.0", + "zipp": "4.1.0", + "importlib-resources": "7.1.0", + "absl-py": "2.5.0", + "optax": "0.2.8", + "stable-baselines3": "2.9.0", + "gymnasium-robotics": "1.4.2", + "pettingzoo": "1.26.1", + "mujoco": "3.11.0", + "pyopengl": "3.1.10", + "glfw": "2.10.2", + "moviepy": "2.2.1", + "python-dotenv": "1.2.2", + "proglog": "0.1.12", + "decorator": "5.3.1", + "opencv-python": "5.0.0.93", + "array-api-compat": "1.15.0", + "pygame-ce": "2.5.7", + "swig": "4.4.1", + "box2d-py": "2.3.5", + "minigrid": "3.1.0", + "ogbench": "1.2.1", + "dm-control": "1.0.44", + "lxml": "6.1.1", + "labmaze": "1.0.6", + "dm-tree": "0.1.10", + "wrapt": "2.3.0", + "dm-env": "1.6", + "shapely": "2.1.2", + "pymunk": "7.3.0", + "cffi": "2.1.0", + "pycparser": "3.0", + "lancedb": "0.34.0", + "overrides": "7.7.0", + "deprecation": "2.1.0" + }, + "metadata_conflicts": [ + "datasets==4.4.0 requires pyarrow>=21.0.0; observed pyarrow==20.0.0" + ] +} diff --git a/le-wm/tworoom/config.json b/le-wm/tworoom/config.json new file mode 100644 index 0000000000000000000000000000000000000000..2e534ee5c6286721c0ef967e24bddbfde482abf9 --- /dev/null +++ b/le-wm/tworoom/config.json @@ -0,0 +1,49 @@ +{ + "_target_": "stable_worldmodel.wm.lewm.LeWM", + "encoder": { + "_target_": "stable_pretraining.backbone.utils.vit_hf", + "size": "tiny", + "patch_size": 14, + "image_size": 224, + "pretrained": false, + "use_mask_token": false + }, + "predictor": { + "_target_": "stable_worldmodel.wm.lewm.module.Predictor", + "num_frames": 3, + "input_dim": 192, + "hidden_dim": 192, + "output_dim": 192, + "depth": 6, + "heads": 16, + "mlp_dim": 2048, + "dim_head": 64, + "dropout": 0.1, + "emb_dropout": 0.0 + }, + "action_encoder": { + "_target_": "stable_worldmodel.wm.lewm.module.Embedder", + "input_dim": 10, + "emb_dim": 192 + }, + "projector": { + "_target_": "stable_worldmodel.wm.lewm.module.MLP", + "input_dim": 192, + "output_dim": 192, + "hidden_dim": 2048, + "norm_fn": { + "_target_": "torch.nn.BatchNorm1d", + "_partial_": true + } + }, + "pred_proj": { + "_target_": "stable_worldmodel.wm.lewm.module.MLP", + "input_dim": 192, + "output_dim": 192, + "hidden_dim": 2048, + "norm_fn": { + "_target_": "torch.nn.BatchNorm1d", + "_partial_": true + } + } +} diff --git a/le-wm/tworoom/weights.pt b/le-wm/tworoom/weights.pt new file mode 100644 index 0000000000000000000000000000000000000000..9b54ae48e20d583be3bb66b78ad90c437258a261 --- /dev/null +++ b/le-wm/tworoom/weights.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:566f223624ea4bfb39dbfe6ae731198dd6ea73b7b8919fed6b1ecafca810f7dd +size 72290849 diff --git a/licenses/dino_wm.txt b/licenses/dino_wm.txt new file mode 100644 index 0000000000000000000000000000000000000000..44e8f4510be6106ef2927ebcd0cdc145a04b5c45 --- /dev/null +++ b/licenses/dino_wm.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 gaoyuezhou + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/licenses/dreamerv3.txt b/licenses/dreamerv3.txt new file mode 100644 index 0000000000000000000000000000000000000000..80bb3c8ed0c268d898f1eb4c42350e7417a94e53 --- /dev/null +++ b/licenses/dreamerv3.txt @@ -0,0 +1,19 @@ +Copyright (c) 2024 Danijar Hafner + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/licenses/le-wm.txt b/licenses/le-wm.txt new file mode 100644 index 0000000000000000000000000000000000000000..9a0803f84d34cc1a436408b7fab6c02fd87937b4 --- /dev/null +++ b/licenses/le-wm.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Lucas Maes + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/licenses/planet.txt b/licenses/planet.txt new file mode 100644 index 0000000000000000000000000000000000000000..d645695673349e3947e8e5ae42332d0ac3164cd7 --- /dev/null +++ b/licenses/planet.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/licenses/tdmpc2.txt b/licenses/tdmpc2.txt new file mode 100644 index 0000000000000000000000000000000000000000..bc27ced3a6089944ca36a3b2da8da8e22d2a400b --- /dev/null +++ b/licenses/tdmpc2.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Nicklas Hansen (2023). + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..71069e9ee72c8497c516245ee1b931d2bcb25678 --- /dev/null +++ b/manifest.json @@ -0,0 +1,481 @@ +{ + "format_version": 1, + "repo_id": "mohendy/world-model-attack-checkpoints", + "files": [ + { + "path": "tdmpc2/finger-spin/step-1000000.pt", + "model": "tdmpc2", + "bytes": 42677713, + "sha256": "bbc1c9b519784a661839bfe97707a5c5395ca03655fbc17f24fe13cf23857be8", + "source_sha256": "bbc1c9b519784a661839bfe97707a5c5395ca03655fbc17f24fe13cf23857be8", + "source_relative_path": "tdmpc2/tdmpc2/logs/finger-spin/1/rgb_seed1_2m/models/step-1000000.pt", + "sanitized": false + }, + { + "path": "tdmpc2/cup-catch/step-1500000.pt", + "model": "tdmpc2", + "bytes": 42677713, + "sha256": "df67f9c68655c3443c8c5e36799091ee9debfebc4ca11b1a59abf370b4083e47", + "source_sha256": "df67f9c68655c3443c8c5e36799091ee9debfebc4ca11b1a59abf370b4083e47", + "source_relative_path": "tdmpc2/tdmpc2/logs/cup-catch/1/rgb_seed1_2m/models/step-1500000.pt", + "sanitized": false + }, + { + "path": "tdmpc2/cheetah-run/step-1500000.pt", + "model": "tdmpc2", + "bytes": 42833361, + "sha256": "5654ea3c9c69a2640848b9d0efc043dc7d55896eeb9de62c7cb5c958f8652cd8", + "source_sha256": "5654ea3c9c69a2640848b9d0efc043dc7d55896eeb9de62c7cb5c958f8652cd8", + "source_relative_path": "tdmpc2/tdmpc2/logs/cheetah-run/1/rgb_seed1_2m/models/step-1500000.pt", + "sanitized": false + }, + { + "path": "tdmpc2/cartpole-balance/step-250000.pt", + "model": "tdmpc2", + "bytes": 42638723, + "sha256": "74cf0a67dc4f2487c270381f32f1027a07a3299fa8fbe282cb7b7a632ce84b6e", + "source_sha256": "74cf0a67dc4f2487c270381f32f1027a07a3299fa8fbe282cb7b7a632ce84b6e", + "source_relative_path": "tdmpc2/tdmpc2/logs/cartpole-balance/1/rgb_seed1_2m/models/step-250000.pt", + "sanitized": false + }, + { + "path": "planet/reacher_easy/config.yaml", + "model": "planet", + "bytes": 12461, + "sha256": "da3a9fa154e89037fc27ac9b2f88db4d7ae821660a6428ce1cb9240d2dcae324", + "source_sha256": "1a91c863aea1d70dd07c625ef7e7736c774b18f4cb6b0a1ddf8347d643dce2d3", + "source_relative_path": "planet/checkpoints/planet-dmc-rgb-seed0/reacher_easy/config.yaml", + "sanitized": true + }, + { + "path": "planet/reacher_easy/attack_export.json", + "model": "planet", + "bytes": 464, + "sha256": "512ce35d92afb78d89106cfa0279c4cd22110d0cf6b1bd65549c88501052a487", + "source_sha256": "512ce35d92afb78d89106cfa0279c4cd22110d0cf6b1bd65549c88501052a487", + "source_relative_path": "planet/checkpoints/planet-dmc-rgb-seed0/reacher_easy/attack_export.json", + "sanitized": false + }, + { + "path": "planet/reacher_easy/attack_weights.npz", + "model": "planet", + "bytes": 5342758, + "sha256": "a1e9829fbd16c2d1b18336534c561006938a4b59a5f55b0de526f7cebfac5e38", + "source_sha256": "a1e9829fbd16c2d1b18336534c561006938a4b59a5f55b0de526f7cebfac5e38", + "source_relative_path": "planet/checkpoints/planet-dmc-rgb-seed0/reacher_easy/attack_weights.npz", + "sanitized": false + }, + { + "path": "planet/reacher_easy/tf_reference.npz", + "model": "planet", + "bytes": 112084, + "sha256": "22d50e7b59c1c661bc1ffb889c4196bffe9fe6d28f4cf2b62d7700ff99e8d165", + "source_sha256": "22d50e7b59c1c661bc1ffb889c4196bffe9fe6d28f4cf2b62d7700ff99e8d165", + "source_relative_path": "planet/checkpoints/planet-dmc-rgb-seed0/reacher_easy/tf_reference.npz", + "sanitized": false + }, + { + "path": "planet/cartpole_swingup/config.yaml", + "model": "planet", + "bytes": 12497, + "sha256": "6e645402217101ca5151be97f37448913d6b89787161422a019b80b9f547ab36", + "source_sha256": "4e9de7dfe7bf9d706caf6720a164e640ed68221acfbe099386dfed75c4a1ca30", + "source_relative_path": "planet/checkpoints/planet-dmc-rgb-seed0/cartpole_swingup/config.yaml", + "sanitized": true + }, + { + "path": "planet/cartpole_swingup/attack_export.json", + "model": "planet", + "bytes": 464, + "sha256": "dc7e1134643a0bce63521befb2eaf708aa83d24fdb8e361d0b8280b1cbecd80e", + "source_sha256": "dc7e1134643a0bce63521befb2eaf708aa83d24fdb8e361d0b8280b1cbecd80e", + "source_relative_path": "planet/checkpoints/planet-dmc-rgb-seed0/cartpole_swingup/attack_export.json", + "sanitized": false + }, + { + "path": "planet/cartpole_swingup/attack_weights.npz", + "model": "planet", + "bytes": 5341958, + "sha256": "f75ced2942b489b578c750ed99ce5daa9e14a8727ce911b469a7785ce6231580", + "source_sha256": "f75ced2942b489b578c750ed99ce5daa9e14a8727ce911b469a7785ce6231580", + "source_relative_path": "planet/checkpoints/planet-dmc-rgb-seed0/cartpole_swingup/attack_weights.npz", + "sanitized": false + }, + { + "path": "planet/cartpole_swingup/tf_reference.npz", + "model": "planet", + "bytes": 111936, + "sha256": "62b9163ef512d1a397af51cd1320b5721f59ea8cb7283b8be1f320d6dd7035a0", + "source_sha256": "62b9163ef512d1a397af51cd1320b5721f59ea8cb7283b8be1f320d6dd7035a0", + "source_relative_path": "planet/checkpoints/planet-dmc-rgb-seed0/cartpole_swingup/tf_reference.npz", + "sanitized": false + }, + { + "path": "planet/cheetah_run/config.yaml", + "model": "planet", + "bytes": 12422, + "sha256": "7da0ca0f3486fe410848afd46fd1c000c8ef8241dbe47ec5e5d98ef169f51fa0", + "source_sha256": "0e234a9f150d9e0e301e3e8d770cb787c56ec018406ac8b9432b4c9a31551e06", + "source_relative_path": "planet/checkpoints/planet-dmc-rgb-seed0/cheetah_run/config.yaml", + "sanitized": true + }, + { + "path": "planet/cheetah_run/attack_export.json", + "model": "planet", + "bytes": 464, + "sha256": "0d7d9b3940ead701528d14eca0fa05ed6fca471cb009ded68448b8251cea6740", + "source_sha256": "0d7d9b3940ead701528d14eca0fa05ed6fca471cb009ded68448b8251cea6740", + "source_relative_path": "planet/checkpoints/planet-dmc-rgb-seed0/cheetah_run/attack_export.json", + "sanitized": false + }, + { + "path": "planet/cheetah_run/attack_weights.npz", + "model": "planet", + "bytes": 5345958, + "sha256": "fdf26210c8304305b8b5903d730dbdfe8b56c6a358524dba3c35d15048f4c968", + "source_sha256": "fdf26210c8304305b8b5903d730dbdfe8b56c6a358524dba3c35d15048f4c968", + "source_relative_path": "planet/checkpoints/planet-dmc-rgb-seed0/cheetah_run/attack_weights.npz", + "sanitized": false + }, + { + "path": "planet/cheetah_run/tf_reference.npz", + "model": "planet", + "bytes": 112676, + "sha256": "7bb4dfe7beea345abd585c5db704f40c668e1356c0b7644c4a5135d44ec7d271", + "source_sha256": "7bb4dfe7beea345abd585c5db704f40c668e1356c0b7644c4a5135d44ec7d271", + "source_relative_path": "planet/checkpoints/planet-dmc-rgb-seed0/cheetah_run/tf_reference.npz", + "sanitized": false + }, + { + "path": "dino_wm/pusht/hydra.yaml", + "model": "dino_wm", + "bytes": 1927, + "sha256": "33f40be9f62d4dae9553ea99011692b5b9c20aae9110595d1807d876b13f585a", + "source_sha256": "e4d7f21b85c778ab8b83c0bb83bc7625fdfb193a6a0619fef25f4a2afd7f8049", + "source_relative_path": "dino_wm/checkpoints/outputs/pusht/hydra.yaml", + "sanitized": true + }, + { + "path": "dino_wm/wall_single/hydra.yaml", + "model": "dino_wm", + "bytes": 1920, + "sha256": "f0b13250e49408c4890190eda837641e030ff6cda073cbc1238e4d11068c4370", + "source_sha256": "4ed3109219ed6820ce51fd19e4c97199552b3443ed58c502fddd6441784967e1", + "source_relative_path": "dino_wm/checkpoints/outputs/wall_single/hydra.yaml", + "sanitized": true + }, + { + "path": "dino_wm/wall_single/model_latest.pth", + "model": "dino_wm", + "bytes": 368656057, + "sha256": "8441971becdae934fe08de5b163398390a32f6fe1fb0a8df113290e2468e142b", + "source_sha256": "8441971becdae934fe08de5b163398390a32f6fe1fb0a8df113290e2468e142b", + "source_relative_path": "dino_wm/checkpoints/outputs/wall_single/checkpoints/model_latest.pth", + "sanitized": false + }, + { + "path": "dino_wm/pusht/model_latest.pth", + "model": "dino_wm", + "bytes": 377929744, + "sha256": "e909f0cec958fc0b49a79f2e85730ae6b5f83dee61a224705f91883eb3bb74c5", + "source_sha256": "e909f0cec958fc0b49a79f2e85730ae6b5f83dee61a224705f91883eb3bb74c5", + "source_relative_path": "dino_wm/checkpoints/outputs/pusht/checkpoints/model_latest.pth", + "sanitized": false + }, + { + "path": "le-wm/cube/config.json", + "model": "le-wm", + "bytes": 1313, + "sha256": "4d446944fe28922cc2c5763f43d4ef9132a457bd89e9a0ce5dbceac183994999", + "source_sha256": "4d446944fe28922cc2c5763f43d4ef9132a457bd89e9a0ce5dbceac183994999", + "source_relative_path": "le-wm/.stable-wm/checkpoints/cube/lewm/config.json", + "sanitized": false + }, + { + "path": "le-wm/cube/weights.pt", + "model": "le-wm", + "bytes": 72291425, + "sha256": "2839a907362f403f9136383016e91774373a295d958ae75121791f22a9fddf89", + "source_sha256": "2839a907362f403f9136383016e91774373a295d958ae75121791f22a9fddf89", + "source_relative_path": "le-wm/.stable-wm/checkpoints/cube/lewm/weights.pt", + "sanitized": false + }, + { + "path": "le-wm/pusht/config.json", + "model": "le-wm", + "bytes": 1313, + "sha256": "2564086e961e7b5c7c04dffc451091115b389a590645ff19653c64fd0bc16e09", + "source_sha256": "2564086e961e7b5c7c04dffc451091115b389a590645ff19653c64fd0bc16e09", + "source_relative_path": "le-wm/.stable-wm/checkpoints/pusht/lewm/config.json", + "sanitized": false + }, + { + "path": "le-wm/pusht/weights.pt", + "model": "le-wm", + "bytes": 72290721, + "sha256": "48938400ae3464c9680731287f583a9cb516f55a8ec64ea13a91be47fb15b607", + "source_sha256": "48938400ae3464c9680731287f583a9cb516f55a8ec64ea13a91be47fb15b607", + "source_relative_path": "le-wm/.stable-wm/checkpoints/pusht/lewm/weights.pt", + "sanitized": false + }, + { + "path": "le-wm/reacher/config.json", + "model": "le-wm", + "bytes": 1313, + "sha256": "2564086e961e7b5c7c04dffc451091115b389a590645ff19653c64fd0bc16e09", + "source_sha256": "2564086e961e7b5c7c04dffc451091115b389a590645ff19653c64fd0bc16e09", + "source_relative_path": "le-wm/.stable-wm/checkpoints/reacher/lewm/config.json", + "sanitized": false + }, + { + "path": "le-wm/reacher/weights.pt", + "model": "le-wm", + "bytes": 72290849, + "sha256": "eb70b1fd5409f8f81875d62f5ee5a20dd220a3128a477de66b5760f475f0f469", + "source_sha256": "eb70b1fd5409f8f81875d62f5ee5a20dd220a3128a477de66b5760f475f0f469", + "source_relative_path": "le-wm/.stable-wm/checkpoints/reacher/lewm/weights.pt", + "sanitized": false + }, + { + "path": "le-wm/tworoom/config.json", + "model": "le-wm", + "bytes": 1313, + "sha256": "2564086e961e7b5c7c04dffc451091115b389a590645ff19653c64fd0bc16e09", + "source_sha256": "2564086e961e7b5c7c04dffc451091115b389a590645ff19653c64fd0bc16e09", + "source_relative_path": "le-wm/.stable-wm/checkpoints/tworoom/lewm/config.json", + "sanitized": false + }, + { + "path": "le-wm/tworoom/weights.pt", + "model": "le-wm", + "bytes": 72290849, + "sha256": "566f223624ea4bfb39dbfe6ae731198dd6ea73b7b8919fed6b1ecafca810f7dd", + "source_sha256": "566f223624ea4bfb39dbfe6ae731198dd6ea73b7b8919fed6b1ecafca810f7dd", + "source_relative_path": "le-wm/.stable-wm/checkpoints/tworoom/lewm/weights.pt", + "sanitized": false + }, + { + "path": "dreamerv3/cheetah_run/config.yaml", + "model": "dreamerv3", + "bytes": 4403, + "sha256": "b28b6a00ac52e29df5d31accca25595942f1ea8e6986e02ad1c27d94daba0ad5", + "source_sha256": "f73845c27ef1eff92eff2acf5fd196c9a5bd25aaf43aed4a2a8a16ef78457f74", + "source_relative_path": "logdir/dreamer/cheetah_run/slurm-23188/config.yaml", + "sanitized": true + }, + { + "path": "dreamerv3/cheetah_run/ckpt/20260901T093748F019112/agent.pkl", + "model": "dreamerv3", + "bytes": 2042806149, + "sha256": "1d94c5824d8c77ba8191ccd5207409986a08bbf7e04ae5d55a9d468c7d158af3", + "source_sha256": "1d94c5824d8c77ba8191ccd5207409986a08bbf7e04ae5d55a9d468c7d158af3", + "source_relative_path": "logdir/dreamer/cheetah_run/slurm-23188/ckpt/20260901T093748F019112/agent.pkl", + "sanitized": false + }, + { + "path": "dreamerv3/cheetah_run/ckpt/20260901T093748F019112/step.pkl", + "model": "dreamerv3", + "bytes": 17, + "sha256": "69901686be1d13680e0c0ddbfd0a0d2f2a70bb0ae46a2e636bf78bf5bc45cce2", + "source_sha256": "69901686be1d13680e0c0ddbfd0a0d2f2a70bb0ae46a2e636bf78bf5bc45cce2", + "source_relative_path": "logdir/dreamer/cheetah_run/slurm-23188/ckpt/20260901T093748F019112/step.pkl", + "sanitized": false + }, + { + "path": "dreamerv3/cheetah_run/ckpt/20260901T093748F019112/done", + "model": "dreamerv3", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "source_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "source_relative_path": "logdir/dreamer/cheetah_run/slurm-23188/ckpt/20260901T093748F019112/done", + "sanitized": false + }, + { + "path": "dreamerv3/reacher_easy/config.yaml", + "model": "dreamerv3", + "bytes": 4409, + "sha256": "5a264f9cfc744b358798b053447f8df1d936a91592b04e96850fe3dda5ca32e4", + "source_sha256": "431174ded7bf75a544ba3717917cff2487c3b997c6a4c5c22ddbb9260e88e897", + "source_relative_path": "logdir/dreamer/reacher_easy/20260830T125224/config.yaml", + "sanitized": true + }, + { + "path": "dreamerv3/reacher_easy/ckpt/20260830T195435F325934/agent.pkl", + "model": "dreamerv3", + "bytes": 2042658588, + "sha256": "a1fb60436f02fcfa6ba1fbd0b5b5078142cb6f6c34b13c42e4a5967ef047b394", + "source_sha256": "a1fb60436f02fcfa6ba1fbd0b5b5078142cb6f6c34b13c42e4a5967ef047b394", + "source_relative_path": "logdir/dreamer/reacher_easy/20260830T125224/ckpt/20260830T195435F325934/agent.pkl", + "sanitized": false + }, + { + "path": "dreamerv3/reacher_easy/ckpt/20260830T195435F325934/step.pkl", + "model": "dreamerv3", + "bytes": 17, + "sha256": "7e5c5685c2d39badee13ea957052bbe8a3f71e577e2369e55151ad875842cb2f", + "source_sha256": "7e5c5685c2d39badee13ea957052bbe8a3f71e577e2369e55151ad875842cb2f", + "source_relative_path": "logdir/dreamer/reacher_easy/20260830T125224/ckpt/20260830T195435F325934/step.pkl", + "sanitized": false + }, + { + "path": "dreamerv3/reacher_easy/ckpt/20260830T195435F325934/done", + "model": "dreamerv3", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "source_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "source_relative_path": "logdir/dreamer/reacher_easy/20260830T125224/ckpt/20260830T195435F325934/done", + "sanitized": false + }, + { + "path": "planet/cartpole_swingup/tensorflow/model.ckpt-4504500.data-00000-of-00001", + "model": "planet", + "bytes": 61543552, + "sha256": "22b7d2959cab4e3b38fd55a579bb718d59516053f6cb92530c7cabf785cd5ce5", + "source_sha256": "22b7d2959cab4e3b38fd55a579bb718d59516053f6cb92530c7cabf785cd5ce5", + "source_relative_path": "planet/checkpoints/planet-dmc-rgb-seed0/cartpole_swingup/model.ckpt-4504500.data-00000-of-00001", + "sanitized": false + }, + { + "path": "planet/cartpole_swingup/tensorflow/model.ckpt-4504500.index", + "model": "planet", + "bytes": 5797, + "sha256": "b34dd58607ccf858446024be305a73757eb9b65a83ccecde57768974ad13a509", + "source_sha256": "b34dd58607ccf858446024be305a73757eb9b65a83ccecde57768974ad13a509", + "source_relative_path": "planet/checkpoints/planet-dmc-rgb-seed0/cartpole_swingup/model.ckpt-4504500.index", + "sanitized": false + }, + { + "path": "planet/cartpole_swingup/tensorflow/model.ckpt-4504500.meta", + "model": "planet", + "bytes": 7264371, + "sha256": "cdd30a7fd3c3bff6ca5e0bcce9c87bfd5056a02462730ac3d05d91e9cce4b1df", + "source_sha256": "cdd30a7fd3c3bff6ca5e0bcce9c87bfd5056a02462730ac3d05d91e9cce4b1df", + "source_relative_path": "planet/checkpoints/planet-dmc-rgb-seed0/cartpole_swingup/model.ckpt-4504500.meta", + "sanitized": false + }, + { + "path": "planet/cartpole_swingup/tensorflow/checkpoint", + "model": "planet", + "bytes": 93, + "sha256": "c4b1b9ef54b5185a72880247eb4ab7c71e54cc1b3e15a6ef82cbaf9510ac35d6", + "source_sha256": "c4b1b9ef54b5185a72880247eb4ab7c71e54cc1b3e15a6ef82cbaf9510ac35d6", + "source_relative_path": "planet/checkpoints/planet-dmc-rgb-seed0/cartpole_swingup/checkpoint", + "sanitized": false + }, + { + "path": "planet/reacher_easy/tensorflow/model.ckpt-4504500.data-00000-of-00001", + "model": "planet", + "bytes": 61545952, + "sha256": "4d1cbb7fe86a05756a2433fef62f8b024b8b846c642c7e2354b40a37e0a9f4c0", + "source_sha256": "4d1cbb7fe86a05756a2433fef62f8b024b8b846c642c7e2354b40a37e0a9f4c0", + "source_relative_path": "planet/checkpoints/planet-dmc-rgb-seed0/reacher_easy/model.ckpt-4504500.data-00000-of-00001", + "sanitized": false + }, + { + "path": "planet/reacher_easy/tensorflow/model.ckpt-4504500.index", + "model": "planet", + "bytes": 5789, + "sha256": "5844b59c53652eadad60eca39dbd8e1cd0273510ca78a56b221a7fe904a41df8", + "source_sha256": "5844b59c53652eadad60eca39dbd8e1cd0273510ca78a56b221a7fe904a41df8", + "source_relative_path": "planet/checkpoints/planet-dmc-rgb-seed0/reacher_easy/model.ckpt-4504500.index", + "sanitized": false + }, + { + "path": "planet/reacher_easy/tensorflow/model.ckpt-4504500.meta", + "model": "planet", + "bytes": 7112337, + "sha256": "ca8e8aef416be0b50d17dd164c53f352f1a001e065e2cd3d477c4666a796418e", + "source_sha256": "ca8e8aef416be0b50d17dd164c53f352f1a001e065e2cd3d477c4666a796418e", + "source_relative_path": "planet/checkpoints/planet-dmc-rgb-seed0/reacher_easy/model.ckpt-4504500.meta", + "sanitized": false + }, + { + "path": "planet/reacher_easy/tensorflow/checkpoint", + "model": "planet", + "bytes": 93, + "sha256": "c4b1b9ef54b5185a72880247eb4ab7c71e54cc1b3e15a6ef82cbaf9510ac35d6", + "source_sha256": "c4b1b9ef54b5185a72880247eb4ab7c71e54cc1b3e15a6ef82cbaf9510ac35d6", + "source_relative_path": "planet/checkpoints/planet-dmc-rgb-seed0/reacher_easy/checkpoint", + "sanitized": false + }, + { + "path": "planet/cheetah_run/tensorflow/model.ckpt-4504500.data-00000-of-00001", + "model": "planet", + "bytes": 61555552, + "sha256": "fe62149d086a11b89dcb259d8a6af18b41583747c5b34baecc96ae46d47a0431", + "source_sha256": "fe62149d086a11b89dcb259d8a6af18b41583747c5b34baecc96ae46d47a0431", + "source_relative_path": "planet/checkpoints/planet-dmc-rgb-seed0/cheetah_run/model.ckpt-4504500.data-00000-of-00001", + "sanitized": false + }, + { + "path": "planet/cheetah_run/tensorflow/model.ckpt-4504500.index", + "model": "planet", + "bytes": 5787, + "sha256": "f3c20abc873aa178695036d8d913acc41f1c61d1753f9e87a6fa8fccb8df80f2", + "source_sha256": "f3c20abc873aa178695036d8d913acc41f1c61d1753f9e87a6fa8fccb8df80f2", + "source_relative_path": "planet/checkpoints/planet-dmc-rgb-seed0/cheetah_run/model.ckpt-4504500.index", + "sanitized": false + }, + { + "path": "planet/cheetah_run/tensorflow/model.ckpt-4504500.meta", + "model": "planet", + "bytes": 7068294, + "sha256": "bd92bc2d5226976ffb7cca03252f2ee29753cb40025187cdf29961beb6cdc7c2", + "source_sha256": "bd92bc2d5226976ffb7cca03252f2ee29753cb40025187cdf29961beb6cdc7c2", + "source_relative_path": "planet/checkpoints/planet-dmc-rgb-seed0/cheetah_run/model.ckpt-4504500.meta", + "sanitized": false + }, + { + "path": "planet/cheetah_run/tensorflow/checkpoint", + "model": "planet", + "bytes": 93, + "sha256": "c4b1b9ef54b5185a72880247eb4ab7c71e54cc1b3e15a6ef82cbaf9510ac35d6", + "source_sha256": "c4b1b9ef54b5185a72880247eb4ab7c71e54cc1b3e15a6ef82cbaf9510ac35d6", + "source_relative_path": "planet/checkpoints/planet-dmc-rgb-seed0/cheetah_run/checkpoint", + "sanitized": false + }, + { + "path": "le-wm/defenses/cube/residual_hgd/hgd_eps16.best.pt", + "model": "le-wm", + "bytes": 5917691, + "sha256": "68f58d28e6b39954331143c2f66e736f402882f15fce35ace8afc8d464c17f07", + "source_sha256": "6532554c98c2bfa8982942d06562cf10ed81f96579667855cdf0bac328232480", + "source_relative_path": "le-wm/.stable-wm/defenses/cube/eps16_encrel_lam0p1/checkpoints/hgd_eps16.best.pt", + "sanitized": true + }, + { + "path": "le-wm/defenses/cube/residual_hgd/hgd_eps16.pt", + "model": "le-wm", + "bytes": 5916747, + "sha256": "bc3af72c1ae2ed328c8907f87e5709b719e00c8dd61e7c32ccb9dc722951772a", + "source_sha256": "373c0ec72c661465ea7cccadbad0b472443c7dd48ebfd2af4f78052e6457afce", + "source_relative_path": "le-wm/.stable-wm/defenses/cube/eps16_encrel_lam0p1/checkpoints/hgd_eps16.pt", + "sanitized": true + }, + { + "path": "le-wm/defenses/cube/paper_hgd/hgd_paper.best.pt", + "model": "le-wm", + "bytes": 132576538, + "sha256": "04ed4a9b4d9edea42f4e4ec7b489ae79378890a3c2d505077a97d69d19fd1ec9", + "source_sha256": "2354e376b01155e7253677e0e16273e31b32416c5d5db3f182423e3bc99ab2cf", + "source_relative_path": "le-wm/.stable-wm/defenses/cube/hgd_paper_train1000_val100/checkpoints/hgd_paper.best.pt", + "sanitized": true + }, + { + "path": "le-wm/defenses/cube/paper_hgd/hgd_paper.pt", + "model": "le-wm", + "bytes": 132574859, + "sha256": "9ebae97be8b61cefde85958dadea28d5ae34c959b3cd183f4932f6bfe1debdf2", + "source_sha256": "ca01417994b99b2ef0f9938e4a28b4d6e2a819a52865e2d8246aa5cddca6e087", + "source_relative_path": "le-wm/.stable-wm/defenses/cube/hgd_paper_train1000_val100/checkpoints/hgd_paper.pt", + "sanitized": true + } + ], + "notes": [ + "Binary research model checkpoints are byte-identical to local sources, except HGD metadata sanitization with exact state_dict tensor equality verified.", + "Configuration output paths are relative; set them for the destination machine.", + "Native TensorFlow PlaNet checkpoints, PyTorch inference exports, and TensorFlow parity fixtures are included.", + "Datasets, videos, episode perturbations, logs, and credentials are excluded.", + "The source_relative_path field maps this repository back to the research code artifact layout." + ] +} diff --git a/planet/cartpole_swingup/attack_export.json b/planet/cartpole_swingup/attack_export.json new file mode 100644 index 0000000000000000000000000000000000000000..fd30e67f42b3c21fa0a19936ab0bffd0a67f5a10 --- /dev/null +++ b/planet/cartpole_swingup/attack_export.json @@ -0,0 +1,10 @@ +{ + "source_revision": "b26a7fe027c018f62b3178c8e126371fbdee33e5", + "tensorflow": "2.15.0", + "inference_tensor_count": 32, + "source_sha256": { + "model.ckpt-4504500.data-00000-of-00001": "22b7d2959cab4e3b38fd55a579bb718d59516053f6cb92530c7cabf785cd5ce5", + "model.ckpt-4504500.index": "b34dd58607ccf858446024be305a73757eb9b65a83ccecde57768974ad13a509", + "model.ckpt-4504500.meta": "cdd30a7fd3c3bff6ca5e0bcce9c87bfd5056a02462730ac3d05d91e9cce4b1df" + } +} diff --git a/planet/cartpole_swingup/attack_weights.npz b/planet/cartpole_swingup/attack_weights.npz new file mode 100644 index 0000000000000000000000000000000000000000..1e97f054d0fa6574516f3f86a72e5e6a7abe7603 --- /dev/null +++ b/planet/cartpole_swingup/attack_weights.npz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f75ced2942b489b578c750ed99ce5daa9e14a8727ce911b469a7785ce6231580 +size 5341958 diff --git a/planet/cartpole_swingup/config.yaml b/planet/cartpole_swingup/config.yaml new file mode 100644 index 0000000000000000000000000000000000000000..a719092e8e283c4ba8da8b03f37b5808414fd94d --- /dev/null +++ b/planet/cartpole_swingup/config.yaml @@ -0,0 +1,388 @@ +!!python/object/new:planet.tools.attr_dict.AttrDict +dictitems: + activation: &id001 !!python/name:tensorflow.python.ops.gen_nn_ops.relu '' + batch_shape: &id004 + - 50 + - 50 + bound_action: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: !!python/name:planet.tools.bound_action.bound_action '' + _kwargs: + strategy: clip + cell: !!python/object:planet.tools.bind.bind + _args: !!python/tuple + - 30 + - 200 + - 200 + - true + - false + - 0.1 + - *id001 + - 1 + _fn: !!python/name:planet.models.rssm.RSSM '' + _kwargs: {} + checkpoint_to_load: null + data_loader: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: !!python/name:planet.tools.numpy_episodes.recent_loader '' + _kwargs: + every: 1000 + data_reader: !!python/name:planet.tools.numpy_episodes.episode_reader '' + debug: false + decoder: &id002 !!python/name:planet.networks.conv_ha.decoder '' + encoder: !!python/name:planet.networks.conv_ha.encoder '' + free_nats: 3.0 + gradient_heads: + - image + - reward + head_network: &id003 !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: !!python/name:planet.networks.basic.feed_forward '' + _kwargs: + activation: *id001 + num_layers: 2 + units: 200 + heads: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + image: *id002 + reward: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: *id003 + _kwargs: + stop_gradient: false + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + isolate_envs: thread + logdir: ./planet/results/planet-single-seed/cartpole_swingup/seed_00/00001 + loss_scales: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + divergence: 1.0 + global_divergence: 0.0 + image: 1.0 + overshooting: 0.0 + reward: 10.0 + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + max_steps: 5000000 + num_chunks: 1 + num_layers: 2 + num_units: 200 + open_loop_context: 5 + optimizers: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + main: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: !!python/name:planet.tools.custom_optimizer.CustomOptimizer '' + _kwargs: + clipping: 1000.0 + learning_rate: 0.001 + optimizer_cls: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: !!python/name:tensorflow.python.training.adam.AdamOptimizer '' + _kwargs: + epsilon: 0.0001 + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + os_stop_posterior_grad: true + overshooting_distance: 0 + postprocess_fn: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: !!python/name:planet.tools.preprocess.postprocess '' + _kwargs: + bits: 5 + preprocess_fn: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: !!python/name:planet.tools.preprocess.preprocess '' + _kwargs: + bits: 5 + print_metrics_every: 5000 + random_collects: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + test-cartpole_swingup: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + num_episodes: 5 + save_episode_dir: + ./planet/results/planet-single-seed/cartpole_swingup/seed_00/00001/test_episodes + task: &id005 !!python/object/new:planet.scripts.tasks.Task + - cartpole_swingup + - !!python/object:planet.tools.bind.bind + _args: !!python/tuple + - 8 + - 125 + - cartpole + - swingup + - &id006 !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + activation: relu + batch_shape: *id004 + collect_every: 5000 + divergence_scale: 1.0 + free_nats: 3.0 + global_div_scale: 0.0 + image_bits: 5 + isolate_envs: thread + logdir: ./planet/results/planet-single-seed/cartpole_swingup/seed_00/00001 + main_gradient_clipping: 1000.0 + main_learning_rate: 0.001 + max_steps: 5000000 + model: rssm + model_size: 200 + num_layers: 2 + num_seed_episodes: 5 + num_units: 200 + overshooting_scale: 0.0 + planner_amount: 1000 + planner_horizon: 12 + planner_iterations: 10 + planner_topk: 100 + seed: 0 + state_size: 30 + tasks: + - cartpole_swingup + test_collects: + - batch_size: 10 + test_steps: 50 + train_action_noise: 0.3 + train_steps: 50000 + state: + _defaults: {} + _touched: !!set + __getstate__: null + action_noise_min: null + action_noise_ramp: null + action_repeat: null + activation: null + batch_shape: null + bound_action: null + camera_id: null + checkpoint_every: null + collect_every: null + collect_objective: null + divergence_scale: null + free_nats: null + future_rnn: null + global_div_scale: null + gradient_heads: null + image_bits: null + image_loss_scale: null + isolate_envs: null + loader: null + loader_every: null + logdir: null + main_gradient_clipping: null + main_learning_rate: null + max_steps: null + mean_only: null + min_stddev: null + model: null + model_layers: null + model_size: null + network: null + num_chunks: null + num_layers: null + num_seed_episodes: null + num_units: null + os_stop_posterior_grad: null + overshooting_distance: null + overshooting_scale: null + planner: null + planner_amount: null + planner_horizon: null + planner_iterations: null + planner_topk: null + reward_loss_scale: null + seed: null + state_diagnostics: null + state_size: null + tasks: null + test_collects: null + test_steps: null + train_action_noise: null + train_collects: null + train_steps: null + _unlocked: false + _fn: !!python/name:planet.scripts.tasks._dm_control_env '' + _kwargs: {} + - 125 + - - reward + - position + - velocity + state: + _defaults: {} + _touched: !!set + __getstate__: null + num_episodes: null + save_episode_dir: null + task: null + _unlocked: false + train-cartpole_swingup: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + num_episodes: 5 + save_episode_dir: + ./planet/results/planet-single-seed/cartpole_swingup/seed_00/00001/train_episodes + task: *id005 + state: + _defaults: {} + _touched: !!set + __getstate__: null + num_episodes: null + save_episode_dir: null + task: null + _unlocked: false + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + savers: + - !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + exclude: !!python/tuple + - .*_temporary.* + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + tasks: + - *id005 + test_checkpoint_every: 500 + test_collects: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + test_main_cartpole_swingup: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + exploration: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + scale: 0.0 + schedule: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: &id007 !!python/name:planet.tools.schedule.linear '' + _kwargs: + min: 0.0 + ramp: 0 + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + num_agents: 10 + objective: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: &id008 !!python/name:planet.scripts.objectives.reward '' + _kwargs: + params: *id006 + planner: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: &id009 !!python/name:planet.control.planning.cross_entropy_method '' + _kwargs: + amount: 1000 + horizon: 12 + iterations: 10 + topk: 100 + save_episode_dir: + ./planet/results/planet-single-seed/cartpole_swingup/seed_00/00001/test_episodes + steps_after: 5000 + steps_every: 5000 + steps_until: -1 + task: *id005 + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + test_dir: + ./planet/results/planet-single-seed/cartpole_swingup/seed_00/00001/test_episodes + test_steps: 50 + train_checkpoint_every: null + train_collects: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + train_main_cartpole_swingup: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + exploration: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + scale: 0.3 + schedule: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: *id007 + _kwargs: + min: 0.0 + ramp: 0 + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + num_agents: 1 + objective: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: *id008 + _kwargs: + params: *id006 + planner: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: *id009 + _kwargs: + amount: 1000 + horizon: 12 + iterations: 10 + topk: 100 + save_episode_dir: + ./planet/results/planet-single-seed/cartpole_swingup/seed_00/00001/train_episodes + steps_after: 5000 + steps_every: 5000 + steps_until: -1 + task: *id005 + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + train_dir: + ./planet/results/planet-single-seed/cartpole_swingup/seed_00/00001/train_episodes + train_log_every: 50000 + train_steps: 50000 +state: + _defaults: {} + _touched: !!set + __getstate__: null + activation: null + batch_shape: null + data_loader: null + data_reader: null + decoder: null + gradient_heads: null + head_network: null + heads: null + logdir: null + loss_scales: null + num_chunks: null + num_layers: null + num_units: null + optimizers: null + preprocess_fn: null + random_collects: null + tasks: null + test_dir: null + test_steps: null + train_dir: null + train_steps: null + _unlocked: false diff --git a/planet/cartpole_swingup/tensorflow/checkpoint b/planet/cartpole_swingup/tensorflow/checkpoint new file mode 100644 index 0000000000000000000000000000000000000000..7ad8f8c0f7a745876c2a6e1533886dfdd4b74ab4 --- /dev/null +++ b/planet/cartpole_swingup/tensorflow/checkpoint @@ -0,0 +1,2 @@ +model_checkpoint_path: "model.ckpt-4504500" +all_model_checkpoint_paths: "model.ckpt-4504500" diff --git a/planet/cartpole_swingup/tensorflow/model.ckpt-4504500.data-00000-of-00001 b/planet/cartpole_swingup/tensorflow/model.ckpt-4504500.data-00000-of-00001 new file mode 100644 index 0000000000000000000000000000000000000000..d2a670512306f48a1c607947189d71d111ab08af --- /dev/null +++ b/planet/cartpole_swingup/tensorflow/model.ckpt-4504500.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22b7d2959cab4e3b38fd55a579bb718d59516053f6cb92530c7cabf785cd5ce5 +size 61543552 diff --git a/planet/cartpole_swingup/tensorflow/model.ckpt-4504500.index b/planet/cartpole_swingup/tensorflow/model.ckpt-4504500.index new file mode 100644 index 0000000000000000000000000000000000000000..7e8a900a75ed737796d05c9c40f5717731cfadc5 Binary files /dev/null and b/planet/cartpole_swingup/tensorflow/model.ckpt-4504500.index differ diff --git a/planet/cartpole_swingup/tensorflow/model.ckpt-4504500.meta b/planet/cartpole_swingup/tensorflow/model.ckpt-4504500.meta new file mode 100644 index 0000000000000000000000000000000000000000..00ff67b5a6e8d0196b5f79935b2ea3e59d079c63 --- /dev/null +++ b/planet/cartpole_swingup/tensorflow/model.ckpt-4504500.meta @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cdd30a7fd3c3bff6ca5e0bcce9c87bfd5056a02462730ac3d05d91e9cce4b1df +size 7264371 diff --git a/planet/cartpole_swingup/tf_reference.npz b/planet/cartpole_swingup/tf_reference.npz new file mode 100644 index 0000000000000000000000000000000000000000..9d9d2b2ec62f053aceb6620c1e5f8fb9de7519d4 --- /dev/null +++ b/planet/cartpole_swingup/tf_reference.npz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:62b9163ef512d1a397af51cd1320b5721f59ea8cb7283b8be1f320d6dd7035a0 +size 111936 diff --git a/planet/cheetah_run/attack_export.json b/planet/cheetah_run/attack_export.json new file mode 100644 index 0000000000000000000000000000000000000000..508d887f64c244f533a95f348ee5d607eace2a54 --- /dev/null +++ b/planet/cheetah_run/attack_export.json @@ -0,0 +1,10 @@ +{ + "source_revision": "b26a7fe027c018f62b3178c8e126371fbdee33e5", + "tensorflow": "2.15.0", + "inference_tensor_count": 32, + "source_sha256": { + "model.ckpt-4504500.data-00000-of-00001": "fe62149d086a11b89dcb259d8a6af18b41583747c5b34baecc96ae46d47a0431", + "model.ckpt-4504500.index": "f3c20abc873aa178695036d8d913acc41f1c61d1753f9e87a6fa8fccb8df80f2", + "model.ckpt-4504500.meta": "bd92bc2d5226976ffb7cca03252f2ee29753cb40025187cdf29961beb6cdc7c2" + } +} diff --git a/planet/cheetah_run/attack_weights.npz b/planet/cheetah_run/attack_weights.npz new file mode 100644 index 0000000000000000000000000000000000000000..9cf39824115fa284918ab33e46a42f574f91508d --- /dev/null +++ b/planet/cheetah_run/attack_weights.npz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fdf26210c8304305b8b5903d730dbdfe8b56c6a358524dba3c35d15048f4c968 +size 5345958 diff --git a/planet/cheetah_run/config.yaml b/planet/cheetah_run/config.yaml new file mode 100644 index 0000000000000000000000000000000000000000..7a6a5100aed0ca4e44b6e855ccddb0bd50633b7f --- /dev/null +++ b/planet/cheetah_run/config.yaml @@ -0,0 +1,388 @@ +!!python/object/new:planet.tools.attr_dict.AttrDict +dictitems: + activation: &id001 !!python/name:tensorflow.python.ops.gen_nn_ops.relu '' + batch_shape: &id004 + - 50 + - 50 + bound_action: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: !!python/name:planet.tools.bound_action.bound_action '' + _kwargs: + strategy: clip + cell: !!python/object:planet.tools.bind.bind + _args: !!python/tuple + - 30 + - 200 + - 200 + - true + - false + - 0.1 + - *id001 + - 1 + _fn: !!python/name:planet.models.rssm.RSSM '' + _kwargs: {} + checkpoint_to_load: null + data_loader: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: !!python/name:planet.tools.numpy_episodes.recent_loader '' + _kwargs: + every: 1000 + data_reader: !!python/name:planet.tools.numpy_episodes.episode_reader '' + debug: false + decoder: &id002 !!python/name:planet.networks.conv_ha.decoder '' + encoder: !!python/name:planet.networks.conv_ha.encoder '' + free_nats: 3.0 + gradient_heads: + - image + - reward + head_network: &id003 !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: !!python/name:planet.networks.basic.feed_forward '' + _kwargs: + activation: *id001 + num_layers: 2 + units: 200 + heads: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + image: *id002 + reward: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: *id003 + _kwargs: + stop_gradient: false + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + isolate_envs: thread + logdir: ./planet/results/planet-single-seed/cheetah_run/seed_00/00001 + loss_scales: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + divergence: 1.0 + global_divergence: 0.0 + image: 1.0 + overshooting: 0.0 + reward: 10.0 + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + max_steps: 5000000 + num_chunks: 1 + num_layers: 2 + num_units: 200 + open_loop_context: 5 + optimizers: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + main: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: !!python/name:planet.tools.custom_optimizer.CustomOptimizer '' + _kwargs: + clipping: 1000.0 + learning_rate: 0.001 + optimizer_cls: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: !!python/name:tensorflow.python.training.adam.AdamOptimizer '' + _kwargs: + epsilon: 0.0001 + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + os_stop_posterior_grad: true + overshooting_distance: 0 + postprocess_fn: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: !!python/name:planet.tools.preprocess.postprocess '' + _kwargs: + bits: 5 + preprocess_fn: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: !!python/name:planet.tools.preprocess.preprocess '' + _kwargs: + bits: 5 + print_metrics_every: 5000 + random_collects: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + test-cheetah_run: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + num_episodes: 5 + save_episode_dir: + ./planet/results/planet-single-seed/cheetah_run/seed_00/00001/test_episodes + task: &id005 !!python/object/new:planet.scripts.tasks.Task + - cheetah_run + - !!python/object:planet.tools.bind.bind + _args: !!python/tuple + - 4 + - 250 + - cheetah + - run + - &id006 !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + activation: relu + batch_shape: *id004 + collect_every: 5000 + divergence_scale: 1.0 + free_nats: 3.0 + global_div_scale: 0.0 + image_bits: 5 + isolate_envs: thread + logdir: ./planet/results/planet-single-seed/cheetah_run/seed_00/00001 + main_gradient_clipping: 1000.0 + main_learning_rate: 0.001 + max_steps: 5000000 + model: rssm + model_size: 200 + num_layers: 2 + num_seed_episodes: 5 + num_units: 200 + overshooting_scale: 0.0 + planner_amount: 1000 + planner_horizon: 12 + planner_iterations: 10 + planner_topk: 100 + seed: 0 + state_size: 30 + tasks: + - cheetah_run + test_collects: + - batch_size: 10 + test_steps: 50 + train_action_noise: 0.3 + train_steps: 50000 + state: + _defaults: {} + _touched: !!set + __getstate__: null + action_noise_min: null + action_noise_ramp: null + action_repeat: null + activation: null + batch_shape: null + bound_action: null + camera_id: null + checkpoint_every: null + collect_every: null + collect_objective: null + divergence_scale: null + free_nats: null + future_rnn: null + global_div_scale: null + gradient_heads: null + image_bits: null + image_loss_scale: null + isolate_envs: null + loader: null + loader_every: null + logdir: null + main_gradient_clipping: null + main_learning_rate: null + max_steps: null + mean_only: null + min_stddev: null + model: null + model_layers: null + model_size: null + network: null + num_chunks: null + num_layers: null + num_seed_episodes: null + num_units: null + os_stop_posterior_grad: null + overshooting_distance: null + overshooting_scale: null + planner: null + planner_amount: null + planner_horizon: null + planner_iterations: null + planner_topk: null + reward_loss_scale: null + seed: null + state_diagnostics: null + state_size: null + tasks: null + test_collects: null + test_steps: null + train_action_noise: null + train_collects: null + train_steps: null + _unlocked: false + _fn: !!python/name:planet.scripts.tasks._dm_control_env '' + _kwargs: {} + - 250 + - - reward + - position + - velocity + state: + _defaults: {} + _touched: !!set + __getstate__: null + num_episodes: null + save_episode_dir: null + task: null + _unlocked: false + train-cheetah_run: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + num_episodes: 5 + save_episode_dir: + ./planet/results/planet-single-seed/cheetah_run/seed_00/00001/train_episodes + task: *id005 + state: + _defaults: {} + _touched: !!set + __getstate__: null + num_episodes: null + save_episode_dir: null + task: null + _unlocked: false + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + savers: + - !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + exclude: !!python/tuple + - .*_temporary.* + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + tasks: + - *id005 + test_checkpoint_every: 500 + test_collects: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + test_main_cheetah_run: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + exploration: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + scale: 0.0 + schedule: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: &id007 !!python/name:planet.tools.schedule.linear '' + _kwargs: + min: 0.0 + ramp: 0 + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + num_agents: 10 + objective: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: &id008 !!python/name:planet.scripts.objectives.reward '' + _kwargs: + params: *id006 + planner: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: &id009 !!python/name:planet.control.planning.cross_entropy_method '' + _kwargs: + amount: 1000 + horizon: 12 + iterations: 10 + topk: 100 + save_episode_dir: + ./planet/results/planet-single-seed/cheetah_run/seed_00/00001/test_episodes + steps_after: 5000 + steps_every: 5000 + steps_until: -1 + task: *id005 + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + test_dir: + ./planet/results/planet-single-seed/cheetah_run/seed_00/00001/test_episodes + test_steps: 50 + train_checkpoint_every: null + train_collects: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + train_main_cheetah_run: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + exploration: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + scale: 0.3 + schedule: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: *id007 + _kwargs: + min: 0.0 + ramp: 0 + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + num_agents: 1 + objective: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: *id008 + _kwargs: + params: *id006 + planner: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: *id009 + _kwargs: + amount: 1000 + horizon: 12 + iterations: 10 + topk: 100 + save_episode_dir: + ./planet/results/planet-single-seed/cheetah_run/seed_00/00001/train_episodes + steps_after: 5000 + steps_every: 5000 + steps_until: -1 + task: *id005 + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + train_dir: + ./planet/results/planet-single-seed/cheetah_run/seed_00/00001/train_episodes + train_log_every: 50000 + train_steps: 50000 +state: + _defaults: {} + _touched: !!set + __getstate__: null + activation: null + batch_shape: null + data_loader: null + data_reader: null + decoder: null + gradient_heads: null + head_network: null + heads: null + logdir: null + loss_scales: null + num_chunks: null + num_layers: null + num_units: null + optimizers: null + preprocess_fn: null + random_collects: null + tasks: null + test_dir: null + test_steps: null + train_dir: null + train_steps: null + _unlocked: false diff --git a/planet/cheetah_run/tensorflow/checkpoint b/planet/cheetah_run/tensorflow/checkpoint new file mode 100644 index 0000000000000000000000000000000000000000..7ad8f8c0f7a745876c2a6e1533886dfdd4b74ab4 --- /dev/null +++ b/planet/cheetah_run/tensorflow/checkpoint @@ -0,0 +1,2 @@ +model_checkpoint_path: "model.ckpt-4504500" +all_model_checkpoint_paths: "model.ckpt-4504500" diff --git a/planet/cheetah_run/tensorflow/model.ckpt-4504500.data-00000-of-00001 b/planet/cheetah_run/tensorflow/model.ckpt-4504500.data-00000-of-00001 new file mode 100644 index 0000000000000000000000000000000000000000..d3e4216ea03005da49096fb25f71d9c9fd2adadc --- /dev/null +++ b/planet/cheetah_run/tensorflow/model.ckpt-4504500.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe62149d086a11b89dcb259d8a6af18b41583747c5b34baecc96ae46d47a0431 +size 61555552 diff --git a/planet/cheetah_run/tensorflow/model.ckpt-4504500.index b/planet/cheetah_run/tensorflow/model.ckpt-4504500.index new file mode 100644 index 0000000000000000000000000000000000000000..08f7c023759799a6148a9aa68af99326b2e91c3c Binary files /dev/null and b/planet/cheetah_run/tensorflow/model.ckpt-4504500.index differ diff --git a/planet/cheetah_run/tensorflow/model.ckpt-4504500.meta b/planet/cheetah_run/tensorflow/model.ckpt-4504500.meta new file mode 100644 index 0000000000000000000000000000000000000000..13bd203f6adf2ed5ac6aa93a0f1b719ff5e06c04 --- /dev/null +++ b/planet/cheetah_run/tensorflow/model.ckpt-4504500.meta @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd92bc2d5226976ffb7cca03252f2ee29753cb40025187cdf29961beb6cdc7c2 +size 7068294 diff --git a/planet/cheetah_run/tf_reference.npz b/planet/cheetah_run/tf_reference.npz new file mode 100644 index 0000000000000000000000000000000000000000..1fe118b60ac56256da72bef09fa5df28696f0d9f --- /dev/null +++ b/planet/cheetah_run/tf_reference.npz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7bb4dfe7beea345abd585c5db704f40c668e1356c0b7644c4a5135d44ec7d271 +size 112676 diff --git a/planet/reacher_easy/attack_export.json b/planet/reacher_easy/attack_export.json new file mode 100644 index 0000000000000000000000000000000000000000..0505d8c2921e8a369458e740af82d90ff015af35 --- /dev/null +++ b/planet/reacher_easy/attack_export.json @@ -0,0 +1,10 @@ +{ + "source_revision": "b26a7fe027c018f62b3178c8e126371fbdee33e5", + "tensorflow": "2.15.0", + "inference_tensor_count": 32, + "source_sha256": { + "model.ckpt-4504500.data-00000-of-00001": "4d1cbb7fe86a05756a2433fef62f8b024b8b846c642c7e2354b40a37e0a9f4c0", + "model.ckpt-4504500.index": "5844b59c53652eadad60eca39dbd8e1cd0273510ca78a56b221a7fe904a41df8", + "model.ckpt-4504500.meta": "ca8e8aef416be0b50d17dd164c53f352f1a001e065e2cd3d477c4666a796418e" + } +} diff --git a/planet/reacher_easy/attack_weights.npz b/planet/reacher_easy/attack_weights.npz new file mode 100644 index 0000000000000000000000000000000000000000..ffa6d71c7b29ce24e75298962f567d4d8e379a07 --- /dev/null +++ b/planet/reacher_easy/attack_weights.npz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a1e9829fbd16c2d1b18336534c561006938a4b59a5f55b0de526f7cebfac5e38 +size 5342758 diff --git a/planet/reacher_easy/config.yaml b/planet/reacher_easy/config.yaml new file mode 100644 index 0000000000000000000000000000000000000000..4e1f2f67c7e1200bfdedbc33ab97246662999ec5 --- /dev/null +++ b/planet/reacher_easy/config.yaml @@ -0,0 +1,389 @@ +!!python/object/new:planet.tools.attr_dict.AttrDict +dictitems: + activation: &id001 !!python/name:tensorflow.python.ops.gen_nn_ops.relu '' + batch_shape: &id004 + - 50 + - 50 + bound_action: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: !!python/name:planet.tools.bound_action.bound_action '' + _kwargs: + strategy: clip + cell: !!python/object:planet.tools.bind.bind + _args: !!python/tuple + - 30 + - 200 + - 200 + - true + - false + - 0.1 + - *id001 + - 1 + _fn: !!python/name:planet.models.rssm.RSSM '' + _kwargs: {} + checkpoint_to_load: null + data_loader: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: !!python/name:planet.tools.numpy_episodes.recent_loader '' + _kwargs: + every: 1000 + data_reader: !!python/name:planet.tools.numpy_episodes.episode_reader '' + debug: false + decoder: &id002 !!python/name:planet.networks.conv_ha.decoder '' + encoder: !!python/name:planet.networks.conv_ha.encoder '' + free_nats: 3.0 + gradient_heads: + - image + - reward + head_network: &id003 !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: !!python/name:planet.networks.basic.feed_forward '' + _kwargs: + activation: *id001 + num_layers: 2 + units: 200 + heads: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + image: *id002 + reward: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: *id003 + _kwargs: + stop_gradient: false + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + isolate_envs: thread + logdir: ./planet/results/planet-single-seed/reacher_easy/seed_00/00001 + loss_scales: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + divergence: 1.0 + global_divergence: 0.0 + image: 1.0 + overshooting: 0.0 + reward: 10.0 + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + max_steps: 5000000 + num_chunks: 1 + num_layers: 2 + num_units: 200 + open_loop_context: 5 + optimizers: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + main: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: !!python/name:planet.tools.custom_optimizer.CustomOptimizer '' + _kwargs: + clipping: 1000.0 + learning_rate: 0.001 + optimizer_cls: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: !!python/name:tensorflow.python.training.adam.AdamOptimizer '' + _kwargs: + epsilon: 0.0001 + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + os_stop_posterior_grad: true + overshooting_distance: 0 + postprocess_fn: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: !!python/name:planet.tools.preprocess.postprocess '' + _kwargs: + bits: 5 + preprocess_fn: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: !!python/name:planet.tools.preprocess.preprocess '' + _kwargs: + bits: 5 + print_metrics_every: 5000 + random_collects: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + test-reacher_easy: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + num_episodes: 5 + save_episode_dir: + ./planet/results/planet-single-seed/reacher_easy/seed_00/00001/test_episodes + task: &id005 !!python/object/new:planet.scripts.tasks.Task + - reacher_easy + - !!python/object:planet.tools.bind.bind + _args: !!python/tuple + - 4 + - 250 + - reacher + - easy + - &id006 !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + activation: relu + batch_shape: *id004 + collect_every: 5000 + divergence_scale: 1.0 + free_nats: 3.0 + global_div_scale: 0.0 + image_bits: 5 + isolate_envs: thread + logdir: ./planet/results/planet-single-seed/reacher_easy/seed_00/00001 + main_gradient_clipping: 1000.0 + main_learning_rate: 0.001 + max_steps: 5000000 + model: rssm + model_size: 200 + num_layers: 2 + num_seed_episodes: 5 + num_units: 200 + overshooting_scale: 0.0 + planner_amount: 1000 + planner_horizon: 12 + planner_iterations: 10 + planner_topk: 100 + seed: 0 + state_size: 30 + tasks: + - reacher_easy + test_collects: + - batch_size: 10 + test_steps: 50 + train_action_noise: 0.3 + train_steps: 50000 + state: + _defaults: {} + _touched: !!set + __getstate__: null + action_noise_min: null + action_noise_ramp: null + action_repeat: null + activation: null + batch_shape: null + bound_action: null + camera_id: null + checkpoint_every: null + collect_every: null + collect_objective: null + divergence_scale: null + free_nats: null + future_rnn: null + global_div_scale: null + gradient_heads: null + image_bits: null + image_loss_scale: null + isolate_envs: null + loader: null + loader_every: null + logdir: null + main_gradient_clipping: null + main_learning_rate: null + max_steps: null + mean_only: null + min_stddev: null + model: null + model_layers: null + model_size: null + network: null + num_chunks: null + num_layers: null + num_seed_episodes: null + num_units: null + os_stop_posterior_grad: null + overshooting_distance: null + overshooting_scale: null + planner: null + planner_amount: null + planner_horizon: null + planner_iterations: null + planner_topk: null + reward_loss_scale: null + seed: null + state_diagnostics: null + state_size: null + tasks: null + test_collects: null + test_steps: null + train_action_noise: null + train_collects: null + train_steps: null + _unlocked: false + _fn: !!python/name:planet.scripts.tasks._dm_control_env '' + _kwargs: {} + - 250 + - - reward + - position + - velocity + - to_target + state: + _defaults: {} + _touched: !!set + __getstate__: null + num_episodes: null + save_episode_dir: null + task: null + _unlocked: false + train-reacher_easy: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + num_episodes: 5 + save_episode_dir: + ./planet/results/planet-single-seed/reacher_easy/seed_00/00001/train_episodes + task: *id005 + state: + _defaults: {} + _touched: !!set + __getstate__: null + num_episodes: null + save_episode_dir: null + task: null + _unlocked: false + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + savers: + - !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + exclude: !!python/tuple + - .*_temporary.* + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + tasks: + - *id005 + test_checkpoint_every: 500 + test_collects: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + test_main_reacher_easy: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + exploration: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + scale: 0.0 + schedule: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: &id007 !!python/name:planet.tools.schedule.linear '' + _kwargs: + min: 0.0 + ramp: 0 + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + num_agents: 10 + objective: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: &id008 !!python/name:planet.scripts.objectives.reward '' + _kwargs: + params: *id006 + planner: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: &id009 !!python/name:planet.control.planning.cross_entropy_method '' + _kwargs: + amount: 1000 + horizon: 12 + iterations: 10 + topk: 100 + save_episode_dir: + ./planet/results/planet-single-seed/reacher_easy/seed_00/00001/test_episodes + steps_after: 5000 + steps_every: 5000 + steps_until: -1 + task: *id005 + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + test_dir: + ./planet/results/planet-single-seed/reacher_easy/seed_00/00001/test_episodes + test_steps: 50 + train_checkpoint_every: null + train_collects: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + train_main_reacher_easy: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + exploration: !!python/object/new:planet.tools.attr_dict.AttrDict + dictitems: + scale: 0.3 + schedule: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: *id007 + _kwargs: + min: 0.0 + ramp: 0 + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + num_agents: 1 + objective: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: *id008 + _kwargs: + params: *id006 + planner: !!python/object:planet.tools.bind.bind + _args: !!python/tuple [] + _fn: *id009 + _kwargs: + amount: 1000 + horizon: 12 + iterations: 10 + topk: 100 + save_episode_dir: + ./planet/results/planet-single-seed/reacher_easy/seed_00/00001/train_episodes + steps_after: 5000 + steps_every: 5000 + steps_until: -1 + task: *id005 + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + state: + _defaults: {} + _touched: !!set + __getstate__: null + _unlocked: false + train_dir: + ./planet/results/planet-single-seed/reacher_easy/seed_00/00001/train_episodes + train_log_every: 50000 + train_steps: 50000 +state: + _defaults: {} + _touched: !!set + __getstate__: null + activation: null + batch_shape: null + data_loader: null + data_reader: null + decoder: null + gradient_heads: null + head_network: null + heads: null + logdir: null + loss_scales: null + num_chunks: null + num_layers: null + num_units: null + optimizers: null + preprocess_fn: null + random_collects: null + tasks: null + test_dir: null + test_steps: null + train_dir: null + train_steps: null + _unlocked: false diff --git a/planet/reacher_easy/tensorflow/checkpoint b/planet/reacher_easy/tensorflow/checkpoint new file mode 100644 index 0000000000000000000000000000000000000000..7ad8f8c0f7a745876c2a6e1533886dfdd4b74ab4 --- /dev/null +++ b/planet/reacher_easy/tensorflow/checkpoint @@ -0,0 +1,2 @@ +model_checkpoint_path: "model.ckpt-4504500" +all_model_checkpoint_paths: "model.ckpt-4504500" diff --git a/planet/reacher_easy/tensorflow/model.ckpt-4504500.data-00000-of-00001 b/planet/reacher_easy/tensorflow/model.ckpt-4504500.data-00000-of-00001 new file mode 100644 index 0000000000000000000000000000000000000000..2bdb5d9cf704afdd4feb4ccd9825cd66602491c5 --- /dev/null +++ b/planet/reacher_easy/tensorflow/model.ckpt-4504500.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d1cbb7fe86a05756a2433fef62f8b024b8b846c642c7e2354b40a37e0a9f4c0 +size 61545952 diff --git a/planet/reacher_easy/tensorflow/model.ckpt-4504500.index b/planet/reacher_easy/tensorflow/model.ckpt-4504500.index new file mode 100644 index 0000000000000000000000000000000000000000..0a16089e0ac9a0ddb1353769a0aad331eef8925f Binary files /dev/null and b/planet/reacher_easy/tensorflow/model.ckpt-4504500.index differ diff --git a/planet/reacher_easy/tensorflow/model.ckpt-4504500.meta b/planet/reacher_easy/tensorflow/model.ckpt-4504500.meta new file mode 100644 index 0000000000000000000000000000000000000000..fad05234bb2097b0a1a279367f8252a75edf9068 --- /dev/null +++ b/planet/reacher_easy/tensorflow/model.ckpt-4504500.meta @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca8e8aef416be0b50d17dd164c53f352f1a001e065e2cd3d477c4666a796418e +size 7112337 diff --git a/planet/reacher_easy/tf_reference.npz b/planet/reacher_easy/tf_reference.npz new file mode 100644 index 0000000000000000000000000000000000000000..5e2bfc26cd2483b53eb575b8f293ca54f85e0a75 --- /dev/null +++ b/planet/reacher_easy/tf_reference.npz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22d50e7b59c1c661bc1ffb889c4196bffe9fe6d28f4cf2b62d7700ff99e8d165 +size 112084 diff --git a/planet/runtime.json b/planet/runtime.json new file mode 100644 index 0000000000000000000000000000000000000000..592c12f721f40b0c5d97e48419c80da179b10ec8 --- /dev/null +++ b/planet/runtime.json @@ -0,0 +1,54 @@ +{ + "python": "3.10.14", + "platform": "Linux x86_64", + "packages": { + "imageio-ffmpeg": "0.4.9", + "setuptools": "65.5.0", + "imageio": "2.34.1", + "pillow": "10.3.0", + "numpy": "1.26.4", + "mujoco": "2.3.2", + "pyopengl": "3.1.7", + "glfw": "2.7.0", + "absl-py": "2.1.0", + "dm-control": "1.0.9", + "tqdm": "4.66.4", + "scipy": "1.13.1", + "requests": "2.32.3", + "certifi": "2024.6.2", + "urllib3": "2.2.1", + "idna": "3.7", + "charset-normalizer": "3.3.2", + "pyparsing": "3.1.2", + "protobuf": "6.33.6", + "lxml": "5.3.1", + "labmaze": "1.0.6", + "dm-tree": "0.1.8", + "dm-env": "1.6", + "torch": "2.7.0+cu128", + "triton": "3.3.0", + "nvidia-cufile-cu12": "1.13.0.11", + "nvidia-nvjitlink-cu12": "12.8.61", + "nvidia-nvtx-cu12": "12.8.55", + "nvidia-nccl-cu12": "2.26.2", + "nvidia-cusparselt-cu12": "0.6.3", + "nvidia-cusparse-cu12": "12.5.7.53", + "nvidia-cusolver-cu12": "11.7.2.55", + "nvidia-cublas-cu12": "12.8.3.14", + "nvidia-curand-cu12": "10.3.9.55", + "nvidia-cufft-cu12": "11.3.3.41", + "nvidia-cudnn-cu12": "9.7.1.26", + "nvidia-cuda-cupti-cu12": "12.8.57", + "nvidia-cuda-runtime-cu12": "12.8.57", + "nvidia-cuda-nvrtc-cu12": "12.8.61", + "fsspec": "2024.5.0", + "jinja2": "3.1.4", + "markupsafe": "2.1.5", + "networkx": "3.2.1", + "sympy": "1.14.0", + "mpmath": "1.3.0", + "typing-extensions": "4.15.0", + "filelock": "3.14.0" + }, + "metadata_conflicts": [] +} diff --git a/tdmpc2/cartpole-balance/step-250000.pt b/tdmpc2/cartpole-balance/step-250000.pt new file mode 100644 index 0000000000000000000000000000000000000000..57d29fa729528757e8c285c28e52193c248b280e --- /dev/null +++ b/tdmpc2/cartpole-balance/step-250000.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:74cf0a67dc4f2487c270381f32f1027a07a3299fa8fbe282cb7b7a632ce84b6e +size 42638723 diff --git a/tdmpc2/cheetah-run/step-1500000.pt b/tdmpc2/cheetah-run/step-1500000.pt new file mode 100644 index 0000000000000000000000000000000000000000..c53452450e22b4db4b27c62c1ef9791789bb7630 --- /dev/null +++ b/tdmpc2/cheetah-run/step-1500000.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5654ea3c9c69a2640848b9d0efc043dc7d55896eeb9de62c7cb5c958f8652cd8 +size 42833361 diff --git a/tdmpc2/cup-catch/step-1500000.pt b/tdmpc2/cup-catch/step-1500000.pt new file mode 100644 index 0000000000000000000000000000000000000000..4f7c6e02d0b0965547afb1c6f854fe41eaee237c --- /dev/null +++ b/tdmpc2/cup-catch/step-1500000.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df67f9c68655c3443c8c5e36799091ee9debfebc4ca11b1a59abf370b4083e47 +size 42677713 diff --git a/tdmpc2/finger-spin/step-1000000.pt b/tdmpc2/finger-spin/step-1000000.pt new file mode 100644 index 0000000000000000000000000000000000000000..2f3d25997ddc432c83f9ef13fb4d915d135c213b --- /dev/null +++ b/tdmpc2/finger-spin/step-1000000.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bbc1c9b519784a661839bfe97707a5c5395ca03655fbc17f24fe13cf23857be8 +size 42677713 diff --git a/tdmpc2/runtime.json b/tdmpc2/runtime.json new file mode 100644 index 0000000000000000000000000000000000000000..26ace42c9304f95295b5595e25391a3b584e17c3 --- /dev/null +++ b/tdmpc2/runtime.json @@ -0,0 +1,104 @@ +{ + "python": "3.10.14", + "platform": "Linux x86_64", + "packages": { + "hydra-submitit-launcher": "1.2.0", + "submitit": "1.5.1", + "typing-extensions": "4.15.0", + "cloudpickle": "2.1.0", + "hydra-core": "1.2.0", + "packaging": "24.0", + "antlr4-python3-runtime": "4.9.3", + "omegaconf": "2.3.0", + "pyyaml": "6.0.1", + "moviepy": "1.0.3", + "imageio-ffmpeg": "0.4.9", + "setuptools": "70.0.0", + "imageio": "2.34.1", + "pillow": "10.3.0", + "numpy": "1.26.4", + "proglog": "0.1.10", + "tqdm": "4.66.4", + "requests": "2.32.3", + "certifi": "2024.6.2", + "urllib3": "2.2.1", + "idna": "3.7", + "charset-normalizer": "3.3.2", + "decorator": "4.4.2", + "termcolor": "2.4.0", + "pandas": "2.3.3", + "tzdata": "2025.3", + "pytz": "2025.2", + "python-dateutil": "2.9.0.post0", + "six": "1.16.0", + "h5py": "3.11.0", + "torchrl": "0.13.2", + "tensordict": "0.8.3", + "orjson": "3.11.9", + "importlib-metadata": "7.1.0", + "zipp": "3.19.1", + "torch": "2.7.0+cu128", + "triton": "3.3.0", + "nvidia-cufile-cu12": "1.13.0.11", + "nvidia-nvjitlink-cu12": "12.8.61", + "nvidia-nvtx-cu12": "12.8.55", + "nvidia-nccl-cu12": "2.26.2", + "nvidia-cusparselt-cu12": "0.6.3", + "nvidia-cusparse-cu12": "12.5.7.53", + "nvidia-cusolver-cu12": "11.7.2.55", + "nvidia-cublas-cu12": "12.8.3.14", + "nvidia-curand-cu12": "10.3.9.55", + "nvidia-cufft-cu12": "11.3.3.41", + "nvidia-cudnn-cu12": "9.7.1.26", + "nvidia-cuda-cupti-cu12": "12.8.57", + "nvidia-cuda-runtime-cu12": "12.8.57", + "nvidia-cuda-nvrtc-cu12": "12.8.61", + "fsspec": "2024.5.0", + "jinja2": "3.1.4", + "markupsafe": "2.1.5", + "networkx": "3.2.1", + "sympy": "1.14.0", + "mpmath": "1.3.0", + "filelock": "3.14.0", + "hoptorch": "0.1.4", + "pyvers": "0.2.2", + "mujoco": "3.2.7", + "pyopengl": "3.1.7", + "glfw": "2.7.0", + "etils": "1.5.2", + "importlib-resources": "6.4.0", + "absl-py": "2.1.0", + "dm-control": "1.0.27", + "scipy": "1.13.1", + "pyparsing": "3.1.2", + "protobuf": "6.33.6", + "lxml": "5.3.1", + "labmaze": "1.0.6", + "dm-tree": "0.1.8", + "dm-env": "1.6", + "gymnasium": "0.29.1", + "farama-notifications": "0.0.6", + "gym": "0.23.1", + "gym-notices": "0.0.8", + "wandb": "0.25.1", + "sentry-sdk": "2.3.1", + "pydantic": "2.12.5", + "typing-inspection": "0.4.2", + "pydantic-core": "2.41.5", + "annotated-types": "0.7.0", + "platformdirs": "4.2.2", + "gitpython": "3.1.43", + "gitdb": "4.0.11", + "smmap": "5.0.1", + "click": "8.1.7", + "einops": "0.4.1", + "matplotlib": "3.5.3", + "kiwisolver": "1.4.5", + "fonttools": "4.53.0", + "cycler": "0.12.1", + "torchvision": "0.22.0+cu128" + }, + "metadata_conflicts": [ + "torchrl==0.13.2 requires tensordict<0.14.0,>=0.13.0; observed tensordict==0.8.3" + ] +} diff --git a/verify_download.py b/verify_download.py new file mode 100644 index 0000000000000000000000000000000000000000..8b137695e6be700d1b6c9f06ea450a5708fea98f --- /dev/null +++ b/verify_download.py @@ -0,0 +1,35 @@ +"""Verify the downloaded checkpoint inventory without importing model packages.""" +import argparse +import hashlib +import json +from pathlib import Path + + +def main(): + parser=argparse.ArgumentParser(description=__doc__) + parser.add_argument('--model',choices=['le-wm','dino_wm','planet','tdmpc2','dreamerv3']) + args=parser.parse_args() + root=Path(__file__).resolve().parent + manifest=json.loads((root/'manifest.json').read_text()) + rows=[r for r in manifest['files'] if args.model is None or r['model']==args.model] + problems=[] + for row in rows: + path=(root/row['path']).resolve() + if not path.is_relative_to(root): + problems.append(row['path']+': invalid path') + continue + if not path.is_file(): + problems.append(row['path']+': missing') + continue + h=hashlib.sha256() + with path.open('rb') as stream: + for chunk in iter(lambda:stream.read(8*1024*1024),b''): + h.update(chunk) + if path.stat().st_size!=row['bytes'] or h.hexdigest()!=row['sha256']: + problems.append(row['path']+': checksum or size mismatch') + print(json.dumps(dict(requested=len(rows),verified=len(rows)-len(problems),issues=problems),indent=2)) + raise SystemExit(bool(problems)) + + +if __name__=='__main__': + main()