@trainer.on(Events.EPOCH_STARTED)
def set_epoch_seed():
    ignite.utils.manual_seed(trainer.state.epoch)

Yes, it works. But it has 2 issues:

validation data loader returns the same random values as training loader
it always returns the same values (because seed values are always the same 1,2,3)