| { |
| "manifest_version": 1, |
| "package_version": "1.0", |
| "family": "rvq", |
| "method": "ai", |
| "modality": "ecg", |
| "experiment_id": "ecg-rvq-8x", |
| "run_name": "ecg_rvq_256hz_08x_golden", |
| "compression_ratio": 8, |
| "spec": "codec_spec.json", |
| "scorecard": "scorecard.json", |
| "checksums": "checksums.json", |
| "model_name": "ecg_rvq_256hz_08x_golden", |
| "model_version": "1.0", |
| "quantization": "INT8", |
| "io_type": "int8", |
| "artifacts": { |
| "encoder_tflite": "encoder.tflite", |
| "encoder_header": "encoder.h", |
| "encoder_float32_tflite": "encoder_float32.tflite", |
| "encoder_fp16_tflite": "encoder_fp16.tflite", |
| "encoder_fp16_header": "encoder_fp16.h", |
| "encoder_int16x8_tflite": "encoder_int16x8.tflite", |
| "encoder_int16x8_header": "encoder_int16x8.h", |
| "encoder_keras": "encoder.keras", |
| "decoder_keras": "decoder.keras", |
| "decoder_float32_tflite": "decoder_float32.tflite", |
| "decoder_int8_tflite": "decoder.tflite", |
| "decoder_int8_header": "decoder.h", |
| "codebook_npz": "codebook.npz", |
| "codebook_header": "codebook.h", |
| "sample_data_npz": "sample_data.npz", |
| "reference_vectors": "reference_vectors.npz", |
| "quantization_report": "quantization_report.json", |
| "model_card": "model_card.json", |
| "scorecard": "scorecard.json", |
| "codec_spec": "codec_spec.json", |
| "manifest": "deploy_manifest.json", |
| "checksums": "checksums.json", |
| "readme": "README.md", |
| "demo_recordings": "demo_recordings.npz", |
| "demo_recordings_manifest": "demo_recordings_manifest.json" |
| }, |
| "encoder": { |
| "tflite": "encoder_float32.tflite", |
| "header": "encoder.h", |
| "default_variant": "float32", |
| "default_tflite": "encoder_float32.tflite", |
| "float32_tflite": "encoder_float32.tflite", |
| "fp16_tflite": "encoder_fp16.tflite", |
| "fp16_header": "encoder_fp16.h", |
| "int16x8_tflite": "encoder_int16x8.tflite", |
| "int16x8_header": "encoder_int16x8.h", |
| "int8_tflite": "encoder.tflite", |
| "int8_header": "encoder.h", |
| "keras": "encoder.keras", |
| "input_shape": [ |
| null, |
| 1, |
| 512, |
| 1 |
| ], |
| "output_shape": [ |
| null, |
| 1, |
| 64, |
| 16 |
| ] |
| }, |
| "decoder": { |
| "keras": "decoder.keras", |
| "float32_tflite": "decoder_float32.tflite", |
| "int8_tflite": "decoder.tflite", |
| "int8_header": "decoder.h", |
| "input_shape": [ |
| null, |
| 1, |
| 64, |
| 16 |
| ], |
| "output_shape": [ |
| null, |
| 1, |
| 512, |
| 1 |
| ] |
| }, |
| "codebook": { |
| "npz": "codebook.npz", |
| "header": "codebook.h", |
| "num_levels": 4, |
| "num_embeddings": 256, |
| "embedding_dim": 16 |
| }, |
| "sample_data": { |
| "npz": "sample_data.npz", |
| "num_samples": 10, |
| "arrays": [ |
| "inputs", |
| "targets", |
| "reconstructions" |
| ] |
| }, |
| "quantization_validation": { |
| "report": "quantization_report.json", |
| "passed": true, |
| "calibration_frames": 4096, |
| "validation_frames": 2048, |
| "disjoint": true |
| }, |
| "demo_recordings": { |
| "npz": "demo_recordings.npz", |
| "manifest": "demo_recordings_manifest.json", |
| "num_recordings": 10, |
| "sample_rate": 256, |
| "duration_seconds": 30.0 |
| } |
| } |