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

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

时间: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中,轴的设定都经常会遇到,但它们都是相通的,希望本文能帮你更好的理解它 —> 轴。

    推荐阅读
  • 离别的车站原唱(深情情歌送给你)

    以下内容希望对你有帮助!离别的车站原唱《离别的车站》是电视剧《情深深雨濛濛》的插曲,由赵薇演唱,琼瑶作词,歌曲情深意长,寄托了电视剧中依萍对书桓无尽的思念。当时插曲与电视剧剧情巧妙结合,让观众们感同身受,当时电视剧一播即火,其中的插曲《离别的车站》也随之走红,成为大街小巷传唱度极高的曲目之一。

  • 吃麻辣烫一直拉肚子怎么办(辣椒麻辣烫吃多了)

    而辣的感觉是通过辣椒素作用于舌头中的痛觉纤维产生的。而当我们摄入辣椒素之后,辣椒素和肠道中的辣椒素受体结合,我们的胃肠道就会受到刺激,加快蠕动,而且会变得不规律,比较能吃辣的人就会对这种刺激耐受性更大,不会产生特别明显的腹泻。而且如果你不考虑自身情况,吃辣超出了身体的耐受能力,就会使过多的辣椒素刺激你的胃肠粘膜直到高度充血的状态,就可能会引起腹痛、胃痛,诱发胃肠疾病。

  • 吃什么水果养颜排毒(吃如下水果可以养颜排毒)

    吃什么水果养颜排毒猕猴桃:猕猴桃含有丰富的钙、磷、硒、氨基酸和多种维生素,是日常生活中美容的良品。具有延缓皮肤衰老的功效。猕猴桃的抗氧化性能远高于苹果、橘子等其他水果,是美容护肤的优选食材。研究表明,经常吃蓝莓可以有效的保护皮肤免受电离辐射、紫外线、粉尘等导致的自由基损伤,有预防皮肤老化、防止皱纹、增加皮肤防御能力的功效。此外,桑葚能够滋阴补血,尤其适合气血虚弱的女性食用。

  • 广州申请员工制家政企业吸纳就业补贴需要什么资料

    1、单位登记信息;2、社保缴费信息;1、补贴对象在每年5月1日-6月30日向所在区公共就业服务机构提出申请;2、区公共就业服务机构和区人力资源社会保障部门在每年7月20日前完成受理、审核、复核;3、符合补贴条件的,区人力资源社会保障部门在接收各区公共就业服务机构推送的支付数据后,于12个工作日内拨付资金。

  • 全新柴油高尔夫(高尔夫推出跨界版)

    全新柴油高尔夫日前,海外媒体曝光了大众全新高尔夫的跨界版车型渲染图,新车在高尔夫的基础上抬高了底盘,在外观上变化较大,未来或将定名为“GolfAlltrack”。从渲染图来看,新车相比高尔夫普通版的离地间隙高出不少,在前后保险杠和侧裙处均加装了黑色银色下包围护板,前进气格栅左侧标有Alltrack标识,意味着这是一台Alltrack车型。

  • 核舟记中矫首昂视中的是什莫意思(矫首昂视什么意思)

    核舟记中矫首昂视中的是什莫意思矫,指抬、举。矫首昂视是指抬头仰望。《核舟记》是明朝文学家魏学洢创作的一篇说明文。全文语言生动平实、洗练,“核舟”的形象刻画得十分具体,其上的人物亦描绘得逼真而又生动,这些都无不体现了作者细腻的文笔。

  • 好看又好用的石英表(丝毫不输机械表)

    天梭的这款男士石英表,表壳和表带采用了一体的钛金属材质,外观富有张力,充满运动气息。不仅如此,雅克利曼还获得了F1方程式赛车这一世界驰名品牌的全球独家使用权,成为生产正宗方程式腕表的唯一企业。另有优雅的蝴蝶扣设计,外观简洁,使用方便。▼阿玛尼ArmaniAR6066男士石英表今年黑金配色才是硬道理!作为国际一线奢侈品牌的代表阿玛尼,一向都是时尚的先驱。众所周知浪琴赞助的体育运动如韵律体操、骑术比赛等皆以优雅著称。

  • 乳房下垂一般为什么造成(女性乳房下垂类型及原因)

    纺锤状乳房下垂是乳房基底部的横经径缩短为特征的乳房下垂。此种乳房下垂畸形系乳房组织疝坠至乳晕区域皮下所致,常合并大乳晕综合征。多见于中老年妇女,特别是绝经后的妇女。保护好韧带能预防和延缓下垂现象。据统计,有五成受访女性不知道胸部在运动时的剧烈摇晃会伤及乳房的弹性纤维组织,导致胸部松弛下垂。此外,不要用直流水冲两个肩膀部位的韧带,以免破坏其对胸部的提拉作用。

  • 你知道轮滑(轮滑就该如此简单)

    一搜索发现柒小佰果然有轮滑鞋,还是带着LINEFRIENDS联名和小怪兽两大系列,甚至还有对应的全套护具。让孩子挑选时,他直接就看中了LINEFRIENDS联名的莎莉款,说和他的柒小佰滑轮车颜色很搭配。再拿给我媳妇看看,她也是觉得黄色的莎莉小鸡版不光颜色极其醒目,并且造型也更萌。

  • 冬瓜怎么烧吃起来像红烧肉(千万别小看冬瓜)

    冬瓜绝对是一种既健康又营养,而且还非常好吃的食材。那么接下来咱们就一块去看一下这道素烧冬瓜的制作教程吧!冬瓜,小葱食用油生抽,老抽白糖食用盐鸡精。先把做素烧冬瓜的材料准备好,冬瓜准备一块就可以了,大概在半斤左右,这足够两个人吃的了。出锅装入盘中之后再撒上一点葱花装饰一下,一道非常美味的素烧冬瓜就这样完成了。