in anticipation/anticipation/datasets/epic_future_labels.py [0:0]
def __getitem__(self, idx):
record = self.data[idx]
data = dict(
num_modalities=DC(to_tensor(1)),
img_meta=DC(dict(), cpu_only=True),
gt_label=DC(to_tensor(0)), # Dummy
feature=DC(to_tensor(torch.zeros(2048))), # Dummy
ratio_idx=DC(to_tensor(record.ratio_idx), stack=True, pad_dims=None)
)
if self.label=='int':
ints = torch.zeros(self.num_actions)
ints[record.ints] = 1
data.update(dict(
labels=DC(to_tensor(ints), stack=True, pad_dims=None),
label_mask=DC(to_tensor(self.eval_ints), stack=True, pad_dims=None),
))
elif self.label=='noun':
nouns = torch.zeros(self.num_nouns)
nouns[record.nouns] = 1
data.update(dict(
labels=DC(to_tensor(nouns), stack=True, pad_dims=None),
label_mask=DC(to_tensor(self.eval_nouns), stack=True, pad_dims=None),
))
elif self.label=='verb':
verbs = torch.zeros(self.num_verbs)
verbs[record.verbs] = 1
data.update(dict(
labels=DC(to_tensor(verbs), stack=True, pad_dims=None),
label_mask=DC(to_tensor(self.eval_verbs), stack=True, pad_dims=None),
))
return data