生成器
- classtorch.Generator(device='cpu')
-
创建并返回一个用于管理生成伪随机数算法状态的生成器对象。该对象常被用作许多就地随机采样函数的关键词参数。
- 参数
-
device (
torch.device
, 可选) – 生成器的期望设备。 - 返回值
-
一个 torch.Generator 对象。
- 返回类型
示例:
>>> g_cpu = torch.Generator() >>> g_cuda = torch.Generator(device='cuda')
- clone_state() → torch.Generator
-
该方法会克隆生成器的当前状态,并返回一个指向这个克隆状态的新生成器。这样可以方便地保存生成器的某个特定状态,在需要时进行恢复。
- 返回值
-
指向新克隆状态的生成器。
- 返回类型
示例
>>> g_cuda = torch.Generator(device='cuda') >>> cloned_state = g_cuda.clone_state()
- 设备
-
Generator.device → 设备
获取发电机的当前设备。
示例:
>>> g_cpu = torch.Generator() >>> g_cpu.device device(type='cpu')
- get_state() → Tensor
-
返回生成器的状态,格式为
torch.ByteTensor
。- 返回值
-
一个
torch.ByteTensor
,其中包含了将生成器恢复到特定时间点所需的所有必要信息。 - 返回类型
示例:
>>> g_cpu = torch.Generator() >>> g_cpu.get_state()
- graphsafe_get_state() → torch.Generator
-
以安全的方式获取生成器的当前状态,以便于图形捕获。此方法对于确保能够将生成器的状态捕获到CUDA图中非常重要。
- 返回值
-
生成器指向其当前状态
- 返回类型
示例
>>> g_cuda = torch.Generator(device='cuda') >>> current_state = g_cuda.graphsafe_get_state()
- graphsafe_set_state(state) → None 这段代码可以翻译为: graphsafe_set_state(state) → None
-
将以安全的方式将生成器的状态设置为指定值,使其适用于图捕获。此方法对于确保生成器的状态能够被捕获到CUDA图中非常重要。
- 参数
-
state (torch.Generator) – 指向生成器新状态的 Generator,通常通过 graphsafe_get_state 获取。
示例
>>> g_cuda = torch.Generator(device='cuda') >>> g_cuda_other = torch.Generator(device='cuda') >>> current_state = g_cuda_other.graphsafe_get_state() >>> g_cuda.graphsafe_set_state(current_state)
- initial_seed() → 整数
-
返回用于生成随机数的初始种子。
示例:
>>> g_cpu = torch.Generator() >>> g_cpu.initial_seed() 2147483647
- manual_seed(seed) → Generator
-
设置生成随机数的种子,并返回一个torch.Generator对象。任何32位整数都可以作为有效种子。
- 参数
-
seed (int) – 随机种子的值必须在范围 [-0x8000_0000_0000_0000, 0xffff_ffff_ffff_ffff] 内。如果超出此范围,将引发 RuntimeError 异常。负数输入会通过公式 0xffff_ffff_ffff_ffff + seed 转换为正数值。
- 返回值
-
一个 torch.Generator 对象。
- 返回类型
示例:
>>> g_cpu = torch.Generator() >>> g_cpu.manual_seed(2147483647)
- seed() → int
-
从 std::random_device 或当前时间获取一个非确定性的随机数,并使用该随机数初始化一个生成器。
示例:
>>> g_cpu = torch.Generator() >>> g_cpu.seed() 1516516984916
- set_state(new_state) → void
-
设定生成器的状态。
- 参数
-
new_state (torch.ByteTensor) – 所期望的状态。
示例:
>>> g_cpu = torch.Generator() >>> g_cpu_other = torch.Generator() >>> g_cpu.set_state(g_cpu_other.get_state())