Pytorch生成Tensor常用方法汇总

 

torch.rand(*sizes, out=None)

返回一个张量,包含了从区间[0,1]的均匀分布中抽取的随机的一组随机数,张量形状由参数size定义。

>>> import torch
>>> a = torch.rand((2,3))
>>> a
tensor([[0.2969, 0.8017, 0.9024],
        [0.0810, 0.2303, 0.7425]])

torch.randn(*sizes, out=None)

返回一个张量,包含了从标准正态分布(均值为0, 方差为1,即高斯白噪音)中抽取的一组随机数,张量形状由size定义

>>> b = torch.randn((3 ,2))
>>> b
tensor([[ 0.6700,  1.4233],
        [-2.0809,  0.5361],
        [-0.5831, -0.3056]])

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

返回张量,包含了指定 均值means和标准差std的离散正态分布中抽取的一组随机数,标准差std是一个张量,包含了每个输出元素相关的正态分布标准差

  • 参数:
  • means (float, optional) - 均值
  • std (Tensor) - 标准差
  • out (Tensor) - 输出张量
>>> a
tensor([[0.2969, 0.8017, 0.9024],
        [0.0810, 0.2303, 0.7425]])

>>> c = torch.normal(mean=0.5, std=a)
>>> c
tensor([[ 0.2432,  1.0196, -0.0108],
        [ 0.6004,  0.3536,  0.6800]])

torch.linespace(start, end, steps=100, out=None)

返回一个张量,包含在区间start和end上均匀间隔step个点,输出张量的长度由steps决定。

  • 参数:
  • start (float) - 区间的起始点
  • end (float) - 区间的终点
  • steps (int) - 在start和end间生成的样本数
  • out (Tensor, optional) - 结果张量
>>> d= torch.linspace(1,10,10)
>>> d
tensor([ 1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10.])

torch.arange(start, end, step)

返回一维张量,形状为 (end-start)/step,数值在[start, end]间

  • 参数:
  • start (float) - 区间的起始点
  • end (float) - 区间的终点
  • step (int,float) - 数值增加步伐 start+step
  • out (Tensor, optional) - 结果张量
>>> g = torch.arange(1,10, 1)
tensor([1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> g = torch.arange(1,10, 1.6)
tensor([1.0000, 2.6000, 4.2000, 5.8000, 7.4000, 9.0000])

torch.ones(input.size(), dtype=input.dtype, layout=input.layout, device=input.device)

  • 参数:input_size: 生成张量形状
>>> e = torch.ones((2,5))
>>> e
tensor([[1., 1., 1., 1., 1.],
        [1., 1., 1., 1., 1.]])

# torch.zeros()与torch.ones类似
>>> f =torch.zeros((2,5))
>>> f
tensor([[0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.]])

troch.full(size, fill_value) 固定数值

  • 参数:
  • size: 生成张量的大小
  • fill_value: 填充张量的数
>>> torch.full((2,3),23)
tensor([[23., 23., 23.],
        [23., 23., 23.]])


————————————————

参考博客:https://blog.csdn.net/qq_26369907/article/details/89011213

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值