> ## Documentation Index
> Fetch the complete documentation index at: https://docs.priorlabs.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> TabPFN-3 and later versions support up to 1,000,000 rows, subject to feature count and checkpoint/API limits.
> For large datasets, use per-estimator subsampling, e.g. inference_config={"SUBSAMPLE_SAMPLES": 100_000}, in TabPFNClassifier or TabPFNRegressor from tabpfn or tabpfn_client.
> Pass raw pandas DataFrames to fit and predict. Categorical strings/categories, raw text, and missing feature values are handled automatically; no manual integer/one-hot encoding, imputation, scaling, or outlier removal is needed.

# Experiment logging

> Protocol for finetuning experiment loggers.

<Info>
  Looking for usage documentation? Check out [Fine tuning](/capabilities/fine-tuning).
</Info>

<div className="python-reference-heading">
  <h2 id="finetuninglogger">
    `FinetuningLogger`
  </h2>

  <a className="python-reference-source" href="https://github.com/PriorLabs/TabPFN/blob/c70b6ef0488858d32244c52222abfc0c5be207d6/src/tabpfn/finetuning/logging.py#L10" aria-label="View source for FinetuningLogger"><span aria-hidden="true">\</></span> View source <span aria-hidden="true">↗</span></a>
</div>

Protocol for finetuning experiment loggers.

***

<div className="python-reference-heading">
  <h2 id="finetuninglogger-setup">
    `FinetuningLogger.setup`
  </h2>

  <a className="python-reference-source" href="https://github.com/PriorLabs/TabPFN/blob/c70b6ef0488858d32244c52222abfc0c5be207d6/src/tabpfn/finetuning/logging.py#L13" aria-label="View source for FinetuningLogger.setup"><span aria-hidden="true">\</></span> View source <span aria-hidden="true">↗</span></a>
</div>

Initialize the logger with run configuration.

```python theme={null}
FinetuningLogger.setup(
    config: dict[str, Any],
) -> None
```

**Parameters**

<div className="python-reference-table">
  | Parameter | Type | Default | Description |
  | - | - | - | - |
  | <span id="finetuninglogger-setup--config" /><code className="python-reference-parameter">config</code> | <code className="python-reference-type">dict\[str, Any]</code> | Required | — |
</div>

**Returns**

<div className="python-reference-table python-reference-returns">
  | Type | Description |
  | - | - |
  | <code className="python-reference-type">None</code> | — |
</div>

***

<div className="python-reference-heading">
  <h2 id="finetuninglogger-log-step">
    `FinetuningLogger.log_step`
  </h2>

  <a className="python-reference-source" href="https://github.com/PriorLabs/TabPFN/blob/c70b6ef0488858d32244c52222abfc0c5be207d6/src/tabpfn/finetuning/logging.py#L17" aria-label="View source for FinetuningLogger.log_step"><span aria-hidden="true">\</></span> View source <span aria-hidden="true">↗</span></a>
</div>

Log per-step metrics (e.g., batch loss, learning rate).

```python theme={null}
FinetuningLogger.log_step(
    metrics: dict[str, float],
    step: int,
) -> None
```

**Parameters**

<div className="python-reference-table">
  | Parameter | Type | Default | Description |
  | - | - | - | - |
  | <span id="finetuninglogger-log-step--metrics" /><code className="python-reference-parameter">metrics</code> | <code className="python-reference-type">dict\[str, float]</code> | Required | — |
  | <span id="finetuninglogger-log-step--step" /><code className="python-reference-parameter">step</code> | <code className="python-reference-type">int</code> | Required | — |
</div>

**Returns**

<div className="python-reference-table python-reference-returns">
  | Type | Description |
  | - | - |
  | <code className="python-reference-type">None</code> | — |
</div>

***

<div className="python-reference-heading">
  <h2 id="finetuninglogger-log-epoch">
    `FinetuningLogger.log_epoch`
  </h2>

  <a className="python-reference-source" href="https://github.com/PriorLabs/TabPFN/blob/c70b6ef0488858d32244c52222abfc0c5be207d6/src/tabpfn/finetuning/logging.py#L21" aria-label="View source for FinetuningLogger.log_epoch"><span aria-hidden="true">\</></span> View source <span aria-hidden="true">↗</span></a>
