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])