---
url: >-
  https://adk.nht.io/api/@nhtio/adk/batteries/embeddings/transformers_js/pooling/functions/poolAndNormalize.md
---

# Function: poolAndNormalize()

```ts
function poolAndNormalize(
  tokenStates: TokenStates3D,
  pooling: string,
  normalize: boolean,
): Pooled2D;
```

Defined in: [src/batteries/embeddings/transformers\_js/pooling.ts:88](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/embeddings/transformers_js/pooling.ts#L88)

Pool raw `[batch, seq, hidden]` token states into `[batch, hidden]` vectors and optionally
L2-normalize — the deterministic battery-owned path (`poolingOwner: 'battery'`).

## Parameters

| Parameter     | Type                                                | Description                                                  |
| ------------- | --------------------------------------------------- | ------------------------------------------------------------ |
| `tokenStates` | [`TokenStates3D`](../type-aliases/TokenStates3D.md) | The `[batch, seq, hidden]` raw states from `pooling:'none'`. |
| `pooling`     | `string`                                            | The pooling strategy (`'mean'` default).                     |
| `normalize`   | `boolean`                                           | Whether to L2-normalize each pooled vector (default `true`). |

## Returns

[`Pooled2D`](../type-aliases/Pooled2D.md)

One pooled (and optionally normalized) vector per batch row.
