pytorch学习条记2 创建tensor

打印 上一主题 下一主题

主题 1005|帖子 1005|积分 3015

1 从numpy导入

  1. a=np.array([2,3.3])
  2. torch.from_numpy(a)
  3. b=np.ones([2,3])
  4. torch.from_numpy(b)
复制代码
2从list导入

  1. torch.tensor([2.,3.2])
  2. torch.FloatTensor([2.,3.2])
  3. torch.tensor([[2.,3.2],
  4.                           [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
  1. a=torch.rand(3,3)
  2. b=torch.rand_like(a)
  3. 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)
  1. torch.randn(3,3) #产生3X3,均值0,方差1正态分布
  2. 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(不发起用)

  1. torch.arange(0,10)
  2. #产生 tensor([0,1,2,3,4,5,6,7,8,9])
  3. torch.arange(0,10,2)
  4. #产生 tensor([0,2,4,6,8])
复制代码
linspace/logspace

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



randperm 随机打散



  • p=torch.randperm(10)
    得到tensor([9, 4, 6, 0, 5, 3, 1, 8, 7, 2])

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

tsx81429

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表