Pytorch 随机抽样

Pytorch 随机抽样

设定生成随机数的种子,并返回一个 torch._C.Generator 对象:

torch.manual_seed(seed)

参数:seed(intor long) - 种子

返回生成随机数的原始种子值:

torch.initial_seed()

返回随机生成器状态

torch.get_my_state()

设定随机生成器状态,参数:new_state(torch.ByteTensor) - 期望的状态

torch.set_my_state(new_state)[source]

从伯努力分布中抽取二元随机数(0 或者 1)
输入张量须包含用于抽取上述二元随机值的概率。输入中的所有值都必须在[0, 1]区间

torch.bernoulli(input, out=None) ->Tensor

参数:

  • input(Tensor) - 输入为伯努利分布的概率值
  • out(Tensor, optional) - 输出张量(可选)
    在这里插入图片描述
    在这里插入图片描述

从指定的 input 张量的行中抽取指定 num_samples 个样本

torch.multinomial(input, num_samples, replacement=False, out=None) ->Tensor

输入 input 每行的值不需要总和是 1,但是必须非负且总和不能为 0。
当抽取样本时,依次从左到右排列(第一个样本对应第一列)。如果输入 input 是一个向量,输出 out 也是一个相同长度 num_samples 的向量。
如果输入 input 是有 m 行的矩阵,输出 out 是形如 m×n 的矩阵。
如果参数 replacement 为 True, 则样本抽取可以重复。否则,一个样本在每行不能被重复抽取。
参数 num_samples 必须小于 input 长度(即,input 的列数,如果是 input 是一个矩阵)。
参数:

  • input (Tensor) – 包含概率值的张量
  • num_samples (int) – 抽取的样本数
  • replacement (bool, optional) – 布尔值,决定是否能重复抽取
  • out (Tensor, optional) – 结果张量

从离散正态分布中抽取随机数

torch.normal(means, std, out=None)
# 均值 means 是一个张量,包含每个输出元素相关的正太分布的均值。std是一个张量,包含每个输出元素相关的正太分布的标准差

参数:

  • means(Tensor) - 均值
  • std(Tensor) - 标准差
  • out(Tensor) - 可选的输出张量
    在这里插入图片描述
torch.normal(mean=0.0, std, out=None)

与上面函数类似,所有抽取的样本共享均值。
参数:

  • means(Tensor, optional) - 所有分布均值
  • std(Tensor) - 每个元素的标准差
  • out(Tensor) - 可选的输出张量

例子:
在这里插入图片描述

torch.normal(mean, std=1.0, out=None)

与上面函数类似,所有抽取的样本共享标准差。

  • means(Tensor, optional) - 每个元素的均值
  • std(Tensor) - 所有分布的标准差
  • out(Tensor) - 可选的输出张量

例子:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43915090/article/details/134771330