| |
| |
| |
| |
|
|
| import torch |
|
|
| from . import BaseWrapperDataset |
|
|
|
|
| class ColorizeDataset(BaseWrapperDataset): |
| """ Adds 'colors' property to net input that is obtained from the provided color getter for use by models """ |
|
|
| def __init__(self, dataset, color_getter): |
| super().__init__(dataset) |
| self.color_getter = color_getter |
|
|
| def collater(self, samples): |
| base_collate = super().collater(samples) |
| if len(base_collate) > 0: |
| base_collate["net_input"]["colors"] = torch.tensor( |
| list(self.color_getter(self.dataset, s["id"]) for s in samples), |
| dtype=torch.long, |
| ) |
| return base_collate |
|
|