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

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

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

    推荐阅读
  • 斑鸠别名(斑鸠简单介绍)

    斑鸠别名斑鸠又叫笑鸽、斑鸠、锦鸠等。斑鸠的上体羽以褐色为主,头颈灰褐,染以葡萄酒色;额部和头顶灰色或蓝灰色,后颈基两侧各有一块具蓝灰色羽缘的黑羽,肩羽的羽缘为红褐色;上背褐色,下背至腰部为蓝灰色;尾的端部蓝灰色,中央尾羽褐色;颏和喉粉红色;下体为红褐色。斑鸠栖息在山地、山麓或平原的林区,主要在林缘、耕地及其附近集数只小群活动。巢形为平盘状,外径约30×40cm,内径约8.0×8.5cm。孵化期约18天,雏期约18天

  • 十八届五中全会全面放开二孩政策的原因

    2015年10月29日,十八届五中全会闭幕,会议决定:全面实施一对夫妇可生育两个孩子政策。截至2014年12月,全国仅有不足100万对单独夫妇提出再生育申请,而此前的官方预计是每年增加200万人左右。男女比例失调是性别偏好、生育数量限制和胎儿性别鉴定三个因素共同作用的结果,缺一不可。因此,要使男女比例恢复正常,有效的办法就是全面取消生育限制政策。本省全面二孩相关细则暂未出台,本文将在后续第一时间更新。

  • 浙江生意经顺口溜(浙江念念顺口溜)

    链接莲都区垃圾分类工作亮点:莲都区的垃圾分类于2015年开始探索,2017年正式启动,全面推进。当前,莲都区已在全区机关事业单位、93个小区和165个村开展垃圾分类工作,基本建立覆盖城乡的垃圾分类体系。目前,已建成餐厨垃圾处理中心,日处理量达80吨,28座农村资源站房陆续投入使用;建成17个垃圾分类高标准小区、两个省级高标准生活垃圾分类示范村。

  • 贾樟柯简介(导演贾樟柯简介)

    贾樟柯简介贾樟柯,1970年5月24日出生于山西省吕梁市汾阳市,中国影视导演、编剧、制片人、演员、作家,上海大学温哥华电影学院院长,毕业于北京电影学院文学系学院。2006年,故事片《三峡好人》获得第一届亚洲电影大奖最佳导演奖,该片获得第63届威尼斯国际电影节金狮奖。2007年,导演纪录片《无用》获得第64届威尼斯国际电影节地平线组最佳纪录片奖。2010年,获得第63届洛迦诺国际电影节终身成就奖。

  • 鲍鱼功效(鲍鱼有什么功效)

    以下内容大家不妨参考一二希望能帮到您!鲍鱼功效味甘咸、性平、滋阴清热、益精明目。可治劳热骨蒸,咳嗽崩漏,带下,淋病,青盲内障等症。肉有通经、润肠、利肠之功。壳有平肝潜阳、熄风、清热、明目、止血的作用。肉可治胃炎、胃溃疡,大便秘结。壳还可治高血压、头痛、头晕,幼儿疮积、消化不良、坐骨神经痛、外伤出血等。

  • 有害垃圾有哪些物品(什么是有害垃圾)

    跟着小编一起来看一看吧!有害垃圾有哪些物品电池类,包括纽扣电池、充电电池。普通干电池已达到国家低汞或无汞技术要求,现作为其他垃圾投放。含汞类,包括废荧光灯管、废节能灯、废水银温度计、废水银血压计、荧光棒等。废药类,过期药品为有害垃圾,装药片的瓶子可以根据材质作为可回收物投放。油漆类、废农药、废油漆、废农药、杀虫剂等残余液体需和容器一起作为有害垃圾投放。

  • 世界上有三眼女尸吗(死后被丈夫制成标本展览153年)

    死后被丈夫制成标本展览153年图片中这个五官突兀、长满胡须的女人,被称为“世界上最丑的女人”她生前曾拒绝过20个求婚者,其中一位美国男人为了迎娶她,专程跑去墨西哥,她死后仍被丈夫制成标本到处展览153年那么这些为她“痴迷”的男子,。

  • 教育家杂志特别报道(教育家杂志2022年1月刊第1期)

    |赵德成32优化教师评价,撬动教师发展|刘洁前沿理论QIANYANLILUN34初任教师如何善用情感因素增进师生关系?

  • 莱特兄弟性格(莱特兄弟终章不结婚)

    但这这便是莱特兄弟进行滑翔飞行实验的初衷。在如此重大的历史时刻,经过慎重决定,威尔伯·莱特成为了驾驶飞机首飞的人。最终,威尔伯·莱特驾驶飞机,在852英尺的高度飞行了整整59秒钟。虽然这只是一次简单的滑翔,但对于莱特兄弟来说,这是他们的第一个重大成就。他们的重点是提高滑翔飞机的飞行效率。5月30日,威尔伯在家中去世,享年四十五岁。35年后,奥维尔于1948年1月30日去世,享年76岁,死因是心脏病。

  • 美甲贴钻要封层吗(具体步骤是什么)

    我们一起去了解并探讨一下这个问题吧!封层之前把钻镶好,然后和封层一起照灯,接着涂抹第二遍封层,需要注意的是先上封层,然后在贴钻的地方用搓打磨,防止贴钻不牢固。接着选择半圆的珍珠饰品,沿着圆形钻饰的边缘,贴出之前挑选好的形状,进行修饰,一定要轻轻粘贴。