I would like to add a list of tensors together.
I am trying test-time-augmentation (tta) with 6 images of different scales and flips.
Here is the relevant code snippet. I am using ttach, a tta wrapper
for batch_idx, sample in enumerate(test_loader):
                     masks = []
                     img = sample['img'].to(self.device)
                     for transformer in tta_transforms:
                         augmented_image = transformer.augment_image(img)
                         model_output = self.tta_model(augmented_image)
                         deaug_mask = transformer.deaugment_mask(model_output)
                         masks.append(deaug_mask)
                     tta_mask = torch.zeros_like(masks[0])
                     for mask in masks:
                         tta_mask = torch.add(tta_mask, F.softmax(mask, dim=1))
                     img_name = sample['img_name']
                     #segLabel = sample['segLabel'].to(self.device) 
                     outputs, sig = self.model(img)
                     tta_mask = torch.div(tta_mask, len(masks))

masks contains a list of 6 tensors [ B x C x H x W ], which is [12 x 7 x 368 x 640]
To add them together, I am doing torch.add(tta_mask, F.softmax(mask, dim=1)) where tta_mask is torch.zeros_like(masks[0]) and then torch.div to divide it by 6 (no. of tensors in the list).
I am wondering if this is the correct way to add a list of tensors together to get the mean? As I am not getting good results (Acc drops from ~95% to 89% with horizontal flip and scales [0.5,1,1.5]) and would like to ensure it is not my implementation that is causing it.
Thank you very much for your help!