pytorch学习笔记2 创建tensor

1 从numpy导入

a=np.array([2,3.3])
torch.from_numpy(a)

b=np.ones([2,3])
torch.from_numpy(b)

2从list导入

torch.tensor([2.,3.2])
torch.FloatTensor([2.,3.2])
torch.tensor([[2.,3.2],
			  [1.,22.3]])  

3 未初始化的随机数据

  • Torch.empty()
  • Torch.FloatTensor(d1,d2,d3)# 注意与Torch.FloatTensor([d1,d2,d3])的区别
  • Torch.IntTensor(d1,d2,d3)
    记得要使用前设置初始值,最好养成习惯,声明后就接着设置初值

缺省类型

  • torch.tensor([1.2,3]) 或者Tensor(1,1)缺省里面的数据是FloatTensor
    可以设置缺省类型,比如设为DOubleTensor:
    torch.set_default_tensor_type(torch.DoubleTensor)
    有随机数据很大或者很小的隐患

rand/rand_like, randint随机初始化

  • [0,1]
  • [min, max)
  • *_like
a=torch.rand(3,3)
b=torch.rand_like(a)
c=torch.randint(1,100,[3,3])

产生的
a: tensor([[0.1458, 0.5103, 0.6855],
[0.1972, 0.6910, 0.4974],
[0.2994, 0.0315, 0.1111]])
b: tensor([[0.0386, 0.2902, 0.7586],
[0.0865, 0.8761, 0.0327],
[0.2937, 0.8082, 0.7511]])
c: tensor([[24, 78, 58],
[48, 23, 79],
[16, 78, 36]])

randn 正态分布初始化

N(0,1)
N(u,std)

torch.randn(3,3) #产生3X3,均值0,方差1正态分布
torch.normal(mean=torch.full([10],0),std=torch.arange(1,0,-0.1)) #产生一个10个元素,每个元素均值(mean=指定)都是0,每个的方差是[1,0.9,0.8...,0.1]变化的随机数

full

torch.full([2,3],7) #产生一个2X3,值全是7的tensor
torch.full([ ],7) #产生一个0维,值是7的tensor(7.)
torch.full([1],7) #产生一个1维(该维长度是1),值是7的tensor([7.])

arange/ range(不建议用)

torch.arange(0,10) 
#产生 tensor([0,1,2,3,4,5,6,7,8,9])
torch.arange(0,10,2) 
#产生 tensor([0,2,4,6,8])

linspace/logspace

torch.linspace(0,10,steps=4)  #4是数量,不是间隔,自动计算平均分布间隔
#产生 tensor([0.0000, 3.3333, 6.6667, 10.0000])
torch.linspace(0,10,steps=11) 
#产生 tensor([0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])
torch.logspace(0,-1,steps=10) # 先产生10个平均分布的0->-1的数[0,-0.111,-0.2222,...,-1.0](假如记为mlist),再得到10的各个幂(即10**mlist)
#得到tensor([1.0000, 0.7743, 0.5995, 0.4642, 0.3594, 0.2783, 0.2154, 0.1668, 0.1292,
        0.1000])

ones/zeros/eye

在这里插入图片描述
在这里插入图片描述

randperm 随机打散

  • p=torch.randperm(10)
    得到tensor([9, 4, 6, 0, 5, 3, 1, 8, 7, 2])
  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

code .

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值