Dear all,
I have a doubt on data augmentation using dataloader. I want to apply a transformation with a certain probability p which can decreases either as the number of epochs progress, or when the loss function is higher than a certain threshold. However, due to the concurrent nature of the dataloader workers, I cannot figure out how to apply this to the transorm class, as I don’t know how I could get the epoch or loss as inputs to my function. So my question is
- Is it possible to apply augmentation with the probability changing on the epoch number or loss function?
- How could it be implemented?
below is the pseudo code of my transform function.
class custom_transform(object):
def __init__(self, size,p):
if isinstance(size, numbers.Number):
self.size = (int(size), int(size))
else:
self.size = size
self.p = p
def __call__(self, inputs, target):
if random.random() < self.p:
GENERATE TRANSFORMED inputs, target
inputs, target
else:
return inputs, target
@albanD @ptrblck your ideas are very welcome!
Many Thanks,
Stefano