</div>

Log per-epoch metrics (e.g., val metrics, mean loss).

```python theme={null}
FinetuningLogger.log_epoch(
    metrics: dict[str, float],
    step: int,
) -> None
```

**Parameters**

<div className="python-reference-table">
  | Parameter | Type | Default | Description |
  | - | - | - | - |
  | <span id="finetuninglogger-log-epoch--metrics" /><code className="python-reference-parameter">metrics</code> | <code className="python-reference-type">dict\[str, float]</code> | Required | — |
  | <span id="finetuninglogger-log-epoch--step" /><code className="python-reference-parameter">step</code> | <code className="python-reference-type">int</code> | Required | — |
</div>

**Returns**

<div className="python-reference-table python-reference-returns">
  | Type | Description |
  | - | - |
  | <code className="python-reference-type">None</code> | — |
</div>

***

<div className="python-reference-heading">
  <h2 id="finetuninglogger-finish">
    `FinetuningLogger.finish`
  </h2>

  <a className="python-reference-source" href="https://github.com/PriorLabs/TabPFN/blob/c70b6ef0488858d32244c52222abfc0c5be207d6/src/tabpfn/finetuning/logging.py#L25" aria-label="View source for FinetuningLogger.finish"><span aria-hidden="true">\</></span> View source <span aria-hidden="true">↗</span></a>
</div>

Finalize the logger (e.g., close wandb run).

```python theme={null}
FinetuningLogger.finish() -> None
```

**Returns**

<div className="python-reference-table python-reference-returns">
  | Type | Description |
  | - | - |
  | <code className="python-reference-type">None</code> | — |
</div>

***

<div className="python-reference-heading">
  <h2 id="nulllogger">
    `NullLogger`
  </h2>

  <a className="python-reference-source" href="https://github.com/PriorLabs/TabPFN/blob/c70b6ef0488858d32244c52222abfc0c5be207d6/src/tabpfn/finetuning/logging.py#L30" aria-label="View source for NullLogger"><span aria-hidden="true">\</></span> View source <span aria-hidden="true">↗</span></a>
</div>

No-op logger used when no experiment tracking is configured.

***

<div className="python-reference-heading">
  <h2 id="nulllogger-setup">
    `NullLogger.setup`
  </h2>

  <a className="python-reference-source" href="https://github.com/PriorLabs/TabPFN/blob/c70b6ef0488858d32244c52222abfc0c5be207d6/src/tabpfn/finetuning/logging.py#L33" aria-label="View source for NullLogger.setup"><span aria-hidden="true">\</></span> View source <span aria-hidden="true">↗</span></a>
</div>

No-op.

```python theme={null}
NullLogger.setup(
    config: dict[str, Any],
) -> None
```

**Parameters**

<div className="python-reference-table">
  | Parameter | Type | Default | Description |
  | - | - | - | - |
  | <span id="nulllogger-setup--config" /><code className="python-reference-parameter">config</code> | <code className="python-reference-type">dict\[str, Any]</code> | Required | — |
</div>

**Returns**

<div className="python-reference-table python-reference-returns">
  | Type | Description |
  | - | - |
  | <code className="python-reference-type">None</code> | — |
</div>

***

<div className="python-reference-heading">
  <h2 id="nulllogger-log-step">
    `NullLogger.log_step`
  </h2>

  <a className="python-reference-source" href="https://github.com/PriorLabs/TabPFN/blob/c70b6ef0488858d32244c52222abfc0c5be207d6/src/tabpfn/finetuning/logging.py#L36" aria-label="View source for NullLogger.log_step"><span aria-hidden="true">\</></span> View source <span aria-hidden="true">↗</span></a>
</div>

No-op.

```python theme={null}
NullLogger.log_step(
    metrics: dict[str, float],
    step: int,
) -> None
```

**Parameters**

