Opened issue here: https://github.com/pytorch/pytorch/issues/41329 36
and apparently it’s not a bug, just a gotcha - a pretty well documented one at that.
Numpy random number generator keeps its seed over a fork(), and DataLoader starts worked processed using a fork, without doing anything special about numpy.random.  I’d say it seems like much more of a numpy issue - keep seeds over a fork by default is a kind of wtf behavior, but okay.  Easy enough to work around, just re-seed in worker_init_fn or at the beginning of iter works fine.