# helia_edge.models.cornet_params

Validated CorNET architecture config; no backend imports.

## helia_edge.models.cornet_params.CORNET_SOURCE

`constant` · `python`

```python
CORNET_SOURCE = 'Biswas et al., IEEE TBioCAS 13(2):282-291, 2019, doi:10.1109/TBCAS.2019.2892297'
```

Source: `helia_edge/models/cornet_params.py:7`

## helia_edge.models.cornet_params.CorNetParams

`class` · `python`

```python
CorNetParams()
```

CorNET heart-rate regressor: two convolution stages then stacked LSTMs.

Defaults are the paper's HR network (Sec. III, Fig. 6, Table III): two
Conv1D(32, 40) stages with batch normalization, ReLU, max pooling 4 and
dropout 0.1, then LSTM(128) twice and a single linear output. The paper
publishes no code or weights; changed values are new architectures. ``unroll`` builds the LSTMs as
per-timestep operations instead of a loop; weights are identical.

Source: `helia_edge/models/cornet_params.py:10`

### helia_edge.models.cornet_params.CorNetParams.model_config

`attribute` · `python`

```python
model_config = ConfigDict(frozen=True, extra='forbid')
```

Source: `helia_edge/models/cornet_params.py:20`

### helia_edge.models.cornet_params.CorNetParams.family

`attribute` · `python`

```python
family: Literal['cornet'] = 'cornet'
```

Source: `helia_edge/models/cornet_params.py:22`

### helia_edge.models.cornet_params.CorNetParams.conv_stages

`attribute` · `python`

```python
conv_stages: int = Field(default=2, ge=1)
```

Source: `helia_edge/models/cornet_params.py:24`

### helia_edge.models.cornet_params.CorNetParams.filters

`attribute` · `python`

```python
filters: int = Field(default=32, gt=0)
```

Source: `helia_edge/models/cornet_params.py:25`

### helia_edge.models.cornet_params.CorNetParams.kernel_size

`attribute` · `python`

```python
kernel_size: int = Field(default=40, gt=0)
```

Source: `helia_edge/models/cornet_params.py:26`

### helia_edge.models.cornet_params.CorNetParams.pool_size

`attribute` · `python`

```python
pool_size: int = Field(default=4, gt=0)
```

Source: `helia_edge/models/cornet_params.py:27`

### helia_edge.models.cornet_params.CorNetParams.dropout

`attribute` · `python`

```python
dropout: float = Field(default=0.1, ge=0, lt=1, allow_inf_nan=False)
```

Source: `helia_edge/models/cornet_params.py:28`

### helia_edge.models.cornet_params.CorNetParams.lstm_layers

`attribute` · `python`

```python
lstm_layers: int = Field(default=2, ge=1)
```

Source: `helia_edge/models/cornet_params.py:29`

### helia_edge.models.cornet_params.CorNetParams.lstm_units

`attribute` · `python`

```python
lstm_units: int = Field(default=128, gt=0)
```

Source: `helia_edge/models/cornet_params.py:30`

### helia_edge.models.cornet_params.CorNetParams.recurrent_activation

`attribute` · `python`

```python
recurrent_activation: Literal['sigmoid', 'hard_sigmoid'] = 'sigmoid'
```

Source: `helia_edge/models/cornet_params.py:31`

### helia_edge.models.cornet_params.CorNetParams.unroll

`attribute` · `python`

```python
unroll: bool = False
```

Source: `helia_edge/models/cornet_params.py:32`
