tensor默认是不求梯度的,对应的requires_grad是False。
1.指定数值初始化
import torch #创建一个tensor,其中shape为[2] tensor=torch.Tensor([2,3]) print(tensor)#tensor([2., 3.]) #创建一个shape为[2,3]的tensor tensor=torch.Tensor(2,3)#会随机数值,等价于这种方式 tensor=torch.Tensor(size=(2,3)) print(tensor) '''tensor([[-3.6525e-01, 2.8671e-42, 0.0000e+00], [ 0.0000e+00, 0.0000e+00, 0.0000e+00]])''' shape=(2,3) zeros=torch.zeros(size=shape)#全部是0的tensor print(zeros) ''' tensor([[0., 0., 0.], [0., 0., 0.]]) ''' zeros_like=torch.zeros_like(zeros)#返回跟zeros的tensor一个size的全零tensor ones=torch.ones(shape)#全部是1的tensor ones_like=torch.ones_like(ones)#返回跟ones的tensor一个size的全一tensor arange=torch.arange(start=0, end=5, step=1) #返回一个从start到end的序列,步进为1 print(arange) #tensor([0, 1, 2, 3, 4])
2.指定分布初始化
import torch size=[2,3] rand=torch.rand(size) #[0,1)内的均匀分布随机数 rand_like=torch.rand_like(rand)#返回跟rand的tensor一样size的0-1随机数 randn=torch.randn(size)#返回标准正太分布N(0,1)的随机数 print(randn) ''' tensor([[-1.0543, 0.9566, -2.4818], [-0.8597, -0.7725, -1.6121]]) '''