添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

1. torch.manual_seed(seed)

说明: 设置生成随机数的种子,返回一个torch._C.Generator对象。使用随机数种子之后,生成的随机数是相同的。
参数:

  • seed(int or long) – 种子
  • >>> import torch
    >>> torch.manual_seed(1)
    <torch._C.Generator object at 0x0000019684586350>
    >>> a = torch.rand(2, 3)
    tensor([[0.7576, 0.2793, 0.4031],
            [0.7347, 0.0293, 0.7999]])
    >>> torch.manual_seed(1)
    <torch._C.Generator object at 0x0000019684586350>
    >>> b = torch.rand(2, 3)
    tensor([[0.7576, 0.2793, 0.4031],
            [0.7347, 0.0293, 0.7999]])
    >>> a == b
    tensor([[1, 1, 1],
            [1, 1, 1]], dtype=torch.uint8)

    2. torch.initial_seed()

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

    >>> torch.manual_seed(4)
    <torch._C.Generator object at 0x0000019684586350>
    >>> torch.initial_seed()
    

    3. torch.get_rng_state()

    说明: 返回随机生成器状态(ByteTensor)

    >>> torch.initial_seed()
    >>> torch.get_rng_state()
    tensor([4, 0, 0,  ..., 0, 0, 0], dtype=torch.uint8)

    4. torch.set_rng_state()

    说明: 设定随机生成器状态
    参数:

  • new_state(ByteTensor) – 期望的状态
  • 5. torch.default_generator

    说明:默认的随机生成器。等于<torch._C.Generator object>

    6. torch.bernoulli(input, out=None)

    说明:从伯努利分布中抽取二元随机数(0或1)。输入张量包含用于抽取二元值的概率。因此,输入中的所有值都必须在[0,1]区间内。输出张量的第i个元素值,将会以输入张量的第i个概率值等于1。返回值将会是与输入相同大小的张量,每个值为0或者1.
    参数:

  • input(Tensor) – 输入为伯努利分布的概率值
  • out(Tensor,可选) – 输出张量
  • >>> a = torch.Tensor(3, 3).uniform_(0, 1)
    tensor([[0.5596, 0.5591, 0.0915],
            [0.2100, 0.0072, 0.0390],
            [0.9929, 0.9131, 0.6186]])
    >>> torch.bernoulli(a)
    tensor([[0., 1., 0.],
            [0., 0., 0.],
            [1., 1., 1.]])

    7. torch.multinomial(input, num_samples, replacement=False, out=None)

    说明: 返回一个张量,每行包含从input相应行中定义的多项分布中抽取的num_samples个样本。要求输入input每行的值不需要总和为1,但是必须非负且总和不能为0。当抽取样本时,依次从左到右排列(第一个样本对应第一列)。如果输入input是一个向量,输出out也是一个相同长度num_samples的向量。如果输入input是m行的矩阵,输出out是形如m x n的矩阵。并且如果参数replacement为True,则样本抽取可以重复。否则,一个样本在每行不能被重复。
    参数:

  • input(Tensor) – 包含概率的张量
  • num_samples(int) – 抽取的样本数
  • replacement(bool) – 布尔值,决定是否能重复抽取
  • out(Tensor) – 结果张量
  • >>> weights = torch.Tensor([0, 10, 3, 0])
    >>> weights
    tensor([ 0., 10.,  3.,  0.])
    >>> torch.multinomial(weights, 4, replacement=True)
    tensor([1, 1, 1, 1])

    8. torch.normal(means, std, out=None)

    说明:返回一个张量,包含从给定参数means,std的离散正态分布中抽取随机数。均值means是一个张量,包含每个输出元素相关的正态分布的均值。std是一个张量。包含每个输出元素相关的正态分布的标准差。均值和标准差的形状不须匹配,但每个张量的元素个数必须想听。
    参数:

  • means(Tensor) – 均值
  • std(Tensor) – 标准差
  • out(Tensor) – 输出张量
  • >>> n_data = torch.ones(5, 2)
    >>> n_data
    tensor([[1., 1.],
            [1., 1.],
            [1., 1.],
            [1., 1.],
            [1., 1.]])
    >>> x0 = torch.normal(2 * n_data, 1)
    tensor([[1.6544, 0.9805],
            [2.1114, 2.7113],
            [1.0646, 1.9675],
            [2.7652, 3.2138],
            [1.1204, 2.0293]])

    9. torch.save(obj, f, pickle_module=<module ‘pickle’ from ‘/home/lzjs/…)

    说明: 保存一个对象到一个硬盘文件上。
    参数:

  • obj – 保存对象
  • f – 类文件对象或一个保存文件名的字符串
  • pickle_module – 用于pickling源数据和对象的模块
  • pickle_protocol – 指定pickle protocal可以覆盖默认参数
  • 10. torch.load(f, map_location=None, pickle_module=<module ‘pickle’ from ‘/home/lzjs/…)

    说明: 从磁盘文件中读取一个通过torch.save()保存的对象。torch.load()可通过参数map_location动态地进行内存重映射,使其能从不动设备中读取文件。一般调用时,需两个参数:storage和location tag。返回不同地址中的storage,或者返回None。如果这个参数是字典的话,意味着从文件的地址标记到当前系统的地址标记的映射。
    参数:

  • f – l类文件对象或一个保存文件名的字符串
  • map_location – 一个函数或字典规定如何remap存储位置
  • pickle_module – 用于unpickling元数据和对象的模块
  • torch.load('tensors.pt')
    # 加载所有的张量到CPU
    torch.load('tensor.pt', map_location=lambda storage, loc:storage)
    # 加载张量到GPU
    torch.load('tensors.pt', map_location={'cuda:1':'cuda:0'})

    11. torch.get_num_threads()

    说明: 获得用于并行化CPU操作的OpenMP线程数

    12. torch.set_num_threads()

    说明: 设定用于并行化CPU操作的OpenMP线程数

    1. torch.cat(seq, dim=0, out=None)说明: 在给定维度上对输入的张量序列seq进行连接操作参数: seq(Tensor的序列) – 可以是相同类型的Tensor的任何Python序列 dim(int, 可选