<div className="python-reference-table">
  | Parameter | Type | Default | Description |
  | - | - | - | - |
  | <span id="nulllogger-log-step--metrics" /><code className="python-reference-parameter">metrics</code> | <code className="python-reference-type">dict\[str, float]</code> | Required | — |
  | <span id="nulllogger-log-step--step" /><code className="python-reference-parameter">step</code> | <code className="python-reference-type">int</code> | Required | — |
</div>

**Returns**

<div className="python-reference-table python-reference-returns">
  | Type | Description |
  | - | - |
  | <code className="python-reference-type">None</code> | — |
</div>

***

<div className="python-reference-heading">
  <h2 id="nulllogger-log-epoch">
    `NullLogger.log_epoch`
  </h2>

  <a className="python-reference-source" href="https://github.com/PriorLabs/TabPFN/blob/c70b6ef0488858d32244c52222abfc0c5be207d6/src/tabpfn/finetuning/logging.py#L39" aria-label="View source for NullLogger.log_epoch"><span aria-hidden="true">\</></span> View source <span aria-hidden="true">↗</span></a>
</div>

No-op.

```python theme={null}
NullLogger.log_epoch(
    metrics: dict[str, float],
    step: int,
) -> None
```

**Parameters**

<div className="python-reference-table">
  | Parameter | Type | Default | Description |
  | - | - | - | - |
  | <span id="nulllogger-log-epoch--metrics" /><code className="python-reference-parameter">metrics</code> | <code className="python-reference-type">dict\[str, float]</code> | Required | — |
  | <span id="nulllogger-log-epoch--step" /><code className="python-reference-parameter">step</code> | <code className="python-reference-type">int</code> | Required | — |
</div>

**Returns**

<div className="python-reference-table python-reference-returns">
  | Type | Description |
  | - | - |
  | <code className="python-reference-type">None</code> | — |
</div>

***

<div className="python-reference-heading">
  <h2 id="nulllogger-finish">
    `NullLogger.finish`
  </h2>

  <a className="python-reference-source" href="https://github.com/PriorLabs/TabPFN/blob/c70b6ef0488858d32244c52222abfc0c5be207d6/src/tabpfn/finetuning/logging.py#L42" aria-label="View source for NullLogger.finish"><span aria-hidden="true">\</></span> View source <span aria-hidden="true">↗</span></a>
</div>

No-op.

```python theme={null}
NullLogger.finish() -> None
```

**Returns**

<div className="python-reference-table python-reference-returns">
  | Type | Description |
  | - | - |
  | <code className="python-reference-type">None</code> | — |
</div>

***

<div className="python-reference-heading">
  <h2 id="wandblogger">
    `WandbLogger`
  </h2>

  <a className="python-reference-source" href="https://github.com/PriorLabs/TabPFN/blob/c70b6ef0488858d32244c52222abfc0c5be207d6/src/tabpfn/finetuning/logging.py#L46" aria-label="View source for WandbLogger"><span aria-hidden="true">\</></span> View source <span aria-hidden="true">↗</span></a>
</div>

WandB experiment logger.

```python theme={null}
WandbLogger(
    project: str | None = None,
    run_name: str | None = None,
    entity: str | None = None,
    **wandb_kwargs: Any,
)
```

**Parameters**

<div className="python-reference-table">
  | Parameter | Type | Default | Description |
  | - | - | - | - |
  | <span id="wandblogger--project" /><code className="python-reference-parameter">project</code> | <code className="python-reference-type">str \| None</code> | `None` | — |
  | <span id="wandblogger--run-name" /><code className="python-reference-parameter">run\_<wbr />name</code> | <code className="python-reference-type">str \| None</code> | `None` | — |
  | <span id="wandblogger--entity" /><code className="python-reference-parameter">entity</code> | <code className="python-reference-type">str \| None</code> | `None` | — |
  | <span id="wandblogger--wandb-kwargs" /><code className="python-reference-parameter">\*\*wandb\_<wbr />kwargs</code> | <code className="python-reference-type">Any</code> | — | — |
</div>

***

<div className="python-reference-heading">
  <h2 id="wandblogger-setup">
    `WandbLogger.setup`
  </h2>

  <a className="python-reference-source" href="https://github.com/PriorLabs/TabPFN/blob/c70b6ef0488858d32244c52222abfc0c5be207d6/src/tabpfn/finetuning/logging.py#L62" aria-label="View source for WandbLogger.setup"><span aria-hidden="true">\</></span> View source <span aria-hidden="true">↗</span></a>
