I think it depends on your coding style. Dicts could make it easier to pass data around.
On the other side, as far as I know, no method handles dicts directly, so you would have to unpack them.
I think the safest way is to include your transformations into the __getitem__ and make sure to apply the same transformation on the sample and mask.