{
  "$schema": "https://ambiqai.github.io/helia-ui/schema/reference-model-1.json",
  "generatedFrom": {
    "sourceCommit": "f341fb11f7f5d77a4974ba8273c4cd55d67c21f0",
    "tool": "pyref",
    "version": "1.7.3"
  },
  "language": "python",
  "modules": [
    {
      "description": "",
      "name": "vq_autoencoder",
      "path": "helia_edge.trainers.vq_autoencoder",
      "submodules": [],
      "summary": "",
      "symbols": [
        {
          "description": "Convenience wrapper around (encoder -> VectorQuantizer -> decoder).\n\n- Supports extra reconstruction-side losses and metrics.\n- Can return discrete code indices from the VQ bottleneck.\n- Exposes VQ layer metrics alongside base model metrics.",
          "examples": [],
          "id": "helia_edge.trainers.vq_autoencoder.VQAutoencoder",
          "kind": "class",
          "language": "python",
          "members": [
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.trainers.vq_autoencoder.VQAutoencoder.encoder",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "encoder",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "encoder = encoder",
              "source": {
                "line": 26,
                "path": "helia_edge/trainers/vq_autoencoder.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/trainers/vq_autoencoder.py#L26"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.trainers.vq_autoencoder.VQAutoencoder.vq",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "vq",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "vq = vq",
              "source": {
                "line": 27,
                "path": "helia_edge/trainers/vq_autoencoder.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/trainers/vq_autoencoder.py#L27"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.trainers.vq_autoencoder.VQAutoencoder.decoder",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "decoder",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "decoder = decoder",
              "source": {
                "line": 28,
                "path": "helia_edge/trainers/vq_autoencoder.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/trainers/vq_autoencoder.py#L28"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.trainers.vq_autoencoder.VQAutoencoder.metrics",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "metrics",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "metrics",
              "source": {
                "line": 152,
                "path": "helia_edge/trainers/vq_autoencoder.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/trainers/vq_autoencoder.py#L152"
              },
              "summary": ""
            },
            {
              "description": "Run encoder -> VQ bottleneck -> decoder.",
              "examples": [],
              "id": "helia_edge.trainers.vq_autoencoder.VQAutoencoder.call",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "call",
              "params": [
                {
                  "description": "Input batch.",
                  "name": "x",
                  "type": "keras.KerasTensor"
                },
                {
                  "default": "False",
                  "description": "Whether to run in training mode (affects encoder/decoder/VQ).",
                  "name": "training",
                  "type": "bool"
                },
                {
                  "default": "False",
                  "description": "If True, also return discrete code indices.",
                  "name": "return_indices",
                  "type": "bool"
                }
              ],
              "raises": [],
              "returns": [
                {
                  "description": "Reconstruction, optionally with indices.",
                  "type": "keras.KerasTensor | tuple[keras.KerasTensor, keras.KerasTensor]"
                }
              ],
              "signature": "call(\n    x: keras.KerasTensor,\n    training: bool = False,\n    return_indices: bool = False,\n) -> keras.KerasTensor | tuple[keras.KerasTensor, keras.KerasTensor]",
              "source": {
                "line": 35,
                "path": "helia_edge/trainers/vq_autoencoder.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/trainers/vq_autoencoder.py#L35"
              },
              "summary": "Run encoder -> VQ bottleneck -> decoder."
            },
            {
              "description": "Compile with optional extra losses/metrics.",
              "examples": [],
              "id": "helia_edge.trainers.vq_autoencoder.VQAutoencoder.compile",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "compile",
              "params": [
                {
                  "description": "Keras optimizer",
                  "name": "optimizer",
                  "type": "keras.optimizers.Optimizer"
                },
                {
                  "default": "None",
                  "description": "base reconstruction loss (e.g., keras.losses.MeanSquaredError())",
                  "name": "loss",
                  "type": "keras.losses.Loss | None"
                },
                {
                  "default": "None",
                  "description": "standard Keras metrics (Metric instances or callables)",
                  "name": "metrics",
                  "type": "list | None"
                },
                {
                  "default": "None",
                  "description": "list[Callable(y_true, y_pred) -> scalar]",
                  "name": "extra_losses",
                  "type": "list | None"
                },
                {
                  "default": "None",
                  "description": "list of Metric OR Callable(y_true, y_pred) -> scalar",
                  "name": "extra_metrics",
                  "type": "list | None"
                }
              ],
              "raises": [],
              "returns": [],
              "signature": "compile(\n    optimizer: keras.optimizers.Optimizer,\n    loss: keras.losses.Loss | None = None,\n    metrics: list | None = None,\n    extra_losses: list | None = None,\n    extra_metrics: list | None = None,\n    **kwargs={},\n)",
              "source": {
                "line": 57,
                "path": "helia_edge/trainers/vq_autoencoder.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/trainers/vq_autoencoder.py#L57"
              },
              "summary": "Compile with optional extra losses/metrics."
            },
            {
              "description": "Compute total loss = recon + extra losses + layer-added losses.",
              "examples": [],
              "id": "helia_edge.trainers.vq_autoencoder.VQAutoencoder.compute_loss",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "compute_loss",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "compute_loss(x=None, y=None, y_pred=None, sample_weight=None, allow_empty=False)",
              "source": {
                "line": 92,
                "path": "helia_edge/trainers/vq_autoencoder.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/trainers/vq_autoencoder.py#L92"
              },
              "summary": "Compute total loss = recon + extra losses + layer-added losses."
            },
            {
              "description": "Return serialized config for saving/loading.",
              "examples": [],
              "id": "helia_edge.trainers.vq_autoencoder.VQAutoencoder.get_config",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "get_config",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "get_config()",
              "source": {
                "line": 115,
                "path": "helia_edge/trainers/vq_autoencoder.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/trainers/vq_autoencoder.py#L115"
              },
              "summary": "Return serialized config for saving/loading."
            },
            {
              "description": "`classmethod`\n\nRecreate model from serialized config.",
              "examples": [],
              "id": "helia_edge.trainers.vq_autoencoder.VQAutoencoder.from_config",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "from_config",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "from_config(config, custom_objects=None)",
              "source": {
                "line": 127,
                "path": "helia_edge/trainers/vq_autoencoder.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/trainers/vq_autoencoder.py#L127"
              },
              "summary": "Recreate model from serialized config."
            },
            {
              "description": "Update compiled metrics plus extra metric trackers.",
              "examples": [],
              "id": "helia_edge.trainers.vq_autoencoder.VQAutoencoder.compute_metrics",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "compute_metrics",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "compute_metrics(x, y, y_pred, sample_weight=None)",
              "source": {
                "line": 139,
                "path": "helia_edge/trainers/vq_autoencoder.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/trainers/vq_autoencoder.py#L139"
              },
              "summary": "Update compiled metrics plus extra metric trackers."
            }
          ],
          "name": "VQAutoencoder",
          "params": [
            {
              "description": "Encoder model producing continuous latents.",
              "name": "encoder",
              "type": "keras.Model"
            },
            {
              "description": "VectorQuantizer layer that discretizes latents.",
              "name": "vq",
              "type": "VectorQuantizer"
            },
            {
              "description": "Decoder model mapping bottleneck outputs to reconstructions.",
              "name": "decoder",
              "type": "keras.Model"
            }
          ],
          "raises": [],
          "returns": [],
          "signature": "VQAutoencoder(encoder: keras.Model, vq: VectorQuantizer, decoder: keras.Model, **kwargs={})",
          "source": {
            "line": 8,
            "path": "helia_edge/trainers/vq_autoencoder.py",
            "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/trainers/vq_autoencoder.py#L8"
          },
          "summary": "Convenience wrapper around (encoder -> VectorQuantizer -> decoder)."
        }
      ]
    }
  ],
  "name": "helia_edge"
}
