关于深度学习高维矩阵的形象化理解

对于初次接触深度学习的小白来说,高维张量总是很难理解,在我理解高维张量的本质后,也理解了之前阻拦我理解的问题点,所以写下这篇博客,用常用的三个对张量操作的函数进行解释,希望对后面学习的人有所帮助。

目录

重新理解permute

重新理解flatten

重新理解sum

首先先给出最重要的两点,后面会做出解释:

  1. 搞清楚该张量的最小组成单元是什么
  2. 不要尝试用几何解释高维张量

对于任何一个高维张量,它们都会只有一个最小单元。而这个张量的每一个维度就是对该单元的分类,例如在简单的分类中最后输出的二维矩阵(num_inputs, num_class)。num_inputs是每次输入的x个数,num_class是分出的种类。如果是猫狗识别,我们一次输入5张图片,而种类有猫狗两种,num_inputs就为5,num_class就为2,这里的最小单元就是概率。当然,没接触过分类的朋友可能不是很明白,后面我会用更加具体的例子。

有一个场景需要我们来预测苹果的价格,这个价格由三个要素决定,即种类,产地,品质

如果以上面三个要素产生一个shape为(3,2,2)的张量X,这个张量的最小单位价格,那么X[0][0][0]就是 好的 南部 黑苹果 的价格。

这看起来似乎很容易理解,那么我现在给X带上具体数值:

x = torch.arange(12,dtype=torch.float32)
x = x.reshape(3,2,2)
print(x)

重新理解permute

如果我现在使用 x = torch.permute(x,(1,0,2)) 来调换x的0和1维度,你能准确说出转换后每个位置的数值吗?我想有些人一下就懵了,其中有些人就没做到第二点:不要尝试用几何解释三维。几何做法就是用一个3*2*2的矩阵旋转一下,我们先不说这个方法没法解决三维以上的问题,就算真的这样做也很难迅速报出答案。

想要快速知道结果,只要搞清维度调换的本质就可以了。维度的变化可以用下图来表示:

原来的(0,0,0)是黑南好,现在是南好黑,所以维度转化后是不变的, 但原来的(1,0,0)是白南好,现在是北黑好,所以只要找到之前北黑好的价格就知道该点变化后的数值了。

转化后的张量:

可以看出,维度的变化只是在分类的顺序上变化了,如果维度是(a,b,c),就是先将数据在a上分类,然后是b和c,转换了维度,就是转换了分类顺序。知道这一点对后面的理解至关重要!

重新理解flatten

flatten(tensor, start_dim=0)是将一个张量从start_dim维度展平为1维向量,默认是从0维展平。

x = torch.arange(12,dtype=torch.float32)
x = x.reshape(3,2,2)
x = torch.permute(x,(1,0,2)) #转换维度(3,2,2)->(2,3,2)
print(x)
x = torch.flatten(x)
print(x)

 你能看出最后输出的一维向量的意义吗?其实我只要把每个数字对应的含义标出来你就能立马明白。0,1,4,5,8,9都是南部的苹果;0,1是黑苹果,4,5是白苹果,8,9是紫苹果;0是好苹果,1是坏苹果...这样你应该就能看出flatten的作用了吧。其实就是在一维向量里把苹果依次分类,即按照产地、种类、品质进行分类,产地就为”最外类“。

重新理解sum

x = torch.arange(12,dtype=torch.float32)
x = x.reshape(3,2,2)
print(x)
print(x.sum(1))

这里的结果直接去想很难想出来,必须要结合意义去理解。这里把第二维求和,也就是把产地维度进行求和了,可用下图表示:

原来有黑南好、黑南坏、黑北好、黑北坏,现在只有黑好和黑坏了,即黑好 = 黑南好 + 黑北好,黑南好为(0,0,0)的0,黑北好为(0,1,0)的2,0+2=2就是求和后的黑好(0,0)的结果。这样你是否能更加直观的理解了呢?

切记:这里代入数值只是为了验证这样的理解没有问题,在实际学习中我们需要做的是理解这样做的意义,不要代入数值去思考!

 有问题请评论提出,感谢支持!!!

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

最后一只三脚兽

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

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

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

打赏作者

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

抵扣说明:

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

余额充值