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随机初始化
- 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])
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |