def __getitem__()

in data/dataset.py [0:0]


    def __getitem__(self, index):
        index = self.sample_indices[index]
        image, attr, obj = self.data[index]
        img = self.loader(image)
        img = self.transform(img)

        data = [
            img, self.attr2idx[attr], self.obj2idx[obj], self.pair2idx[(attr,
                                                                        obj)]
        ]

        if self.phase == 'train':
            all_neg_attrs = []
            all_neg_objs = []
            for _ in range(self.num_negs):
                neg_attr, neg_obj = self.sample_negative(
                    attr, obj)  # negative example for triplet loss
                all_neg_objs.append(neg_obj)
                all_neg_attrs.append(neg_attr)
            neg_attr = torch.LongTensor(all_neg_attrs)
            neg_obj = torch.LongTensor(all_neg_objs)
            inv_attr = self.sample_train_affordance(
                attr, obj)  # attribute for inverse regularizer
            comm_attr = self.sample_affordance(
                inv_attr, obj)  # attribute for commutative regularizer
            data += [neg_attr, neg_obj, inv_attr, comm_attr]
        return data