</div>

Initialize a new WandB run with the given config.

```python theme={null}
WandbLogger.setup(
    config: dict[str, Any],
) -> None
```

**Parameters**

<div className="python-reference-table">
  | Parameter | Type | Default | Description |
  | - | - | - | - |
  | <span id="wandblogger-setup--config" /><code className="python-reference-parameter">config</code> | <code className="python-reference-type">dict\[str, Any]</code> | Required | — |
</div>

**Returns**

<div className="python-reference-table python-reference-returns">
  | Type | Description |
  | - | - |
  | <code className="python-reference-type">None</code> | — |
</div>

***

<div className="python-reference-heading">
  <h2 id="wandblogger-log-step">
    `WandbLogger.log_step`
  </h2>

  <a className="python-reference-source" href="https://github.com/PriorLabs/TabPFN/blob/c70b6ef0488858d32244c52222abfc0c5be207d6/src/tabpfn/finetuning/logging.py#L83" aria-label="View source for WandbLogger.log_step"><span aria-hidden="true">\</></span> View source <span aria-hidden="true">↗</span></a>
</div>

Log metrics for a single training step.

```python theme={null}
WandbLogger.log_step(
    metrics: dict[str, float],
    step: int,
) -> None
```

**Parameters**

<div className="python-reference-table">
  | Parameter | Type | Default | Description |
  | - | - | - | - |
  | <span id="wandblogger-log-step--metrics" /><code className="python-reference-parameter">metrics</code> | <code className="python-reference-type">dict\[str, float]</code> | Required | — |
  | <span id="wandblogger-log-step--step" /><code className="python-reference-parameter">step</code> | <code className="python-reference-type">int</code> | Required | — |
</div>

**Returns**

<div className="python-reference-table python-reference-returns">
  | Type | Description |
  | - | - |
  | <code className="python-reference-type">None</code> | — |
</div>

***

<div className="python-reference-heading">
  <h2 id="wandblogger-log-epoch">
    `WandbLogger.log_epoch`
  </h2>

  <a className="python-reference-source" href="https://github.com/PriorLabs/TabPFN/blob/c70b6ef0488858d32244c52222abfc0c5be207d6/src/tabpfn/finetuning/logging.py#L88" aria-label="View source for WandbLogger.log_epoch"><span aria-hidden="true">\</></span> View source <span aria-hidden="true">↗</span></a>
</div>

Log metrics for a completed epoch.

```python theme={null}
WandbLogger.log_epoch(
    metrics: dict[str, float],
    step: int,
) -> None
```

**Parameters**

<div className="python-reference-table">
  | Parameter | Type | Default | Description |
  | - | - | - | - |
  | <span id="wandblogger-log-epoch--metrics" /><code className="python-reference-parameter">metrics</code> | <code className="python-reference-type">dict\[str, float]</code> | Required | — |
  | <span id="wandblogger-log-epoch--step" /><code className="python-reference-parameter">step</code> | <code className="python-reference-type">int</code> | Required | — |
</div>

**Returns**

<div className="python-reference-table python-reference-returns">
  | Type | Description |
  | - | - |
  | <code className="python-reference-type">None</code> | — |
</div>

***

<div className="python-reference-heading">
  <h2 id="wandblogger-finish">
    `WandbLogger.finish`
  </h2>

  <a className="python-reference-source" href="https://github.com/PriorLabs/TabPFN/blob/c70b6ef0488858d32244c52222abfc0c5be207d6/src/tabpfn/finetuning/logging.py#L93" aria-label="View source for WandbLogger.finish"><span aria-hidden="true">\</></span> View source <span aria-hidden="true">↗</span></a>
</div>

Finish the WandB run.

```python theme={null}
WandbLogger.finish() -> None
```

**Returns**

<div className="python-reference-table python-reference-returns">
  | Type | Description |
  | - | - |
  | <code className="python-reference-type">None</code> | — |
</div>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.