- docs/adr/ADR-016: Full ruvector integration ADR with verified API details from source inspection (github.com/ruvnet/ruvector). Covers mincut, attn-mincut, temporal-tensor, solver, and attention at v2.0.4. - Cargo.toml: Add ruvector-mincut, ruvector-attn-mincut, ruvector-temporal- tensor, ruvector-solver, ruvector-attention = "2.0.4" to workspace deps and wifi-densepose-train crate deps. - metrics.rs: Add DynamicPersonMatcher wrapping ruvector_mincut::DynamicMinCut for subpolynomial O(n^1.5 log n) multi-frame person tracking; adds assignment_mincut() public entry point. - proof.rs, trainer.rs, model.rs, dataset.rs, subcarrier.rs: Agent improvements to full implementations (loss decrease verification, SHA-256 hash, LCG shuffle, ResNet18 backbone, MmFiDataset, linear interp). - tests: test_config, test_dataset, test_metrics, test_proof, training_bench all added/updated. 100+ tests pass with no-default-features. https://claude.ai/code/session_01BSBAQJ34SLkiJy4A8SoiL4
88 lines
2.0 KiB
TOML
88 lines
2.0 KiB
TOML
[package]
|
|
name = "wifi-densepose-train"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
authors = ["WiFi-DensePose Contributors"]
|
|
license = "MIT OR Apache-2.0"
|
|
description = "Training pipeline for WiFi-DensePose pose estimation"
|
|
keywords = ["wifi", "training", "pose-estimation", "deep-learning"]
|
|
|
|
[[bin]]
|
|
name = "train"
|
|
path = "src/bin/train.rs"
|
|
|
|
[[bin]]
|
|
name = "verify-training"
|
|
path = "src/bin/verify_training.rs"
|
|
required-features = ["tch-backend"]
|
|
|
|
[features]
|
|
default = []
|
|
tch-backend = ["tch"]
|
|
cuda = ["tch-backend"]
|
|
|
|
[dependencies]
|
|
# Internal crates
|
|
wifi-densepose-signal = { path = "../wifi-densepose-signal" }
|
|
wifi-densepose-nn = { path = "../wifi-densepose-nn" }
|
|
|
|
# Core
|
|
thiserror.workspace = true
|
|
anyhow.workspace = true
|
|
serde = { workspace = true, features = ["derive"] }
|
|
serde_json.workspace = true
|
|
|
|
# Tensor / math
|
|
ndarray.workspace = true
|
|
num-complex.workspace = true
|
|
num-traits.workspace = true
|
|
|
|
# PyTorch bindings (optional — only enabled by `tch-backend` feature)
|
|
tch = { workspace = true, optional = true }
|
|
|
|
# Graph algorithms (min-cut for optimal keypoint assignment)
|
|
petgraph.workspace = true
|
|
|
|
# ruvector integration (subpolynomial min-cut, sparse solvers, temporal compression, attention)
|
|
ruvector-mincut = { workspace = true }
|
|
ruvector-attn-mincut = { workspace = true }
|
|
ruvector-temporal-tensor = { workspace = true }
|
|
ruvector-solver = { workspace = true }
|
|
ruvector-attention = { workspace = true }
|
|
|
|
# Data loading
|
|
ndarray-npy.workspace = true
|
|
memmap2 = "0.9"
|
|
walkdir.workspace = true
|
|
|
|
# Serialization
|
|
csv.workspace = true
|
|
toml = "0.8"
|
|
|
|
# Logging / progress
|
|
tracing.workspace = true
|
|
tracing-subscriber.workspace = true
|
|
indicatif.workspace = true
|
|
|
|
# Async (subset of features needed by training pipeline)
|
|
tokio = { workspace = true, features = ["rt", "rt-multi-thread", "macros", "fs"] }
|
|
|
|
# Crypto (for proof hash)
|
|
sha2.workspace = true
|
|
|
|
# CLI
|
|
clap.workspace = true
|
|
|
|
# Time
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
|
|
[dev-dependencies]
|
|
criterion.workspace = true
|
|
proptest.workspace = true
|
|
tempfile = "3.10"
|
|
approx = "0.5"
|
|
|
|
[[bench]]
|
|
name = "training_bench"
|
|
harness = false
|