{
  "$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": "gs_autoencoder",
      "path": "helia_edge.trainers.gs_autoencoder",
      "submodules": [],
      "summary": "",
      "symbols": [
        {
          "description": "Convenience wrapper around (encoder -> GumbelSoftmaxBottleneck -> decoder).\n\n- Supports extra reconstruction-side losses and metrics.\n- Can return discrete code indices and/or code probabilities from the bottleneck.\n- Exposes Gumbel-Softmax layer metrics alongside base model metrics.",
          "examples": [],
          "id": "helia_edge.trainers.gs_autoencoder.GSAutoencoder",
          "kind": "class",
          "language": "python",
          "members": [
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.trainers.gs_autoencoder.GSAutoencoder.encoder",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "encoder",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "encoder = encoder",
              "source": {
                "line": 24,
                "path": "helia_edge/trainers/gs_autoencoder.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/trainers/gs_autoencoder.py#L24"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.trainers.gs_autoencoder.GSAutoencoder.gs",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "gs",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "gs = gs",
              "source": {
                "line": 25,
                "path": "helia_edge/trainers/gs_autoencoder.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/trainers/gs_autoencoder.py#L25"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.trainers.gs_autoencoder.GSAutoencoder.decoder",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "decoder",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "decoder = decoder",
              "source": {
                "line": 26,
                "path": "helia_edge/trainers/gs_autoencoder.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/trainers/gs_autoencoder.py#L26"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.trainers.gs_autoencoder.GSAutoencoder.metrics",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "metrics",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "metrics",
              "source": {
                "line": 136,
                "path": "helia_edge/trainers/gs_autoencoder.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/trainers/gs_autoencoder.py#L136"
              },
              "summary": ""
            },
            {
              "description": "Run encoder -> GS bottleneck -> decoder.",
              "examples": [],
              "id": "helia_edge.trainers.gs_autoencoder.GSAutoencoder.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/gs).",
                  "name": "training",
                  "type": "bool"
                },
                {
                  "default": "False",
                  "description": "If True, also return the discrete code indices.",
                  "name": "return_indices",
                  "type": "bool"
                },
                {
                  "default": "False",
                  "description": "If True, also return code probabilities.",
                  "name": "return_probs",
                  "type": "bool"
                }
              ],
              "raises": [],
              "returns": [
                {
                  "description": "Reconstruction, optionally with indices and/or probabilities.",
                  "type": "keras.KerasTensor | tuple[keras.KerasTensor, ...]"
                }
              ],
              "signature": "call(\n    x: keras.KerasTensor,\n    training: bool = False,\n    return_indices: bool = False,\n    return_probs: bool = False,\n) -> keras.KerasTensor | tuple[keras.KerasTensor, ...]",
              "source": {
                "line": 33,
                "path": "helia_edge/trainers/gs_autoencoder.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/trainers/gs_autoencoder.py#L33"
              },
              "summary": "Run encoder -> GS bottleneck -> decoder."
            },
            {
              "description": "Compile with optional extra losses/metrics.",
              "examples": [],
              "id": "helia_edge.trainers.gs_autoencoder.GSAutoencoder.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 of callables (y_true, y_pred) -> scalar to add to loss.",
                  "name": "extra_losses",
                  "type": "list | None"
                },
                {
                  "default": "None",
                  "description": "Metric instances or callables (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": 73,
                "path": "helia_edge/trainers/gs_autoencoder.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/trainers/gs_autoencoder.py#L73"
              },
              "summary": "Compile with optional extra losses/metrics."
            },
            {
              "description": "Compute total loss = recon + extra losses + layer-added losses.",
              "examples": [],
              "id": "helia_edge.trainers.gs_autoencoder.GSAutoencoder.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": 106,
                "path": "helia_edge/trainers/gs_autoencoder.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/trainers/gs_autoencoder.py#L106"
              },
              "summary": "Compute total loss = recon + extra losses + layer-added losses."
            },
            {
              "description": "Update compiled metrics plus extra metric trackers.",
              "examples": [],
              "id": "helia_edge.trainers.gs_autoencoder.GSAutoencoder.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": 127,
                "path": "helia_edge/trainers/gs_autoencoder.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/trainers/gs_autoencoder.py#L127"
              },
              "summary": "Update compiled metrics plus extra metric trackers."
            },
            {
              "description": "Return serialized config for saving/loading.",
              "examples": [],
              "id": "helia_edge.trainers.gs_autoencoder.GSAutoencoder.get_config",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "get_config",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "get_config()",
              "source": {
                "line": 140,
                "path": "helia_edge/trainers/gs_autoencoder.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/trainers/gs_autoencoder.py#L140"
              },
              "summary": "Return serialized config for saving/loading."
            },
            {
              "description": "`classmethod`\n\nRecreate model from serialized config.",
              "examples": [],
              "id": "helia_edge.trainers.gs_autoencoder.GSAutoencoder.from_config",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "from_config",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "from_config(config, custom_objects=None)",
              "source": {
                "line": 152,
                "path": "helia_edge/trainers/gs_autoencoder.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/trainers/gs_autoencoder.py#L152"
              },
              "summary": "Recreate model from serialized config."
            }
          ],
          "name": "GSAutoencoder",
          "params": [
            {
              "description": "Encoder model producing continuous latents.",
              "name": "encoder",
              "type": "keras.Model"
            },
            {
              "description": "GumbelSoftmaxBottleneck layer that discretizes latents.",
              "name": "gs",
              "type": "GumbelSoftmaxBottleneck"
            },
            {
              "description": "Decoder model mapping bottleneck outputs to reconstructions.",
              "name": "decoder",
              "type": "keras.Model"
            }
          ],
          "raises": [],
          "returns": [],
          "signature": "GSAutoencoder(encoder: keras.Model, gs: GumbelSoftmaxBottleneck, decoder: keras.Model, **kwargs={})",
          "source": {
            "line": 6,
            "path": "helia_edge/trainers/gs_autoencoder.py",
            "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/trainers/gs_autoencoder.py#L6"
          },
          "summary": "Convenience wrapper around (encoder -> GumbelSoftmaxBottleneck -> decoder)."
        }
      ]
    }
  ],
  "name": "helia_edge"
}
