Tutorials#
Flagship Workflows#
These tutorials show the recommended public workflow for communication research results:
Blind DeepJSCC versus ideal digital separation over slow fading
Return a schema-v2 ONNX artifact and run an ordinary benchmark
Use them in order when developing a new learned communication method: first understand the baseline plot, then export a neutral training contract, then return the trained model through its declared artifact ABI.
End-to-End Communication Demonstrations#
DeepJSCC vs. capacity-matched JPEG over AWGN is a compact fixed-bandwidth implementation and training check.
Blind DeepJSCC versus ideal digital separation over slow fading adds a no-CSI outage regime and a bandwidth sweep for research-facing analysis.
Physical-Layer Demonstrations#
Each page opens with one copyable CLI training summary, then gives the equivalent UI selections, bundle path, trainer details, fair benchmark methods, result views, and publication command:
Run the Kodak Development Benchmark#
This experimental, unfrozen image-reconstruction pack includes a pretrained CompressAI baseline. It is a source-checkout workflow because the benchmark pack and recipes are repository assets; the project has not yet been published on PyPI. A cold run downloads the Kodak images and pretrained checkpoint, may take several minutes on CPU, and requires the researcher to confirm the applicable dataset and model rights. Run the block from the repository root. The result is development evidence, not publication evidence.
uv sync --extra compressai
uv run noema benchmark validate benchmarks/benchmark_v1/kodak_image_reconstruction_v1.yaml
uv run noema benchmark run benchmarks/benchmark_v1/kodak_image_reconstruction_v1.yaml
uv run noema benchmark results
Open the generated .noema/benchmarks/<result_id>/summary.md and metrics.csv.
Add an External Codec#
uv run noema adapter scaffold adapters/my_codec --name my_codec --kind bits
uv run noema adapter validate adapters/my_codec/noema_adapter.yaml
Edit adapters/my_codec/adapter.py, then create a recipe that uses
model.my_codec_encode_bits and model.my_codec_decode_bits in the canonical bit spine.
Add an External Metric or Task Dataset#
uv run noema adapter scaffold adapters/my_metric --name my_metric --kind classification_metric
uv run noema adapter scaffold adapters/my_dataset --name my_dataset --kind classification_dataset
For a complete example:
uv run noema --adapter examples/adapters/classification_task \
benchmark run examples/benchmarks/external_classification_adapter_smoke.yaml
Interpret a Manifest#
After any recipe run:
uv run noema runs list
uv run noema runs manifest <run_id>
Look for:
recipe.sha256: exact recipe identity;operation_contracts: operation versions and typed input/output contracts;environment: Python, package, native extension, and git evidence;seed_policy: deterministic seed derivation;artifacts: output paths, hashes, dtype, shape, and metadata.
Reproduce a Reported Table#
Check the reported benchmark ID/version.
Validate the same benchmark pack.
Register the submitted adapter, if any.
Run the submitted recipe or benchmark pack.
Compare
metrics.csv,recipes.csv, and recipe SHA-256 values.Validate the submission bundle with
noema submission validate.