gradlab 0.2.1__tar.gz → 0.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {gradlab-0.2.1 → gradlab-0.2.2}/PKG-INFO +2 -2
- {gradlab-0.2.1 → gradlab-0.2.2}/README.md +1 -1
- {gradlab-0.2.1 → gradlab-0.2.2}/pyproject.toml +1 -1
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/__init__.py +1 -1
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/batch_runtime.py +17 -10
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/checkpoint_acceptance.py +2 -4
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/task_kernels.py +24 -14
- {gradlab-0.2.1 → gradlab-0.2.2}/.gitignore +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/LICENSE +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/METRICS.md +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/THIRD_PARTY_NOTICES.md +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/Acrobot-v1/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/Acrobot-v1/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/Blackjack-v1/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/Blackjack-v1/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/Breakout-Atari2600-v0/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/Breakout-Atari2600-v0/recipes/go-explore-20m.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/Breakout-Atari2600-v0/recipes/ppo-128x64.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/Breakout-Atari2600-v0/recipes/ppo-archive-curriculum.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/Breakout-Atari2600-v0/recipes/ppo-ball-state.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/Breakout-Atari2600-v0/recipes/ppo-fusion-256.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/Breakout-Atari2600-v0/recipes/ppo-stable-updates.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/Breakout-Atari2600-v0/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/CartPole-v1/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/CartPole-v1/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/CliffWalking-v1/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/CliffWalking-v1/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/CliffWalkingSlippery-v1/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/CliffWalkingSlippery-v1/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/FrozenLake-v1/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/FrozenLake-v1/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/FrozenLake8x8-v1/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/FrozenLake8x8-v1/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/LunarLander-v3/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/LunarLander-v3/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/MountainCar-v0/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/MountainCar-v0/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/EndToEnd/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/EndToEnd/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level1-1/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level1-1/recipes/a2c.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level1-1/recipes/dstack-smoke.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level1-1/recipes/go-explore-20m.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level1-1/recipes/jerk.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level1-1/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level1-1/recipes/turbo-demo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level1-2/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level1-2/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level1-3/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level1-3/recipes/ppo-train-clear-100.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level1-3/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level1-4/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level1-4/recipes/ppo-l14-soft-update.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level2-1/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level2-1/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level2-2/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level2-2/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level2-3/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level2-3/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level2-4/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level2-4/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level3-1/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level3-1/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level3-2/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level3-2/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level3-3/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level3-3/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level3-4/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level3-4/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level4-1/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level4-1/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level4-2/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level4-2/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level4-3/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level4-3/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level4-4/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level4-4/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Levels_1-1_1-2/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Levels_1-1_1-2/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Levels_1-1_1-2/recipes/raw-advantage.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/_goal-common.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/_goal-family-common.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/_reports.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/_reward-shapes-common.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/Taxi-v3/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/Taxi-v3/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomBasic-Plus-v1/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomBasic-Plus-v1/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomBasic-v1/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomBasic-v1/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomDeadlyCorridor-v1/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomDeadlyCorridor-v1/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomDeathmatch-v1/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomDeathmatch-v1/recipes/gradoom-ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomDeathmatch-v1/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomDefendCenter-v1/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomDefendCenter-v1/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomDefendLine-Plus-v1/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomDefendLine-Plus-v1/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomDefendLine-v1/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomDefendLine-v1/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomHealthGathering-Plus-v1/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomHealthGathering-Plus-v1/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomHealthGathering-v1/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomHealthGathering-v1/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomHealthGatheringSupreme-v1/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomHealthGatheringSupreme-v1/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomMyWayHome-v1/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomMyWayHome-v1/recipes/ppo-cell-novelty.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomMyWayHome-v1/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomPredictPosition-v1/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomPredictPosition-v1/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomTakeCover-v1/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomTakeCover-v1/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/_catalog.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/_gymnasium-classic-control-common.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/_gymnasium-discrete-common.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/_vizdoom-common.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/_workspaces.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/alepy__mspacman/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/alepy__mspacman/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/gradlab__bandit/_goal.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/gradlab__bandit/recipes/ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/recipes/_presets/atari-ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/recipes/_presets/breakout-ball-state-ablation-ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/recipes/_presets/breakout-high-throughput-ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/recipes/_presets/classic-control-ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/recipes/_presets/gymnasium-discrete-ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/recipes/_presets/mario-mixed-ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/recipes/_presets/mario-single-on-policy.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/recipes/_presets/mario-single-ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/recipes/_presets/vizdoom-basic-ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/recipes/_presets/vizdoom-defend-line-ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/experiments/recipes/_presets/vizdoom-health-gathering-ppo.yaml +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/action_codecs.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/action_contract.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/action_distributions.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/action_overrides.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/action_profiles.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/action_program.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/actor_critic_policy.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/artifacts.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/bandit_env.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/benchmark.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/benchmark_profiles.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/boundary_schema.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/callbacks.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/catalog_errors.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/catalog_jobs.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/cell_graph.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/checkpoint_contract.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/cli_args.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/cli_parser.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/clock.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/config_loader.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/config_validation.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/contract_inspection.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/contract_versions.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/coordinator_connection.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/dataset_cli.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/dataset_contract.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/dataset_hub.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/dataset_media.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/dataset_minari.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/dataset_providers.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/dataset_record.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/dataset_store.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/device.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/dotenv.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/dstack_backend.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/early_stop.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/env.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/env_cli.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/env_config.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/env_identity.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/env_metadata.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/env_providers.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/env_registry.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/environment_fields.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/eval.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/eval_backend.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/eval_metrics.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/eval_runner.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/evaluation_attempts.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/evaluation_fence.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/evaluation_projection.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/experiment_cli.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/experiment_contracts.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/file_utils.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/go_explore.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/goal_catalog.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/goal_catalog_projection.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/goal_schema.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/goal_variants.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/gradoom_device_runtime.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/gymnasium_vec_env.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/jerk.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/job_queue.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/jobs_cli.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/json_utils.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/lifecycle_certification.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/local_paths.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/local_train.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/main.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/manual_evaluation.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/metric_names.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/metric_store.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/modal_app.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/modal_app_lifecycle.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/modal_eval_backend.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/modal_eval_config.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/modal_eval_protocol.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/modal_eval_storage.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/modal_eval_worker.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/model_inputs.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/model_sources.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/operator_credentials.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/operator_environment.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/play.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/play_application.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/play_attribution.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/play_capture.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/play_catalog.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/play_catalog_authority.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/play_cnn.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/play_debug.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/play_processing.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/play_runtime.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/play_session.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/play_termination.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/play_web.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/playback_worker.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/player_publication.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/policy_bundle.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/policy_execution.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/policy_model_config.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/policy_models.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/policy_observation.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/policy_registry.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/policy_runtime.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/ppo.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/preprocessing.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/provider_config.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/provider_data/stable_retro/Breakout-Atari2600-v0/data.json +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/publication.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/publication_credentials.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/publication_evidence.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/publication_jobs.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/r2_store.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/ranking.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/recipe_catalog.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/recipe_documents.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/recipe_schema.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/recipe_variants.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/reward_programs.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/reward_transform.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/rom_assets.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/rom_cli.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/rom_runtime.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/routed_policy.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/run_authority.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/run_contracts.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/run_supervisor.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/runtime_contract.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/runtime_refs.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/sb3_models.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/schedules.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/seeds.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/state_archive.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/supervision_fault_learner.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/supervisor_ledger.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/supervisor_runtime.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/task_advantage.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/templates/model_card_v3.md.j2 +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/templates/model_card_v4.md.j2 +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/train.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/train_config.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/training/__init__.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/training/go_explore.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/training/jerk.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/training/ppo.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/training/ppo_engine.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/training/sb3.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/training/sb3_helpers.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/training/sb3_on_policy.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/training/sb3_vec_env.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/training_backend.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/training_lifecycle.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/training_metrics.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/training_tui.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/training_tui.tcss +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/trusted_inputs.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/turbo_api.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/validation.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/video.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/vizdoom_assets.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/wandb_leaders.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/wandb_publisher.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/wandb_reports.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/wandb_utils.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/wandb_workspace_declarations.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/wandb_workspaces.py +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/app.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/documents/diff.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/documents/syntax.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/documents/viewer.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/episode-report.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/event-colors.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/favicon.svg +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/fonts/ChivoVariable.woff2 +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/fonts/InterVariable-Italic.woff2 +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/fonts/InterVariable.woff2 +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/fonts/JetBrainsMonoVariable-Italic.woff2 +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/fonts/JetBrainsMonoVariable.woff2 +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/index.html +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/oauth_complete.html +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/oauth_complete.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/panels/README.md +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/panels/action-contract.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/panels/attribution.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/panels/catalog.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/panels/cnn.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/panels/controls.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/panels/diagnostic-availability.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/panels/diagnostic-overlays.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/panels/events.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/panels/game.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/panels/layout-sizing.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/panels/manager.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/panels/observation.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/panels/raw.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/panels/reward-breakdown.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/panels/runtime.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/panels/shared.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/panels/telemetry-panel.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/panels/telemetry.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/panels/workspace.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/playback-settings.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/playback-transition.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/player-presentation.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/sources/browser.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/styles.css +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/synchronized-presentation.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/tabler-chevron-down.svg +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/tabler-icons.svg +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/vendor/gridstack/gridstack-all.js +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/web_player/vendor/gridstack/gridstack.min.css +0 -0
- {gradlab-0.2.1 → gradlab-0.2.2}/src/gradlab/youtube_publication.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: gradlab
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: Generic reinforcement-learning lab for training and evaluating game agents
|
|
5
5
|
License-Expression: MIT
|
|
6
6
|
License-File: LICENSE
|
|
@@ -64,7 +64,7 @@ with portable policies and evidence-backed results.
|
|
|
64
64
|
Try the bundled ROM-free smoke recipe without cloning, credentials, or a ROM:
|
|
65
65
|
|
|
66
66
|
```bash
|
|
67
|
-
uvx gradlab@0.2.
|
|
67
|
+
uvx gradlab@0.2.2 train gradlab__bandit/ppo
|
|
68
68
|
```
|
|
69
69
|
|
|
70
70
|
The run writes a directly playable policy below `~/.config/gradlab/runs/`.
|
|
@@ -12,7 +12,7 @@ with portable policies and evidence-backed results.
|
|
|
12
12
|
Try the bundled ROM-free smoke recipe without cloning, credentials, or a ROM:
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
|
-
uvx gradlab@0.2.
|
|
15
|
+
uvx gradlab@0.2.2 train gradlab__bandit/ppo
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
The run writes a directly playable policy below `~/.config/gradlab/runs/`.
|
|
@@ -585,6 +585,7 @@ class BatchRuntime:
|
|
|
585
585
|
"live snapshot continuation"
|
|
586
586
|
)
|
|
587
587
|
self.reset_infos: list[dict[str, Any]] = [{} for _ in range(self.num_envs)]
|
|
588
|
+
self._reset_info_dtypes: dict[str, np.dtype[Any]] = {}
|
|
588
589
|
self._episode_returns = np.zeros(self.num_envs, dtype=np.float64)
|
|
589
590
|
self._episode_lengths = np.zeros(self.num_envs, dtype=np.int64)
|
|
590
591
|
self._episode_indices = np.zeros(self.num_envs, dtype=np.int64)
|
|
@@ -748,6 +749,7 @@ class BatchRuntime:
|
|
|
748
749
|
observations, infos = self.provider.reset(seed=normalized_seeds, options=options)
|
|
749
750
|
if not isinstance(infos, Mapping):
|
|
750
751
|
raise TypeError("native provider reset infos must be a columnar mapping")
|
|
752
|
+
self._remember_reset_info_dtypes(infos)
|
|
751
753
|
self.kernel.on_reset(observations, infos, mask)
|
|
752
754
|
encoded = self.kernel.encode_observations(observations)
|
|
753
755
|
if self._reuse_provider_observations:
|
|
@@ -942,28 +944,32 @@ class BatchRuntime:
|
|
|
942
944
|
) -> tuple[bytes, ...]:
|
|
943
945
|
if any(not info for info in self.reset_infos):
|
|
944
946
|
raise RuntimeError("policy reset cell keys require an initialized runtime")
|
|
945
|
-
keys = set().union(*(info.keys() for info in self.reset_infos))
|
|
946
|
-
infos = {
|
|
947
|
-
key: np.asarray([info.get(key) for info in self.reset_infos])
|
|
948
|
-
for key in keys
|
|
949
|
-
if not key.startswith("_")
|
|
950
|
-
}
|
|
951
947
|
return self.policy_cell_keys(
|
|
952
948
|
cell_config,
|
|
953
|
-
|
|
949
|
+
self._columnar_reset_infos(),
|
|
954
950
|
source="reset",
|
|
955
951
|
)
|
|
956
952
|
|
|
957
953
|
def state_archive_reset_cell_keys(self) -> tuple[bytes, ...]:
|
|
958
954
|
if any(not info for info in self.reset_infos):
|
|
959
955
|
raise RuntimeError("state archive reset cell keys require an initialized runtime")
|
|
956
|
+
return self.state_archive_cell_keys(self._columnar_reset_infos(), source="reset")
|
|
957
|
+
|
|
958
|
+
def _remember_reset_info_dtypes(self, infos: Mapping[str, Any]) -> None:
|
|
959
|
+
for key, value in infos.items():
|
|
960
|
+
if isinstance(key, str) and not key.startswith("_") and isinstance(value, np.ndarray):
|
|
961
|
+
self._reset_info_dtypes[key] = value.dtype
|
|
962
|
+
|
|
963
|
+
def _columnar_reset_infos(self) -> dict[str, np.ndarray]:
|
|
960
964
|
keys = set().union(*(info.keys() for info in self.reset_infos))
|
|
961
|
-
|
|
962
|
-
key: np.asarray(
|
|
965
|
+
return {
|
|
966
|
+
key: np.asarray(
|
|
967
|
+
[info.get(key) for info in self.reset_infos],
|
|
968
|
+
dtype=self._reset_info_dtypes.get(key),
|
|
969
|
+
)
|
|
963
970
|
for key in keys
|
|
964
971
|
if not key.startswith("_")
|
|
965
972
|
}
|
|
966
|
-
return self.state_archive_cell_keys(infos, source="reset")
|
|
967
973
|
|
|
968
974
|
def _set_curriculum_reset_baselines(
|
|
969
975
|
self,
|
|
@@ -1669,6 +1675,7 @@ class BatchRuntime:
|
|
|
1669
1675
|
reset_seconds = time.perf_counter() - reset_started_at
|
|
1670
1676
|
if not isinstance(reset_infos, Mapping):
|
|
1671
1677
|
raise TypeError("native provider reset infos must be a columnar mapping")
|
|
1678
|
+
self._remember_reset_info_dtypes(reset_infos)
|
|
1672
1679
|
if curriculum is not None and archive_selections:
|
|
1673
1680
|
curriculum.note_reset(
|
|
1674
1681
|
len(archive_selections),
|
|
@@ -330,7 +330,7 @@ def build_checkpoint_eval_contract(
|
|
|
330
330
|
if str(seed_protocol) != SEED_PROTOCOL:
|
|
331
331
|
raise ValueError(f"unsupported checkpoint eval seed protocol: {seed_protocol!r}")
|
|
332
332
|
action_sampling = str(action_sampling).strip()
|
|
333
|
-
if action_sampling not in {"stochastic", "epsilon_greedy", "program"}:
|
|
333
|
+
if action_sampling not in {"stochastic", "epsilon_greedy", "program", "route"}:
|
|
334
334
|
raise ValueError(f"unsupported checkpoint eval action selection: {action_sampling!r}")
|
|
335
335
|
rules = normalize_metric_threshold_rules(acceptance, label="goal.eval.acceptance")
|
|
336
336
|
if not rules:
|
|
@@ -438,9 +438,7 @@ def acceptance_aggregates(
|
|
|
438
438
|
if len(rows) == int(contract["episodes"]):
|
|
439
439
|
if rates:
|
|
440
440
|
result[EVAL_FULL_OUTCOME_SUCCESS_STARTS_RATE_MIN] = min(rates.values())
|
|
441
|
-
result[EVAL_FULL_OUTCOME_SUCCESS_STARTS_RATE_MEAN] = sum(rates.values()) / len(
|
|
442
|
-
rates
|
|
443
|
-
)
|
|
441
|
+
result[EVAL_FULL_OUTCOME_SUCCESS_STARTS_RATE_MEAN] = sum(rates.values()) / len(rates)
|
|
444
442
|
returns = [float(row["return"]) for row in rows if row.get("return") is not None]
|
|
445
443
|
if len(returns) == len(rows) and returns:
|
|
446
444
|
if not all(math.isfinite(value) for value in returns):
|
|
@@ -2053,11 +2053,9 @@ class IdentityTaskDefinition:
|
|
|
2053
2053
|
raise ValueError(
|
|
2054
2054
|
"identity task termination.bootstrap references unknown events: "
|
|
2055
2055
|
+ ", ".join(unknown_bootstrap_events)
|
|
2056
|
-
|
|
2056
|
+
)
|
|
2057
2057
|
non_success_bootstrap_events = sorted(
|
|
2058
|
-
name
|
|
2059
|
-
for name in bootstrap_events
|
|
2060
|
-
if event_outcomes.get(name) != Outcome.SUCCESS
|
|
2058
|
+
name for name in bootstrap_events if event_outcomes.get(name) != Outcome.SUCCESS
|
|
2061
2059
|
)
|
|
2062
2060
|
if non_success_bootstrap_events:
|
|
2063
2061
|
raise ValueError(
|
|
@@ -2467,7 +2465,7 @@ class IdentityTaskKernel:
|
|
|
2467
2465
|
if len(dtypes) != 1:
|
|
2468
2466
|
raise ValueError(f"archive signal {semantic_name!r} must be scalar")
|
|
2469
2467
|
dtype = dtypes[0]
|
|
2470
|
-
if not np.issubdtype(dtype, np.number) or np.issubdtype(dtype, np.bool_):
|
|
2468
|
+
if not (np.issubdtype(dtype, np.number) or np.issubdtype(dtype, np.bool_)):
|
|
2471
2469
|
raise ValueError(f"archive signal {semantic_name!r} must be numeric")
|
|
2472
2470
|
|
|
2473
2471
|
def archive_signal_values(
|
|
@@ -2559,8 +2557,7 @@ class EventRewardTaskKernel:
|
|
|
2559
2557
|
"task.reward.event_rewards references unknown events: " + ", ".join(missing)
|
|
2560
2558
|
)
|
|
2561
2559
|
self._configured = tuple(
|
|
2562
|
-
(name, event_indices[name], coefficient)
|
|
2563
|
-
for name, coefficient in normalized.items()
|
|
2560
|
+
(name, event_indices[name], coefficient) for name, coefficient in normalized.items()
|
|
2564
2561
|
)
|
|
2565
2562
|
self._event_reward_components = {
|
|
2566
2563
|
name: np.zeros(self.num_envs, dtype=np.float32) for name in normalized
|
|
@@ -2684,6 +2681,7 @@ class MarioTaskConfig:
|
|
|
2684
2681
|
lives: SignalSource = "lives"
|
|
2685
2682
|
level: SignalSource = ("levelHi", "levelLo")
|
|
2686
2683
|
game_mode: SignalSource | None = None
|
|
2684
|
+
declared_signals: tuple[tuple[str, SignalSource], ...] = ()
|
|
2687
2685
|
action_masks: np.ndarray | None = None
|
|
2688
2686
|
reward_mode: str = "baseline"
|
|
2689
2687
|
use_native_reward: bool = False
|
|
@@ -2814,6 +2812,14 @@ class MarioTaskConfig:
|
|
|
2814
2812
|
value = signals.get(name, default)
|
|
2815
2813
|
return value if isinstance(value, str) else tuple(value)
|
|
2816
2814
|
|
|
2815
|
+
declared_signals = tuple(
|
|
2816
|
+
(
|
|
2817
|
+
str(name),
|
|
2818
|
+
source if isinstance(source, str) else tuple(source),
|
|
2819
|
+
)
|
|
2820
|
+
for name, source in signals.items()
|
|
2821
|
+
)
|
|
2822
|
+
|
|
2817
2823
|
reward_mode = str(reward_value("reward_mode", "baseline"))
|
|
2818
2824
|
if reward_mode not in {"native", "bounded", "baseline", "score", "additive"}:
|
|
2819
2825
|
raise ValueError(f"unsupported Mario reward mode {reward_mode!r}")
|
|
@@ -2824,6 +2830,7 @@ class MarioTaskConfig:
|
|
|
2824
2830
|
lives=signal_value("lives", cls.lives),
|
|
2825
2831
|
level=signal_value("level", cls.level),
|
|
2826
2832
|
game_mode=game_mode_source if game_complete_rule else None,
|
|
2833
|
+
declared_signals=declared_signals,
|
|
2827
2834
|
action_masks=None,
|
|
2828
2835
|
reward_mode=reward_mode,
|
|
2829
2836
|
use_native_reward=reward.get("use_native_reward", False),
|
|
@@ -2881,12 +2888,15 @@ class MarioTaskKernel:
|
|
|
2881
2888
|
self.num_envs = int(num_envs)
|
|
2882
2889
|
self._native_observation_space = descriptor.native_observation_space
|
|
2883
2890
|
self.observation_space = _policy_observation_space(self._native_observation_space)
|
|
2884
|
-
signal_sources: dict[str, SignalSource] =
|
|
2885
|
-
|
|
2886
|
-
|
|
2887
|
-
|
|
2888
|
-
|
|
2889
|
-
|
|
2891
|
+
signal_sources: dict[str, SignalSource] = dict(config.declared_signals)
|
|
2892
|
+
signal_sources.update(
|
|
2893
|
+
{
|
|
2894
|
+
"x": config.x,
|
|
2895
|
+
"score": config.score,
|
|
2896
|
+
"lives": config.lives,
|
|
2897
|
+
"level": config.level,
|
|
2898
|
+
}
|
|
2899
|
+
)
|
|
2890
2900
|
if config.game_mode is not None:
|
|
2891
2901
|
signal_sources["game_mode"] = config.game_mode
|
|
2892
2902
|
self.bindings = SignalBindings(descriptor, signal_sources, self.num_envs)
|
|
@@ -3252,7 +3262,7 @@ class MarioTaskKernel:
|
|
|
3252
3262
|
elif len(dtypes) != 1:
|
|
3253
3263
|
raise ValueError(f"archive signal {semantic_name!r} must be scalar")
|
|
3254
3264
|
if any(
|
|
3255
|
-
not np.issubdtype(dtype, np.number) or np.issubdtype(dtype, np.bool_)
|
|
3265
|
+
not (np.issubdtype(dtype, np.number) or np.issubdtype(dtype, np.bool_))
|
|
3256
3266
|
for dtype in dtypes
|
|
3257
3267
|
):
|
|
3258
3268
|
raise ValueError(f"archive signal {semantic_name!r} must be numeric")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/Breakout-Atari2600-v0/recipes/go-explore-20m.yaml
RENAMED
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/Breakout-Atari2600-v0/recipes/ppo-128x64.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/Breakout-Atari2600-v0/recipes/ppo-ball-state.yaml
RENAMED
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/Breakout-Atari2600-v0/recipes/ppo-fusion-256.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/EndToEnd/recipes/ppo.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level1-1/recipes/a2c.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level1-1/recipes/jerk.yaml
RENAMED
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level1-1/recipes/ppo.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level1-2/recipes/ppo.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level1-3/recipes/ppo.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level2-1/recipes/ppo.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level2-2/recipes/ppo.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level2-3/recipes/ppo.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level2-4/recipes/ppo.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level3-1/recipes/ppo.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level3-2/recipes/ppo.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level3-3/recipes/ppo.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level3-4/recipes/ppo.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level4-1/recipes/ppo.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level4-2/recipes/ppo.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level4-3/recipes/ppo.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Level4-4/recipes/ppo.yaml
RENAMED
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/Levels_1-1_1-2/_goal.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/_goal-family-common.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/SuperMarioBros-Nes-v0/_reward-shapes-common.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomDeathmatch-v1/recipes/gradoom-ppo.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomDefendLine-Plus-v1/recipes/ppo.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomHealthGathering-Plus-v1/recipes/ppo.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomHealthGathering-v1/recipes/ppo.yaml
RENAMED
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomHealthGatheringSupreme-v1/_goal.yaml
RENAMED
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomHealthGatheringSupreme-v1/recipes/ppo.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomMyWayHome-v1/recipes/ppo-cell-novelty.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/goals/VizdoomPredictPosition-v1/recipes/ppo.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/recipes/_presets/breakout-ball-state-ablation-ppo.yaml
RENAMED
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/recipes/_presets/breakout-high-throughput-ppo.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gradlab-0.2.1 → gradlab-0.2.2}/experiments/recipes/_presets/vizdoom-health-gathering-ppo.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|