肥宅钓鱼网
当前位置: 首页 钓鱼百科

机器学习中样本容量选择(深度学习中的轴)

时间:2023-07-13 作者: 小编 阅读量: 1 栏目名: 钓鱼百科

深度学习中的轴在深度学习中,轴,指的就是张量的层级,一般通过参数axis/dim来设定很多张量的运算、神经网络的构建,都会涉及到轴,但到底取哪个轴,却不是那么容易把握下面会针对轴/axis/dim,基于Pytorc。

在深度学习中,轴,指的就是张量的层级,一般通过参数axis/dim来设定。很多张量的运算、神经网络的构建,都会涉及到轴,但到底取哪个轴,却不是那么容易把握。

下面会针对轴/axis/dim,基于 Pytorch 的代码和实例,尝试去理清张量运算中轴/axis/dim的设定。

轴的概念

对于一个张量,它的shape有几维,就对应有几个轴,也就对应着张量的层级,最直观的可以通过看最前面的方括号数量来判断。

import torcha = torch.Tensor([[1,2,3], [4,5,6]])b = torch.Tensor([[7,8,9], [10,11,12]])c = torch.Tensor([[[1,2,3], [4,5,6]], [[7,8,9], [10,11,12]]])print(a.shape)# torch.Size([2, 3])

上面的张量 a 和 b,都对应两个轴。axis/dim=0 对应 shape [2, 3] 中的2,axis/dim=1 对应 shape [2, 3] 中的3,而张量 c 有三个轴。

张量运算时对轴参数的设定非常常见,在 Numpy 中一般是参数axis,在 Pytorch 中一般是参数dim,但它们含义是一样的。

轴的使用

在做张量的拼接操作时,axis/dim设定了哪个轴,那对应的轴在拼接之后张量数会发生变化

>> torch.cat((a,b), dim=0)tensor([[ 1., 2., 3.],[ 4., 5., 6.],[ 7., 8., 9.],[10., 11., 12.]])​>> torch.cat((a,b), dim=1)tensor([[ 1., 2., 3., 7., 8., 9.],[ 4., 5., 6., 10., 11., 12.]])

对于上面torch中的cat操作,当设定dim=0时,两个维度是(2,3)的张量合并成了一个(4,3)的张量,在第0维,张量数从2变成了4,第1维没有变化;当设定dim=1时,在第1维,张量数从3变成了6,第0维没有变化。

在做张量的运算操作时,axis/dim设定了哪个轴,就会遍历这个轴去做运算,其他轴顺序不变

>> torch.softmax(a, dim=0)tensor([[0.0474, 0.0474, 0.0474],[0.9526, 0.9526, 0.9526]])​>> torch.softmax(a, dim=1)tensor([[0.0900, 0.2447, 0.6652],[0.0900, 0.2447, 0.6652]])

对于上面torch中的 softmax 操作,当设定 dim=0 时,就是其他轴不变,单次遍历 dim=0 轴的所有元素去做运算,上例中就相当于分别取了张量a中的第0列、第1列、第2列去做计算。

换一个角度,假设用for循环去遍历一个张量,那运算中设定的dim就是被放在最内层的for循环,其它的轴保持正常的顺序。

可以用下面的例子作为验证,这里tensor c 的shape 是 (m,n,p),用for循环去计算 torch.softmax(c, dim=1)

# for循环计算方式c = torch.Tensor([[[1,2,3], [4,5,6]], [[7,8,9], [10,11,12]]])# shape (2,2,3)m,n,p = c.shaperes = torch.zeros((m,n,p))for i in range(m):for j in range(p):res[i,:,j] = torch.softmax(torch.tensor([c[i,k,j] for k in range(n)]), dim=0) #这里对应最内层的for循环​# 库函数设定轴计算方式res1 = torch.softmax(c, dim=1)print(res.equal(res1))# True

axis/dim使用小总结:

  1. 在做张量的拼接操作时,axis/dim设定了哪个轴,那对应的轴在拼接之后张量数会发生变化
  2. 在做张量的运算操作时,axis/dim设定了哪个轴,就会遍历这个轴去做运算,其他轴顺序不变

实际上,第一条拼接操作也可以用第二条去理解,但拼接的轴张量数会发生变化更好理解和记忆。

轴的实例

其实一个轴设定的变化,会带来很大的差异,最典型的就是 BatchNorm 和 LayerNorm 了。

BatchNorm 和 LayerNorm 是针对数据的不同轴去做norm,假设输入数据的维度是(N,C,H,W),分别对应batch数,核数,高,宽,BatchNorm 就对应dim=0,LayerNorm 就对应dim=1,在不考虑移动平均等具体细节问题时,两者在形式上可以统一,只有一个dim参数的差别。

Pytorch 的实现(简化版)如下:

class Norm(nn.Module):def __init__(self, num_features, variance_epsilon=1e-12):super(Norm, self).__init__()self.gamma = nn.Parameter(torch.ones(num_features))self.beta = nn.Parameter(torch.zeros(num_features))self.variance_epsilon = variance_epsilon# 一个很小的常数,防止除0​def forward(self, x, dim):u = x.mean(dim, keepdim=True)s = (x - u).pow(2).mean(dim, keepdim=True)x_norm = (x - u) / torch.sqrt(sself.variance_epsilon)return self.gamma * x_normself.beta

