torch 中的 uniform 具体用法

背景

在陈云的书上看到这个:
分分

下面那几个随机函数rand啥的都好理解,就是不知道uniform怎么用,查了官方文档写的太简略了,所以找了下例子,总结一下。常见两种用法。先给用例再给解释。

第一种

import torch
A = torch.Tensor(2,3)
print(A)
A.uniform_(-10,20)
print(A)

效果:

解释:

前置知识点:

  1. uniform_(),不是uniform()!以下划线结尾的是inplace方法。
  2. 什么是inplace方法:将会改变调用者本身值的方法。如a, b = torch.rand(2,2), torch.rand(2,2),如果a.add(b),那么a值不变;如果a.add_(b)a值就会变为a+b
  3. A.uniform_(-10,20)将会把A里面的每个值都从[-10, 20]里面重新随机取一次,即在[-10, 20]的随机均匀分布里面取值并重新赋值
  4. torch.Tensor(2,3)将会创建一个形状为shape(2,3)的张量,张量值据官方文档说是根据内存残留值确定(注意torch.tensortorch.Tensor是两个东西!!)

连起来看:
就是torch.Tensor(2,3)创建了一个“形状”,uniform_()再从规定了首尾的均匀分布里面取值重新赋值。

第二种

import torch
A = torch.randn(2,2)
print(A)
A.uniform_(-10,20)
print(A)

效果:

解释
1.torch.randn()实际上创建了一个Tensor对象。
2. 所以说对于任何的Tensor对象,都能够用.uniform_()去改变他的值。

物联沃分享整理
物联沃-IOTWORD物联网 » torch 中的 uniform 具体用法

发表评论