deep-learning-core 0.0.25__tar.gz → 0.0.26__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.
- deep_learning_core-0.0.26/.github/workflows/ci.yml +54 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/.github/workflows/publish-testpypi.yml +6 -20
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/.github/workflows/publish.yml +6 -20
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/PKG-INFO +47 -34
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/README.md +39 -31
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/pyproject.toml +8 -8
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/readme/README.md +8 -3
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/readme/guide/1_getting_started.md +1 -1
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/readme/guide/2_creating_an_experiment_repository.md +9 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/readme/guide/3_local_components_and_sweeps.md +3 -1
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/readme/technical/2_entry_points.md +3 -2
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/readme/technical/5_testing.md +3 -1
- deep_learning_core-0.0.26/readme/technical/6_reinforcement_learning.md +344 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/readme/tldr/2_create_and_run_an_experiment.md +8 -2
- deep_learning_core-0.0.26/src/dl_core/__init__.py +189 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/analysis/sweep_analyzer.py +1 -1
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/callbacks/local_metric_tracker.py +45 -5
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/cli.py +1 -1
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/component_describer.py +4 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/component_scaffold.py +74 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/core/__init__.py +17 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/core/base_callback.py +139 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/core/registry.py +71 -10
- deep_learning_core-0.0.26/src/dl_core/core/replay_buffer.py +179 -0
- deep_learning_core-0.0.26/src/dl_core/core/rl_trainer.py +679 -0
- deep_learning_core-0.0.26/src/dl_core/core/rl_types.py +83 -0
- deep_learning_core-0.0.26/src/dl_core/core/rollout_buffer.py +223 -0
- deep_learning_core-0.0.26/src/dl_core/environments/__init__.py +32 -0
- deep_learning_core-0.0.26/src/dl_core/environments/gymnasium_environment.py +67 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/init_experiment.py +67 -14
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/init_extensions.py +12 -0
- deep_learning_core-0.0.26/src/dl_core/models/__init__.py +14 -0
- deep_learning_core-0.0.26/src/dl_core/models/dqn.py +53 -0
- deep_learning_core-0.0.26/src/dl_core/models/ppo.py +90 -0
- deep_learning_core-0.0.26/src/dl_core/models/sac.py +122 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/optimizers/__init__.py +3 -3
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/project.py +1 -0
- deep_learning_core-0.0.26/src/dl_core/py.typed +1 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/schedulers/__init__.py +6 -6
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/single_run.py +76 -2
- deep_learning_core-0.0.26/src/dl_core/trainers/__init__.py +16 -0
- deep_learning_core-0.0.26/src/dl_core/trainers/dqn_trainer.py +379 -0
- deep_learning_core-0.0.26/src/dl_core/trainers/ppo_trainer.py +506 -0
- deep_learning_core-0.0.26/src/dl_core/trainers/q_learning_trainer.py +221 -0
- deep_learning_core-0.0.26/src/dl_core/trainers/sac_trainer.py +695 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/trainers/standard_trainer.py +0 -6
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/utils/config_validator.py +55 -39
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/utils/distributed_utils.py +0 -4
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/worker.py +2 -2
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/tests/test_component_describer.py +21 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/tests/test_component_scaffold.py +39 -0
- deep_learning_core-0.0.26/tests/test_config_validator.py +124 -0
- deep_learning_core-0.0.26/tests/test_dqn_trainer.py +315 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/tests/test_init_experiment.py +29 -1
- deep_learning_core-0.0.26/tests/test_local_components.py +117 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/tests/test_local_metric_tracker_callback.py +49 -0
- deep_learning_core-0.0.26/tests/test_ppo_trainer.py +265 -0
- deep_learning_core-0.0.26/tests/test_q_learning_trainer.py +175 -0
- deep_learning_core-0.0.26/tests/test_registry.py +38 -0
- deep_learning_core-0.0.26/tests/test_rl_environment_contracts.py +83 -0
- deep_learning_core-0.0.26/tests/test_rl_preflight.py +91 -0
- deep_learning_core-0.0.26/tests/test_rl_trainer.py +220 -0
- deep_learning_core-0.0.26/tests/test_sac_trainer.py +370 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/tests/test_scaffold_smoke.py +5 -3
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/tests/test_tracking_components.py +0 -1
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/uv.lock +417 -34
- deep_learning_core-0.0.25/.github/workflows/ci.yml +0 -60
- deep_learning_core-0.0.25/requirements-ci.txt +0 -11
- deep_learning_core-0.0.25/src/dl_core/__init__.py +0 -89
- deep_learning_core-0.0.25/src/dl_core/models/__init__.py +0 -7
- deep_learning_core-0.0.25/src/dl_core/trainers/__init__.py +0 -8
- deep_learning_core-0.0.25/tests/test_local_components.py +0 -35
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/.gitignore +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/AGENTS.md +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/LICENSE +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/plan.md +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/readme/technical/1_configuration.md +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/readme/technical/3_sweep_system.md +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/readme/technical/4_local_component_loading.md +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/readme/tldr/1_install_and_verify.md +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/accelerators/__init__.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/accelerators/cpu.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/accelerators/multi_gpu.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/accelerators/single_gpu.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/analysis/__init__.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/augmentations/__init__.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/augmentations/minimal.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/augmentations/standard.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/callbacks/__init__.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/callbacks/checkpoint.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/callbacks/dataset_refresh.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/callbacks/early_stopping.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/callbacks/metric_logger.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/core/adaptive_computation_trainer.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/core/base_accelerator.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/core/base_biometric_model.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/core/base_criterion.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/core/base_dataset.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/core/base_detector.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/core/base_executor.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/core/base_metric.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/core/base_metric_manager.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/core/base_metrics_source.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/core/base_model.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/core/base_sampler.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/core/base_tracker.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/core/base_trainer.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/core/base_transform.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/core/config_metadata.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/core/epoch_trainer.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/core/sequence_trainer.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/criterions/__init__.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/criterions/bce_with_logits.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/criterions/crossentropy.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/dataset_inspect.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/datasets/__init__.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/datasets/standard.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/executors/__init__.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/executors/local.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/metric_managers/__init__.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/metric_managers/standard_manager.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/metrics/__init__.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/metrics/accuracy.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/metrics/auc.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/metrics/f1.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/metrics/halt_steps.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/metrics_sources/__init__.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/metrics_sources/local.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/migrate.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/models/resnet.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/samplers/__init__.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/samplers/label.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/schedulers/cosinewithwarmup.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/smoke.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/sweep/__init__.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/sweep/config/__init__.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/sweep/config/config_builder.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/sweep/config/config_utils.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/sweep/runner.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/sweep/template/__init__.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/sweep/template/template_loader.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/sweep/template/template_merger.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/sweep/template/template_validator.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/sweep/template/tracking_utils.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/sweep_scaffold.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/sync.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/templates/README.md +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/templates/base/base.yaml +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/templates/base/base_sweep.yaml +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/templates/presets.yaml +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/templates/sweeps/example_sweep.yaml +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/trackers/__init__.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/trackers/local.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/utils/__init__.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/utils/artifact_manager.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/utils/checkpoint_utils.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/utils/common.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/utils/config.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/utils/config_names.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/utils/ema.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/utils/logging/__init__.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/utils/logging/logger.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/utils/runtime_utils.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/src/dl_core/utils/sweep_tracker.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/tests/conftest.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/tests/test_checkpoint_behavior.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/tests/test_checkpoint_utils.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/tests/test_dataset_bases.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/tests/test_dataset_cli.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/tests/test_init_extensions.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/tests/test_metric_pipeline.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/tests/test_samplers.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/tests/test_sweep_runner.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/tests/test_sync_cli.py +0 -0
- {deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/tests/test_trainer_hierarchy.py +0 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
env:
|
|
4
|
+
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
push:
|
|
8
|
+
branches:
|
|
9
|
+
- master
|
|
10
|
+
pull_request:
|
|
11
|
+
workflow_dispatch:
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
validate:
|
|
15
|
+
name: Python ${{ matrix.python-version }}
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
permissions:
|
|
18
|
+
contents: read
|
|
19
|
+
strategy:
|
|
20
|
+
fail-fast: false
|
|
21
|
+
matrix:
|
|
22
|
+
python-version: ["3.10", "3.11", "3.12"]
|
|
23
|
+
|
|
24
|
+
steps:
|
|
25
|
+
- name: Check out repository
|
|
26
|
+
uses: actions/checkout@v5
|
|
27
|
+
|
|
28
|
+
- name: Set up uv
|
|
29
|
+
uses: astral-sh/setup-uv@v7
|
|
30
|
+
|
|
31
|
+
- name: Set up Python
|
|
32
|
+
run: uv python install ${{ matrix.python-version }}
|
|
33
|
+
|
|
34
|
+
- name: Install locked dependencies
|
|
35
|
+
run: uv sync --locked --extra dev --python ${{ matrix.python-version }}
|
|
36
|
+
|
|
37
|
+
- name: Run Ruff
|
|
38
|
+
run: uv run --no-sync ruff check src tests
|
|
39
|
+
|
|
40
|
+
- name: Run tests with coverage
|
|
41
|
+
run: >-
|
|
42
|
+
uv run --no-sync python -m pytest
|
|
43
|
+
--cov=dl_core
|
|
44
|
+
--cov-report=term
|
|
45
|
+
--cov-fail-under=45
|
|
46
|
+
|
|
47
|
+
- name: Compile package
|
|
48
|
+
run: uv run --no-sync python -m compileall src/dl_core
|
|
49
|
+
|
|
50
|
+
- name: Build distribution artifacts
|
|
51
|
+
run: uv build --no-sources
|
|
52
|
+
|
|
53
|
+
- name: Check distribution metadata
|
|
54
|
+
run: uv run --no-sync twine check dist/*
|
{deep_learning_core-0.0.25 → deep_learning_core-0.0.26}/.github/workflows/publish-testpypi.yml
RENAMED
|
@@ -31,28 +31,14 @@ jobs:
|
|
|
31
31
|
- name: Set up Python
|
|
32
32
|
run: uv python install 3.11
|
|
33
33
|
|
|
34
|
-
- name:
|
|
35
|
-
run: uv
|
|
34
|
+
- name: Install locked dependencies
|
|
35
|
+
run: uv sync --locked --extra dev --python 3.11
|
|
36
36
|
|
|
37
|
-
- name:
|
|
38
|
-
run:
|
|
39
|
-
python3 - <<'PY'
|
|
40
|
-
from pathlib import Path
|
|
41
|
-
import tomllib
|
|
42
|
-
|
|
43
|
-
pyproject = tomllib.loads(Path("pyproject.toml").read_text())
|
|
44
|
-
dependencies = pyproject["project"]["dependencies"]
|
|
45
|
-
dev_dependencies = pyproject["project"]["optional-dependencies"]["dev"]
|
|
46
|
-
Path("requirements-ci.txt").write_text(
|
|
47
|
-
"\n".join([*dependencies, *dev_dependencies, "twine"]) + "\n",
|
|
48
|
-
encoding="utf-8",
|
|
49
|
-
)
|
|
50
|
-
PY
|
|
51
|
-
uv pip install --python .venv/bin/python -r requirements-ci.txt
|
|
52
|
-
uv pip install --python .venv/bin/python --no-deps --editable .
|
|
37
|
+
- name: Run Ruff
|
|
38
|
+
run: uv run --no-sync ruff check src tests
|
|
53
39
|
|
|
54
40
|
- name: Run tests
|
|
55
|
-
run:
|
|
41
|
+
run: uv run --no-sync python -m pytest
|
|
56
42
|
|
|
57
43
|
- name: Build distribution artifacts
|
|
58
44
|
run: |
|
|
@@ -60,7 +46,7 @@ jobs:
|
|
|
60
46
|
uv build --no-sources
|
|
61
47
|
|
|
62
48
|
- name: Check distribution metadata
|
|
63
|
-
run:
|
|
49
|
+
run: uv run --no-sync twine check dist/*
|
|
64
50
|
|
|
65
51
|
- name: Upload distribution artifacts
|
|
66
52
|
uses: actions/upload-artifact@v6
|
|
@@ -31,28 +31,14 @@ jobs:
|
|
|
31
31
|
- name: Set up Python
|
|
32
32
|
run: uv python install 3.11
|
|
33
33
|
|
|
34
|
-
- name:
|
|
35
|
-
run: uv
|
|
34
|
+
- name: Install locked dependencies
|
|
35
|
+
run: uv sync --locked --extra dev --python 3.11
|
|
36
36
|
|
|
37
|
-
- name:
|
|
38
|
-
run:
|
|
39
|
-
python3 - <<'PY'
|
|
40
|
-
from pathlib import Path
|
|
41
|
-
import tomllib
|
|
42
|
-
|
|
43
|
-
pyproject = tomllib.loads(Path("pyproject.toml").read_text())
|
|
44
|
-
dependencies = pyproject["project"]["dependencies"]
|
|
45
|
-
dev_dependencies = pyproject["project"]["optional-dependencies"]["dev"]
|
|
46
|
-
Path("requirements-ci.txt").write_text(
|
|
47
|
-
"\n".join([*dependencies, *dev_dependencies, "twine"]) + "\n",
|
|
48
|
-
encoding="utf-8",
|
|
49
|
-
)
|
|
50
|
-
PY
|
|
51
|
-
uv pip install --python .venv/bin/python -r requirements-ci.txt
|
|
52
|
-
uv pip install --python .venv/bin/python --no-deps --editable .
|
|
37
|
+
- name: Run Ruff
|
|
38
|
+
run: uv run --no-sync ruff check src tests
|
|
53
39
|
|
|
54
40
|
- name: Run tests
|
|
55
|
-
run:
|
|
41
|
+
run: uv run --no-sync python -m pytest
|
|
56
42
|
|
|
57
43
|
- name: Build distribution artifacts
|
|
58
44
|
run: |
|
|
@@ -60,7 +46,7 @@ jobs:
|
|
|
60
46
|
uv build --no-sources
|
|
61
47
|
|
|
62
48
|
- name: Check distribution metadata
|
|
63
|
-
run:
|
|
49
|
+
run: uv run --no-sync twine check dist/*
|
|
64
50
|
|
|
65
51
|
- name: Upload distribution artifacts
|
|
66
52
|
uses: actions/upload-artifact@v6
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: deep-learning-core
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.26
|
|
4
4
|
Summary: Reusable deep learning framework core.
|
|
5
5
|
Project-URL: Homepage, https://github.com/Blazkowiz47/dl-core
|
|
6
|
-
Project-URL: Documentation, https://github.com/Blazkowiz47/dl-core/tree/
|
|
6
|
+
Project-URL: Documentation, https://github.com/Blazkowiz47/dl-core/tree/master/readme
|
|
7
7
|
Project-URL: Repository, https://github.com/Blazkowiz47/dl-core
|
|
8
8
|
Project-URL: Issues, https://github.com/Blazkowiz47/dl-core/issues
|
|
9
9
|
Author-email: blazkowiz47 <sushrutpatwardhan@gmail.com>
|
|
@@ -42,8 +42,10 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
42
42
|
Classifier: Programming Language :: Python :: 3.12
|
|
43
43
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
44
44
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
45
|
+
Classifier: Typing :: Typed
|
|
45
46
|
Requires-Python: >=3.10
|
|
46
47
|
Requires-Dist: albumentations
|
|
48
|
+
Requires-Dist: gymnasium<2,>=1.3
|
|
47
49
|
Requires-Dist: numpy
|
|
48
50
|
Requires-Dist: opencv-python-headless
|
|
49
51
|
Requires-Dist: psutil
|
|
@@ -55,7 +57,10 @@ Requires-Dist: tqdm
|
|
|
55
57
|
Provides-Extra: azure
|
|
56
58
|
Requires-Dist: deep-learning-azure<0.1,>=0.0.18; extra == 'azure'
|
|
57
59
|
Provides-Extra: dev
|
|
58
|
-
Requires-Dist: pytest; extra == 'dev'
|
|
60
|
+
Requires-Dist: pytest-cov>=5.0; extra == 'dev'
|
|
61
|
+
Requires-Dist: pytest>=8.0; extra == 'dev'
|
|
62
|
+
Requires-Dist: ruff>=0.12; extra == 'dev'
|
|
63
|
+
Requires-Dist: twine>=6.0; extra == 'dev'
|
|
59
64
|
Provides-Extra: mlflow
|
|
60
65
|
Requires-Dist: deep-learning-mlflow<0.1,>=0.0.11; extra == 'mlflow'
|
|
61
66
|
Provides-Extra: wandb
|
|
@@ -71,7 +76,7 @@ across many experiment repositories. It is intended to be the public base
|
|
|
71
76
|
package, while optional integrations such as Azure are layered on through
|
|
72
77
|
extras and companion extension packages.
|
|
73
78
|
|
|
74
|
-
Current release: `deep-learning-core==0.0.
|
|
79
|
+
Current release: `deep-learning-core==0.0.26`.
|
|
75
80
|
|
|
76
81
|
Compatible companion package floors:
|
|
77
82
|
|
|
@@ -79,31 +84,30 @@ Compatible companion package floors:
|
|
|
79
84
|
- `deep-learning-mlflow>=0.0.11,<0.1`
|
|
80
85
|
- `deep-learning-wandb>=0.0.12,<0.1`
|
|
81
86
|
|
|
82
|
-
## What's New?
|
|
83
|
-
|
|
84
|
-
-
|
|
85
|
-
|
|
86
|
-
- `
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
- `
|
|
90
|
-
|
|
91
|
-
- `
|
|
92
|
-
|
|
93
|
-
-
|
|
94
|
-
|
|
95
|
-
- `
|
|
96
|
-
|
|
97
|
-
- `
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
-
|
|
103
|
-
|
|
104
|
-
-
|
|
105
|
-
|
|
106
|
-
- `artifacts/sweeps/<sweep_name>/<run_name>/...`
|
|
87
|
+
## What's New in 0.0.26?
|
|
88
|
+
|
|
89
|
+
- Gymnasium-compatible environments can now be registered, discovered, and
|
|
90
|
+
created through a first-class environment contract
|
|
91
|
+
- `RLTrainer` provides an episode-based lifecycle, deterministic evaluation,
|
|
92
|
+
RL callback hooks, and resumable algorithm checkpoints alongside
|
|
93
|
+
`EpochTrainer`
|
|
94
|
+
- `QLearningTrainer` adds tabular epsilon-greedy learning for finite discrete
|
|
95
|
+
Gymnasium environments
|
|
96
|
+
- `DQNTrainer` adds replay-based discrete control with target networks,
|
|
97
|
+
Double-DQN targets, and a built-in MLP Q-network
|
|
98
|
+
- `PPOTrainer` adds clipped on-policy optimization, GAE, and discrete or
|
|
99
|
+
bounded-continuous actor-critic policies
|
|
100
|
+
- `SACTrainer` adds replay-based bounded-continuous control with twin critics,
|
|
101
|
+
Polyak targets, and optional automatic entropy tuning
|
|
102
|
+
- `dl-run --validate-only` now resolves RL environments, models, optimizers,
|
|
103
|
+
and callbacks without resetting or stepping an environment
|
|
104
|
+
- `dl-core add trainer MyPolicy --base rltrainer` scaffolds custom algorithms
|
|
105
|
+
against the episode-oriented lifecycle
|
|
106
|
+
- the local metric callback records RL episode, update, and evaluation metrics
|
|
107
|
+
- local component loading now cleans up registrations and import paths between
|
|
108
|
+
projects, while registry lookups prefer the most specific matching prefix
|
|
109
|
+
- configuration validation rejects malformed root and component structures
|
|
110
|
+
more consistently
|
|
107
111
|
|
|
108
112
|
## Install
|
|
109
113
|
|
|
@@ -213,7 +217,9 @@ that repository, run `uv sync`, then run:
|
|
|
213
217
|
uv run dl-run --config configs/base.yaml --validate-only
|
|
214
218
|
uv run dl-inspect-dataset --config configs/base.yaml
|
|
215
219
|
uv run dl-smoke --config configs/base.yaml
|
|
216
|
-
|
|
220
|
+
cp configs/base.yaml experiments/debug.yaml
|
|
221
|
+
uv run dl-run --config experiments/debug.yaml --validate-only
|
|
222
|
+
uv run dl-run --config experiments/debug.yaml
|
|
217
223
|
uv run dl-sweep experiments/lr_sweep.yaml --preview
|
|
218
224
|
uv run dl-sweep experiments/lr_sweep.yaml --only "*seed_2025*"
|
|
219
225
|
uv run dl-sweep experiments/lr_sweep.yaml
|
|
@@ -252,10 +258,12 @@ Then:
|
|
|
252
258
|
- `scripts/temporary/test_model.py`
|
|
253
259
|
- `experiments/lr_sweep.yaml`
|
|
254
260
|
- `AGENTS.md`
|
|
261
|
+
- `CLAUDE.md`
|
|
255
262
|
2. implement the generated dataset wrapper under `src/datasets/my_exp.py`
|
|
256
263
|
3. adjust `configs/base.yaml` so it points at the dataset/model/trainer you want
|
|
257
|
-
and set the
|
|
258
|
-
`deterministic`)
|
|
264
|
+
and set the shared reproducibility defaults you need (`seed` and
|
|
265
|
+
`deterministic`). Keep concrete single-run configs in `experiments/`,
|
|
266
|
+
including debug and baseline runs.
|
|
259
267
|
4. smoke-check the generated helpers:
|
|
260
268
|
|
|
261
269
|
```bash
|
|
@@ -269,7 +277,9 @@ uv run python scripts/temporary/test_model.py
|
|
|
269
277
|
uv run dl-run --config configs/base.yaml --validate-only
|
|
270
278
|
uv run dl-inspect-dataset --config configs/base.yaml
|
|
271
279
|
uv run dl-smoke --config configs/base.yaml
|
|
272
|
-
|
|
280
|
+
cp configs/base.yaml experiments/debug.yaml
|
|
281
|
+
uv run dl-run --config experiments/debug.yaml --validate-only
|
|
282
|
+
uv run dl-run --config experiments/debug.yaml
|
|
273
283
|
```
|
|
274
284
|
|
|
275
285
|
Once that works, move on to:
|
|
@@ -373,6 +383,7 @@ Common local component scaffolds:
|
|
|
373
383
|
```bash
|
|
374
384
|
uv run dl-core add model MyResNet
|
|
375
385
|
uv run dl-core add trainer MyTrainer
|
|
386
|
+
uv run dl-core add trainer MyPolicy --base rltrainer
|
|
376
387
|
uv run dl-core add callback MyMetrics
|
|
377
388
|
uv run dl-core add metric_manager MyManager
|
|
378
389
|
uv run dl-core add sampler MySampler
|
|
@@ -507,7 +518,7 @@ provided through `dl-azure`.
|
|
|
507
518
|
|
|
508
519
|
## Documentation
|
|
509
520
|
|
|
510
|
-
- [Documentation Index](https://github.com/Blazkowiz47/dl-core/tree/
|
|
521
|
+
- [Documentation Index](https://github.com/Blazkowiz47/dl-core/tree/master/readme)
|
|
511
522
|
- [GitHub Repository](https://github.com/Blazkowiz47/dl-core)
|
|
512
523
|
|
|
513
524
|
## License
|
|
@@ -518,5 +529,7 @@ MIT. See [LICENSE](LICENSE).
|
|
|
518
529
|
|
|
519
530
|
```bash
|
|
520
531
|
uv run --extra dev pytest
|
|
532
|
+
uv run --extra dev ruff check src tests
|
|
521
533
|
uv run python -m compileall src/dl_core
|
|
534
|
+
uv build --no-sources
|
|
522
535
|
```
|
|
@@ -7,7 +7,7 @@ across many experiment repositories. It is intended to be the public base
|
|
|
7
7
|
package, while optional integrations such as Azure are layered on through
|
|
8
8
|
extras and companion extension packages.
|
|
9
9
|
|
|
10
|
-
Current release: `deep-learning-core==0.0.
|
|
10
|
+
Current release: `deep-learning-core==0.0.26`.
|
|
11
11
|
|
|
12
12
|
Compatible companion package floors:
|
|
13
13
|
|
|
@@ -15,31 +15,30 @@ Compatible companion package floors:
|
|
|
15
15
|
- `deep-learning-mlflow>=0.0.11,<0.1`
|
|
16
16
|
- `deep-learning-wandb>=0.0.12,<0.1`
|
|
17
17
|
|
|
18
|
-
## What's New?
|
|
19
|
-
|
|
20
|
-
-
|
|
21
|
-
|
|
22
|
-
- `
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
- `
|
|
26
|
-
|
|
27
|
-
- `
|
|
28
|
-
|
|
29
|
-
-
|
|
30
|
-
|
|
31
|
-
- `
|
|
32
|
-
|
|
33
|
-
- `
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
-
|
|
39
|
-
|
|
40
|
-
-
|
|
41
|
-
|
|
42
|
-
- `artifacts/sweeps/<sweep_name>/<run_name>/...`
|
|
18
|
+
## What's New in 0.0.26?
|
|
19
|
+
|
|
20
|
+
- Gymnasium-compatible environments can now be registered, discovered, and
|
|
21
|
+
created through a first-class environment contract
|
|
22
|
+
- `RLTrainer` provides an episode-based lifecycle, deterministic evaluation,
|
|
23
|
+
RL callback hooks, and resumable algorithm checkpoints alongside
|
|
24
|
+
`EpochTrainer`
|
|
25
|
+
- `QLearningTrainer` adds tabular epsilon-greedy learning for finite discrete
|
|
26
|
+
Gymnasium environments
|
|
27
|
+
- `DQNTrainer` adds replay-based discrete control with target networks,
|
|
28
|
+
Double-DQN targets, and a built-in MLP Q-network
|
|
29
|
+
- `PPOTrainer` adds clipped on-policy optimization, GAE, and discrete or
|
|
30
|
+
bounded-continuous actor-critic policies
|
|
31
|
+
- `SACTrainer` adds replay-based bounded-continuous control with twin critics,
|
|
32
|
+
Polyak targets, and optional automatic entropy tuning
|
|
33
|
+
- `dl-run --validate-only` now resolves RL environments, models, optimizers,
|
|
34
|
+
and callbacks without resetting or stepping an environment
|
|
35
|
+
- `dl-core add trainer MyPolicy --base rltrainer` scaffolds custom algorithms
|
|
36
|
+
against the episode-oriented lifecycle
|
|
37
|
+
- the local metric callback records RL episode, update, and evaluation metrics
|
|
38
|
+
- local component loading now cleans up registrations and import paths between
|
|
39
|
+
projects, while registry lookups prefer the most specific matching prefix
|
|
40
|
+
- configuration validation rejects malformed root and component structures
|
|
41
|
+
more consistently
|
|
43
42
|
|
|
44
43
|
## Install
|
|
45
44
|
|
|
@@ -149,7 +148,9 @@ that repository, run `uv sync`, then run:
|
|
|
149
148
|
uv run dl-run --config configs/base.yaml --validate-only
|
|
150
149
|
uv run dl-inspect-dataset --config configs/base.yaml
|
|
151
150
|
uv run dl-smoke --config configs/base.yaml
|
|
152
|
-
|
|
151
|
+
cp configs/base.yaml experiments/debug.yaml
|
|
152
|
+
uv run dl-run --config experiments/debug.yaml --validate-only
|
|
153
|
+
uv run dl-run --config experiments/debug.yaml
|
|
153
154
|
uv run dl-sweep experiments/lr_sweep.yaml --preview
|
|
154
155
|
uv run dl-sweep experiments/lr_sweep.yaml --only "*seed_2025*"
|
|
155
156
|
uv run dl-sweep experiments/lr_sweep.yaml
|
|
@@ -188,10 +189,12 @@ Then:
|
|
|
188
189
|
- `scripts/temporary/test_model.py`
|
|
189
190
|
- `experiments/lr_sweep.yaml`
|
|
190
191
|
- `AGENTS.md`
|
|
192
|
+
- `CLAUDE.md`
|
|
191
193
|
2. implement the generated dataset wrapper under `src/datasets/my_exp.py`
|
|
192
194
|
3. adjust `configs/base.yaml` so it points at the dataset/model/trainer you want
|
|
193
|
-
and set the
|
|
194
|
-
`deterministic`)
|
|
195
|
+
and set the shared reproducibility defaults you need (`seed` and
|
|
196
|
+
`deterministic`). Keep concrete single-run configs in `experiments/`,
|
|
197
|
+
including debug and baseline runs.
|
|
195
198
|
4. smoke-check the generated helpers:
|
|
196
199
|
|
|
197
200
|
```bash
|
|
@@ -205,7 +208,9 @@ uv run python scripts/temporary/test_model.py
|
|
|
205
208
|
uv run dl-run --config configs/base.yaml --validate-only
|
|
206
209
|
uv run dl-inspect-dataset --config configs/base.yaml
|
|
207
210
|
uv run dl-smoke --config configs/base.yaml
|
|
208
|
-
|
|
211
|
+
cp configs/base.yaml experiments/debug.yaml
|
|
212
|
+
uv run dl-run --config experiments/debug.yaml --validate-only
|
|
213
|
+
uv run dl-run --config experiments/debug.yaml
|
|
209
214
|
```
|
|
210
215
|
|
|
211
216
|
Once that works, move on to:
|
|
@@ -309,6 +314,7 @@ Common local component scaffolds:
|
|
|
309
314
|
```bash
|
|
310
315
|
uv run dl-core add model MyResNet
|
|
311
316
|
uv run dl-core add trainer MyTrainer
|
|
317
|
+
uv run dl-core add trainer MyPolicy --base rltrainer
|
|
312
318
|
uv run dl-core add callback MyMetrics
|
|
313
319
|
uv run dl-core add metric_manager MyManager
|
|
314
320
|
uv run dl-core add sampler MySampler
|
|
@@ -443,7 +449,7 @@ provided through `dl-azure`.
|
|
|
443
449
|
|
|
444
450
|
## Documentation
|
|
445
451
|
|
|
446
|
-
- [Documentation Index](https://github.com/Blazkowiz47/dl-core/tree/
|
|
452
|
+
- [Documentation Index](https://github.com/Blazkowiz47/dl-core/tree/master/readme)
|
|
447
453
|
- [GitHub Repository](https://github.com/Blazkowiz47/dl-core)
|
|
448
454
|
|
|
449
455
|
## License
|
|
@@ -454,5 +460,7 @@ MIT. See [LICENSE](LICENSE).
|
|
|
454
460
|
|
|
455
461
|
```bash
|
|
456
462
|
uv run --extra dev pytest
|
|
463
|
+
uv run --extra dev ruff check src tests
|
|
457
464
|
uv run python -m compileall src/dl_core
|
|
465
|
+
uv build --no-sources
|
|
458
466
|
```
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "deep-learning-core"
|
|
7
|
-
version = "0.0.
|
|
7
|
+
version = "0.0.26"
|
|
8
8
|
description = "Reusable deep learning framework core."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -34,9 +34,11 @@ classifiers = [
|
|
|
34
34
|
"Programming Language :: Python :: 3.12",
|
|
35
35
|
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
36
36
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
37
|
+
"Typing :: Typed",
|
|
37
38
|
]
|
|
38
39
|
dependencies = [
|
|
39
40
|
"albumentations",
|
|
41
|
+
"gymnasium>=1.3,<2",
|
|
40
42
|
"numpy",
|
|
41
43
|
"opencv-python-headless",
|
|
42
44
|
"psutil",
|
|
@@ -58,12 +60,15 @@ wandb = [
|
|
|
58
60
|
"deep-learning-wandb>=0.0.12,<0.1",
|
|
59
61
|
]
|
|
60
62
|
dev = [
|
|
61
|
-
"pytest",
|
|
63
|
+
"pytest>=8.0",
|
|
64
|
+
"pytest-cov>=5.0",
|
|
65
|
+
"ruff>=0.12",
|
|
66
|
+
"twine>=6.0",
|
|
62
67
|
]
|
|
63
68
|
|
|
64
69
|
[project.urls]
|
|
65
70
|
Homepage = "https://github.com/Blazkowiz47/dl-core"
|
|
66
|
-
Documentation = "https://github.com/Blazkowiz47/dl-core/tree/
|
|
71
|
+
Documentation = "https://github.com/Blazkowiz47/dl-core/tree/master/readme"
|
|
67
72
|
Repository = "https://github.com/Blazkowiz47/dl-core"
|
|
68
73
|
Issues = "https://github.com/Blazkowiz47/dl-core/issues"
|
|
69
74
|
|
|
@@ -81,11 +86,6 @@ dl-smoke = "dl_core.smoke:main"
|
|
|
81
86
|
dl-sweep = "dl_core.sweep.runner:main"
|
|
82
87
|
dl-train-worker = "dl_core.worker:main"
|
|
83
88
|
|
|
84
|
-
[tool.uv.sources]
|
|
85
|
-
"deep-learning-azure" = { path = "../dl-azure", editable = true }
|
|
86
|
-
"deep-learning-mlflow" = { path = "../dl-mlflow", editable = true }
|
|
87
|
-
"deep-learning-wandb" = { path = "../dl-wandb", editable = true }
|
|
88
|
-
|
|
89
89
|
[tool.hatch.build.targets.sdist]
|
|
90
90
|
exclude = [
|
|
91
91
|
"/.tmp-ci-venv",
|
|
@@ -4,7 +4,7 @@ This documentation is split into quick references, workflow guides, and
|
|
|
4
4
|
technical notes. The goal is the same as in the original framework repo, but
|
|
5
5
|
focused on the extracted package and the experiment-repo workflow around it.
|
|
6
6
|
|
|
7
|
-
Current public release: `deep-learning-core==0.0.
|
|
7
|
+
Current public release: `deep-learning-core==0.0.26`.
|
|
8
8
|
|
|
9
9
|
## Companion Packages
|
|
10
10
|
|
|
@@ -43,6 +43,7 @@ mechanics.
|
|
|
43
43
|
- [Sweep System](./technical/3_sweep_system.md)
|
|
44
44
|
- [Local Component Loading](./technical/4_local_component_loading.md)
|
|
45
45
|
- [Testing](./technical/5_testing.md)
|
|
46
|
+
- [Reinforcement Learning](./technical/6_reinforcement_learning.md)
|
|
46
47
|
|
|
47
48
|
## Common Tasks
|
|
48
49
|
|
|
@@ -67,11 +68,15 @@ uv run dl-init --root-dir .
|
|
|
67
68
|
### Run a local training job
|
|
68
69
|
|
|
69
70
|
```bash
|
|
70
|
-
uv run dl-run --config configs/base.yaml
|
|
71
|
+
uv run dl-run --config configs/base.yaml --validate-only
|
|
72
|
+
cp configs/base.yaml experiments/debug.yaml
|
|
73
|
+
uv run dl-run --config experiments/debug.yaml --validate-only
|
|
74
|
+
uv run dl-run --config experiments/debug.yaml
|
|
71
75
|
```
|
|
72
76
|
|
|
73
77
|
Generated `configs/base.yaml` files include root-level `seed` and
|
|
74
|
-
`deterministic` defaults so reproducibility can be controlled explicitly.
|
|
78
|
+
`deterministic` defaults so reproducibility can be controlled explicitly. Keep
|
|
79
|
+
concrete single-run configs under `experiments/`, including debug runs.
|
|
75
80
|
|
|
76
81
|
### Smoke-check generated dataset and model helpers
|
|
77
82
|
|
|
@@ -54,7 +54,7 @@ Inside the generated repository:
|
|
|
54
54
|
```bash
|
|
55
55
|
uv add --editable ../dl-core
|
|
56
56
|
uv sync
|
|
57
|
-
uv run dl-run --config configs/base.yaml
|
|
57
|
+
uv run dl-run --config configs/base.yaml --validate-only
|
|
58
58
|
```
|
|
59
59
|
|
|
60
60
|
If that succeeds, your local package plus experiment repo integration is
|
|
@@ -32,6 +32,8 @@ uv run dl-init --name my-exp --root-dir . --with-mlflow
|
|
|
32
32
|
|
|
33
33
|
```text
|
|
34
34
|
my-exp/
|
|
35
|
+
AGENTS.md
|
|
36
|
+
CLAUDE.md
|
|
35
37
|
pyproject.toml
|
|
36
38
|
configs/
|
|
37
39
|
base.yaml
|
|
@@ -78,6 +80,8 @@ By default:
|
|
|
78
80
|
- `configs/presets.yaml`
|
|
79
81
|
- `experiments/lr_sweep.yaml`
|
|
80
82
|
- `experiments/experiments.log`
|
|
83
|
+
- `AGENTS.md`
|
|
84
|
+
- `CLAUDE.md`
|
|
81
85
|
|
|
82
86
|
Start there before editing the wrapper classes. After updating the dataset or
|
|
83
87
|
model wrapper, use:
|
|
@@ -88,3 +92,8 @@ uv run python scripts/temporary/test_model.py
|
|
|
88
92
|
```
|
|
89
93
|
|
|
90
94
|
before committing to a full `dl-run`.
|
|
95
|
+
|
|
96
|
+
Use `configs/base.yaml` for reusable shared defaults. Before a real single run,
|
|
97
|
+
copy or derive it into a named file under `experiments/`, for example
|
|
98
|
+
`experiments/debug.yaml`, validate that concrete config, and run `dl-run`
|
|
99
|
+
against the `experiments/` file.
|
|
@@ -104,7 +104,9 @@ The core dataset bases are intended for different data shapes:
|
|
|
104
104
|
## Local Training
|
|
105
105
|
|
|
106
106
|
```bash
|
|
107
|
-
uv run dl-run --config configs/base.yaml
|
|
107
|
+
uv run dl-run --config configs/base.yaml --validate-only
|
|
108
|
+
cp configs/base.yaml experiments/debug.yaml
|
|
109
|
+
uv run dl-run --config experiments/debug.yaml
|
|
108
110
|
```
|
|
109
111
|
|
|
110
112
|
## Sweeps
|
|
@@ -73,7 +73,7 @@ scripts.
|
|
|
73
73
|
Runs a single local training job through the local executor.
|
|
74
74
|
|
|
75
75
|
```bash
|
|
76
|
-
uv run dl-run --config
|
|
76
|
+
uv run dl-run --config experiments/debug.yaml
|
|
77
77
|
```
|
|
78
78
|
|
|
79
79
|
Useful flags:
|
|
@@ -88,7 +88,8 @@ Notes:
|
|
|
88
88
|
- `--validate-only` now performs a lightweight preflight: it validates the
|
|
89
89
|
config, resolves the configured components, safely instantiates the dataset,
|
|
90
90
|
models, criterions, optimizer, and optional scheduler, then exits without
|
|
91
|
-
starting training
|
|
91
|
+
starting training. Malformed YAML roots and section types are reported as
|
|
92
|
+
validation errors instead of failing with an internal exception.
|
|
92
93
|
|
|
93
94
|
## `dl-smoke`
|
|
94
95
|
|
|
@@ -24,7 +24,9 @@ uv run python -m compileall src/dl_core
|
|
|
24
24
|
From a generated experiment repository:
|
|
25
25
|
|
|
26
26
|
```bash
|
|
27
|
-
uv run dl-run --config configs/base.yaml
|
|
27
|
+
uv run dl-run --config configs/base.yaml --validate-only
|
|
28
|
+
cp configs/base.yaml experiments/debug.yaml
|
|
29
|
+
uv run dl-run --config experiments/debug.yaml
|
|
28
30
|
uv run dl-sweep experiments/lr_sweep.yaml
|
|
29
31
|
```
|
|
30
32
|
|