当然,不仅仅是在深度学习里面,在 Numpy,Pandas中,轴的设定都经常会遇到,但它们都是相通的,希望本文能帮你更好的理解它 —> 轴。

    推荐阅读
  • 北方适合养殖的小项目 北方养殖好项目

    养殖业的快速发展使返乡农民又重新燃起了自己创业的想法,北方的气候和地势为养殖业提供了有利的优势,那么,北方适合养殖的小项目有哪些?北方适合养殖的小项目鸡、鸭、牛、羊、猪、大鹅、长毛兔、鲤鱼、鲢鱼、泥鳅等。北方养鸡需注意的是,冬季气温较低,要使用塑料布或其它不容易透风的材料围住圈舍,并且要及时把圈舍内的杂物和粪便清理干净,然后在圈舍内铺一层草灰或者干草。

  • 英雄无敌3实用性排行(英雄无敌3追随神迹曾经的巅峰MOD)

    从曾经的英雄无敌3到后来的追随神迹再到如今的ERA平台,诞生了无数令人称赞的优秀作品,而封神绝对是其中最惊艳的作品之一。封神MOD的改动几乎涵盖了游戏所有内容,但当时ERA的MOD被限制在总和不能超过30M,为了不超出这个限制又要保证预想功能的实现,创作者们耗费的精力难以想象,最后成品在当时几乎没有了更好的方案。这使得原先在追随神迹或是原英雄无敌3中较为弱势的英雄也有了用武之地。

  • 欢乐颂王凯上线了吗(欢乐颂2王凯代言DS能挽回DS的败局吗)

    《欢乐颂1》中还是一辆小Polo的赵医生在《欢乐颂2》中毅然换了一辆座驾。在昨天的剧情中,赵医生和曲筱绡还因为这辆车的问题,闹起了分手。然而,这一代言并没有给它刷到多少存在感,DS近一年的销量可以用惨淡来形容。直到今天,DS高层依然坚称DS要“坚持法系高端品牌的理念”。事实上,从终端市场来看,为了促进销量,DS在终端市场的价格已经下探了好多,完全已经可以覆盖一般消费能力的购买者。

  • 孜然蒜苔的做法(简单又好吃的哦)

    下面内容希望能帮助到你,我们来一起看看吧!孜然蒜苔的做法备好材料。锅内下少许油,放入蒜苔。盖上盖子,焖2分钟。放入适量蚝油,孜然粉和辣椒粉,涂抹均匀即可。

  • 口袋妖怪叶绿攻略(全方位了解口袋妖怪玩法)

    口袋妖怪叶绿攻略游戏开始,先选择男/女主角,再替主角改名。一开始阁下会身处于纯白镇家中二楼。然后出家门,向上行到草堆,遇见大木博士,他会带您到研究所,然后请从桌上选择精灵(三选一)选完后,小茂会选择克你属性,并跟你对战。回到纯白镇,去研究所跟大木博士讲话,他会给你宠物小精灵图鉴。跟小茂姊姊,会给你地图。到达了深灰市,先补血,去打道馆,这关道馆是岩石系的。用奇异种子、车厘龟可以一招杀XD。

  • 电子琴指法基本功练习(电子琴练习技巧)

    五线谱是一种固定调谱,通常是C大调。下面列出简谱各个大调式的7个键位中的黑键。以上键位的认定,必须通过大调音阶构成的检验。有些人通常只用大调音阶构成来认定,往往一时头脑不清醒,半音还是全音没搞准,造成音准不准确而使音调的漂移。要知道,首调唱名法因在表现调式形态方面的直观性和运用移调技术时的便利性,一直受到许多音乐理论家和教育家的重视,并且至今仍被欧美国家的许多音乐专业院校广泛采用。

  • 性格内向如何追求喜欢的女孩(性格内向的男生如何追求自己喜欢的女孩)

    性格内向的男人不愿意和陌生人有交际,通常会宅在家里玩游戏。所以性格内向的男人追求喜爱的女孩是很困难的。但是内向的人不善于表达自己的情感,多少是由于自卑造成的,不好意思向别人提出要求。先经过各种行动在表白,由女方同意之后,在公开情侣关系。我们用行动证明对她的爱,用一些细小的事情慢慢的打动她的芳心。看她反应如何,基本上来讲,是会成功的。

  • 沉闷是什么意思(词语沉闷什么意思)

    词语沉闷什么意思沉闷,读音是chénmèn,汉语词语释义是沉重,烦闷,心情不舒畅沉默不说话出处:《老残游记.第一三回》:“当此沉闷寂寥的时候,有个朋友谈谈,也就算苦中之乐了”造句:课堂上,老师给大家讲了个笑话,一扫教。

  • 智利红酒品牌排行(智利十大葡萄酒你都认识吗)

    智利作为新世界产酒国的后起之秀,孕育出了不少高品质佳酿,备受业内专业人士和葡萄酒爱好者的青睐。作为拉丁美洲葡萄酒行业的领头羊,干露酒庄的葡萄酒远销全球140个国家,影响力可谓非同凡响。在两大家族的双重加持下,酒庄出品的活灵魂酒庄红葡萄酒品质卓越,享有“智利酒王”的美誉。同时,在他的带领下,伊拉苏酒庄也获得了业内高度的关注与认可,集众多荣誉于一身。

  • 多多买菜门店怎么关闭 多多买菜门店怎么关闭了

    演示机型:Iphone12&&华为P40&&小米11系统版本:iOS14.4&&EMUI11&&MIUI12.0.7APP版本:拼多多5.80.0&&微信8.0.11多多买菜门店怎么关闭共有4步,本操作方法适用于Iphone12、华为P40、小米11三种机型。2点击门店管理进入页面后,点击进入门店管理选项。3点击歇业申请打开界面后,点击歇业申请选项。4根据提示填写资料提交根据页面提示,填写资料再提交即可。