Код: Выделить всё
class MyModel(nn.Module):
...
def forward(self, interactions: torch.Tensor, user_features: Optional[torch.Tensor] = None):
"""
Where _N_ is the number of items
interactions (Tensor): Nx2
user_features (Tensor): Nx(number of features)
"""
...
Код: Выделить всё
class StackOverflowDataset(torch.utils.data.Dataset):
def __init__(self, data, user_features=None):
self._data = data
self._user_features = user_features
def __getitem__(self, idx):
if self._user_features is None:
return {'interactions': self._data[idx]}
else:
return {
'interactions': self._data[idx],
'user_features': self._user_features[self._data[idx]['user']]
}
def __len__(self):
return len(self._data)
Похоже, что Datapipe также обрабатывает строку за строкой. Можно ли напрямую вернуть словарь со всем тензором «взаимодействий», а затем Dataloader разрежет его на части?

Подробнее здесь: https://stackoverflow.com/questions/790 ... t-getitems