【pytorch04】创建Tensor

numpy中的数据创建tensor

在这里插入图片描述
数据已经在numpy中了,将numpy中的数据转到tensor中来,因为我们将使用tensor在GPU上进行加速运算
从NUMPY导入的FLOAT其实是DOUBLE类型

list中的数据创建tensor

在这里插入图片描述
FloatTensor()和大写的Tensor()接收的是shape(即数据的维度),当让也可以接收现有的数据,
接收数据时必须用list表示,接收shape时不需要中括号的(2,3)

小写的tensor()接收的是现有的数据

建议使用小写的给现成的数据,使用大写的情况少用

生成未初始化的数据

  • Torch.empty()

  • Torch.FloatTensor(d1,d2,d3)

    • Not torch.FloatTensor([1,2]) = torch.tensor([1,2])
  • Torch.IntTensor(d1,d2,d3)
    加的都是shape

在这里插入图片描述

设置默认数据类型

pytorch的默认类型是FloatTensor
增强学习一般使用double,其他一般使用float
在这里插入图片描述

随机初始化

  • [0,1] 均匀的采样在0~1之间
  • [min,max)
  • *_like

在这里插入图片描述
rand_like(a) 把a.shape读出来再送给random函数
randint(1,10,[3,3])第一个参数是最小值,第二个参数是最大值,第三个参数是shape

正态分布

  • N(0,1)
  • N(u,std)
    在这里插入图片描述
    randn(3,3) 初始化,均值为0方差为1,因此它的值可能会集中在0附近,会有一个方差为1的波动,基本在0的附近波动,因为方差比较大,所以会在一个大的范围之内跳动

torch.normal(mean=torch.full([10],0),std=torch.arange(1,0,-0.1))可以自定义均值和方差,例如要抽样3×3的正态分布的数据,先把3×3打平成9,再给出一个维度为9的list [9]的这样的均值mean,在给定一个维度为9的这样的方差std,因为3×3的tensor都是采样于同一个正态分布所以这9个数据所有的均值和方差都是一样的

torch.normal(mean=torch.full([10],0),std=torch.arange(1,0,-0.1))
full([10],0)是生成长度为10但是都为0这样的向量[0,0,0,0,0,0,0,0,0,0]
方差的话是从1到0慢慢的减小[1.0,0.9,0.8,0.7,0.6,0.5,0.4,0.3,0.2,0.1]arange不包含右边界也就是不包含0

生成的这个数据一共有十个方差,第一个方差会比比较大,所以跳动的返回比较大,后面会慢慢收敛

得到了一个dimension为1长度为10的tensor
可以用reshape改变形态

赋值为一个元素

在这里插入图片描述
设置为一个标量,dimension是0,所以给shape给一个空的例子就行[]
torch.full([],7)

如果要给一个dimension为1的向量,给一个括号括起来就行了
torch.full([1],7)

递增或递减生成等差数列

在这里插入图片描述

生成等分向量

linspace(0,10,steps=4) 这里的10是包含的,这里的steps是数量值,比如这里是4,就会把0到10等分成一个3.3,6.6,10这样的数列,可以这么认为0是开始的位置,所以还需要3个等分片段也就是将1~10这10个数字除以3,10/3=3.3333

logspace(0,-1,steps=10)0到-1之间切割成10份然后作为以10为底,指数部分为等分的指数
logspace的base参数可以设置为2,10,e等底数
在这里插入图片描述

生成全部是0或1或单位矩阵的tensor

在这里插入图片描述

在这里插入图片描述

生成随机打散的tensor

在这里插入图片描述

randperm(10)是生成0到10的索引不包含10
生成这个索引可以用来shuffle

有a和b的tensor,我们希望再dimension=0的维度上随机的shuffle,并且希望再shuffle的时候保持配对

比如说第一个tensor表示[人名,数学分数],第二个tensor表示人[人名,语文分数],因此shuffle的时候,可以在人这个维度上随机shuffle但是每个人的语文分数和数学分数必须匹配起来,因此我们需要用同一个索引来做shuffle

我们用索引的种子来做shuffle,如果是[0,1]的话就是维持不变,[1,0]的话就是第一个人和第二个人换一下位置,如果第一个人和第二个人换位置之后数学成绩反过来了,那语文成绩也要反过来
在这里插入图片描述

  • 23
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值