File size: 568 Bytes
d667566
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
"""Deterministic 5-fold split over the 200 training pairs."""
from __future__ import annotations

import numpy as np

from .config import N_FOLDS, N_TRAIN


def fold_of(idx: int) -> int:
    return idx % N_FOLDS


def split(fold: int) -> tuple[list[int], list[int]]:
    """Return (train_indices, val_indices) for a fold."""
    rng = np.random.RandomState(0)
    order = rng.permutation(N_TRAIN)
    val = sorted(int(i) for k, i in enumerate(order) if k % N_FOLDS == fold)
    train = sorted(int(i) for i in range(N_TRAIN) if i not in set(val))
    return train, val