# helia_edge.trainers.gs_autoencoder

## helia_edge.trainers.gs_autoencoder.GSAutoencoder

`class` · `python`

```python
GSAutoencoder(encoder: keras.Model, gs: GumbelSoftmaxBottleneck, decoder: keras.Model, **kwargs={})
```

Convenience wrapper around (encoder -> GumbelSoftmaxBottleneck -> decoder).

- Supports extra reconstruction-side losses and metrics.
- Can return discrete code indices and/or code probabilities from the bottleneck.
- Exposes Gumbel-Softmax layer metrics alongside base model metrics.

**Parameters**

| Name | Type | Default | Description |
| --- | --- | --- | --- |
| encoder | keras.Model | Required | Encoder model producing continuous latents. |
| gs | GumbelSoftmaxBottleneck | Required | GumbelSoftmaxBottleneck layer that discretizes latents. |
| decoder | keras.Model | Required | Decoder model mapping bottleneck outputs to reconstructions. |

Source: `helia_edge/trainers/gs_autoencoder.py:6`

### helia_edge.trainers.gs_autoencoder.GSAutoencoder.encoder

`attribute` · `python`

```python
encoder = encoder
```

Source: `helia_edge/trainers/gs_autoencoder.py:24`

### helia_edge.trainers.gs_autoencoder.GSAutoencoder.gs

`attribute` · `python`

```python
gs = gs
```

Source: `helia_edge/trainers/gs_autoencoder.py:25`

### helia_edge.trainers.gs_autoencoder.GSAutoencoder.decoder

`attribute` · `python`

```python
decoder = decoder
```

Source: `helia_edge/trainers/gs_autoencoder.py:26`

### helia_edge.trainers.gs_autoencoder.GSAutoencoder.metrics

`attribute` · `python`

```python
metrics
```

Source: `helia_edge/trainers/gs_autoencoder.py:136`

### helia_edge.trainers.gs_autoencoder.GSAutoencoder.call

`method` · `python`

```python
call(
    x: keras.KerasTensor,
    training: bool = False,
    return_indices: bool = False,
    return_probs: bool = False,
) -> keras.KerasTensor | tuple[keras.KerasTensor, ...]
```

Run encoder -> GS bottleneck -> decoder.

**Parameters**

| Name | Type | Default | Description |
| --- | --- | --- | --- |
| x | keras.KerasTensor | Required | Input batch. |
| training | bool | False | Whether to run in training mode (affects encoder/decoder/gs). |
| return_indices | bool | False | If True, also return the discrete code indices. |
| return_probs | bool | False | If True, also return code probabilities. |

**Returns**

| Name | Type | Description |
| --- | --- | --- |
|  | keras.KerasTensor \| tuple[keras.KerasTensor, ...] | Reconstruction, optionally with indices and/or probabilities. |

Source: `helia_edge/trainers/gs_autoencoder.py:33`

### helia_edge.trainers.gs_autoencoder.GSAutoencoder.compile

`method` · `python`

```python
compile(
    optimizer: keras.optimizers.Optimizer,
    loss: keras.losses.Loss | None = None,
    metrics: list | None = None,
    extra_losses: list | None = None,
    extra_metrics: list | None = None,
    **kwargs={},
)
```

Compile with optional extra losses/metrics.

**Parameters**

| Name | Type | Default | Description |
| --- | --- | --- | --- |
| optimizer | keras.optimizers.Optimizer | Required | Keras optimizer. |
| loss | keras.losses.Loss \| None | None | Base reconstruction loss (e.g., keras.losses.MeanSquaredError()). |
| metrics | list \| None | None | Standard Keras metrics (Metric instances or callables). |
| extra_losses | list \| None | None | List of callables (y_true, y_pred) -> scalar to add to loss. |
| extra_metrics | list \| None | None | Metric instances or callables (y_true, y_pred) -> scalar. |

Source: `helia_edge/trainers/gs_autoencoder.py:73`

### helia_edge.trainers.gs_autoencoder.GSAutoencoder.compute_loss

`method` · `python`

```python
compute_loss(x=None, y=None, y_pred=None, sample_weight=None, allow_empty=False)
```

Compute total loss = recon + extra losses + layer-added losses.

Source: `helia_edge/trainers/gs_autoencoder.py:106`

### helia_edge.trainers.gs_autoencoder.GSAutoencoder.compute_metrics

`method` · `python`

```python
compute_metrics(x, y, y_pred, sample_weight=None)
```

Update compiled metrics plus extra metric trackers.

Source: `helia_edge/trainers/gs_autoencoder.py:127`

### helia_edge.trainers.gs_autoencoder.GSAutoencoder.get_config

`method` · `python`

```python
get_config()
```

Return serialized config for saving/loading.

Source: `helia_edge/trainers/gs_autoencoder.py:140`

### helia_edge.trainers.gs_autoencoder.GSAutoencoder.from_config

`method` · `python`

```python
from_config(config, custom_objects=None)
```

`classmethod`

Recreate model from serialized config.

Source: `helia_edge/trainers/gs_autoencoder.py:152`
