示例#1
0
文件: torch.py 项目: lqf96/mltk
def derive_rand(rand: th.Generator, device: Device) -> th.Generator:
    device = as_device(device)
    # Return existing random number generator for the same device
    if rand.device == device:
        return rand

    # Create and seed new random number generator
    rand_new = th.Generator(device)
    rand_new.manual_seed(rand.seed() & _SEED_MASK)

    return rand_new
示例#2
0
文件: torch.py 项目: lqf96/mltk
def use_rand(rand: th.Generator, **kwargs: Any):
    # Fork and seed current global random state
    with th.random.fork_rng(devices=(rand.device, ), **kwargs):
        th.random.manual_seed(rand.seed() & _SEED_MASK)
        yield