data.manydataset.PadSequenceManyToOne

data.manydataset.PadSequenceManyToOne()

Padding collate for ManyToOneDataset batches.

Pads the feature sequences with zeros and stacks the scalar targets.

Examples

import pandas as pd
from torch.utils.data import DataLoader
from spotoptim.data.manydataset import ManyToOneDataset, PadSequenceManyToOne

df1 = pd.DataFrame({"x": [1.0, 2.0, 3.0], "y": [5.0, 5.0, 5.0]})
df2 = pd.DataFrame({"x": [4.0, 5.0], "y": [7.0, 7.0]})
ds = ManyToOneDataset([df1, df2], target="y")
dl = DataLoader(ds, batch_size=2, shuffle=False, collate_fn=PadSequenceManyToOne())
x, lengths, y = next(iter(dl))
print(x.shape, lengths.tolist(), y.shape)
torch.Size([2, 3, 1]) [3, 2] torch.Size([2])