张量(tensor)及其操作总结

一、什么是张量
张量是属于线性代数里的知识点,线性代数是用虚拟数字世界表示真实物理世界的工具。

我们用点线面体的概念来比喻解释会更加容易理解:

点——标量(scalar)
线——向量(vector)
面——矩阵(matrix)
体——张量(tensor)
在这里插入图片描述
一个张量就是一个可以容纳N维数据及其线性操作的容器。
在这里插入图片描述
标量
单个数字就是一个标量。标量是一个0维的张量。因此,它具有0个轴,并且秩为0。
向量
向量是1维的张量,在计算机科学中经常把它叫做数组。向量由一串数字组成,具有1个轴,并且秩为1。
矩阵是秩为2的张量,即它有两个轴。矩阵就是把数字放入网格内(想象行和列),是一个2维的张量。
张量
严格来说,上述结构都是合法的张量。通常谈到张量时,都是将矩阵的概念推广到N>=3维。为了避免混淆,我们通常只把3维或更高维度的张量称为张量。

一个torch.size为3x3x3的tensor理解图如下:
在这里插入图片描述
二、对tensor的操作函数
squeeze()
减少tensor维度(只有维度=1时才能被去掉)
squeeze(0)就是在第一维度减少一个维度
squeeze(1)就是在第二维度减少一个维度
unsqueeze()
增加tensor维度
unsqueeze(0)就是在第一维度增加一个维度
unsqueeze(1)就是在第二维度增加一个维度
stack()
增加新的维度进行堆叠
transpose()
两个维度互换
permute()
多个维度互换,更灵活的transpose
cat()
对数据沿着某一维度进行拼接。cat后数据的总维数不变。
view
view(i,j)表示将原矩阵转化为i行j列的形式,重新塑造张量。 i为-1表示不限制行数,输出1列。i为1,j为-1表示不限制列数,输出1行。

对batch_size这个参数的理解
批尺寸Batch_Size为每次训练样本个数;
迭代次数=样本总数/批尺寸;
传送门

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值