评价此页

生成器#

class torch.Generator(device='cpu')#

创建并返回一个生成器对象,该对象管理生成伪随机数的算法状态。在许多原地随机抽样函数中用作关键字参数。

参数

设备 (torch.device, 可选) – 生成器所需的设备。

返回

一个 torch.Generator 对象。

返回类型

生成器

示例

>>> g_cpu = torch.Generator()
>>> g_cuda = torch.Generator(device='cuda')
clone_state() torch.Generator#

克隆生成器的当前状态并返回指向此克隆状态的新生成器。此方法有助于保留生成器的特定状态,以便以后恢复。

返回

一个指向新克隆状态的生成器。

返回类型

torch.Generator

示例

>>> g_cuda = torch.Generator(device='cuda')
>>> cloned_state = g_cuda.clone_state()
device#

Generator.device -> 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 图中捕获至关重要。

返回

一个指向生成器当前状态的生成器。

返回类型

torch.Generator

示例

>>> g_cuda = torch.Generator(device='cuda')
>>> current_state = g_cuda.graphsafe_get_state()
graphsafe_set_state(state) None#

以对图捕获安全的方式将生成器状态设置为指定状态。此方法对于确保生成器状态可以在 CUDA 图中捕获至关重要。

参数

state (torch.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() int#

返回生成随机数的初始种子。

示例

>>> 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())