张量分析(由浅入深地带你了解分析张量)
张量分析(由浅入深地带你了解分析张量)
神经网络的输入、输出、权重都是张量,神经网络中的各种计算和变换就是对张量操作,张量这种数据结构是神经网络的基石,可以说没有理解张量就没有真正理解神经网络和人工智能。本文由浅入深地详细讲解分析张量,望能给予读者启发——袁宵。
张量的定义
张量(tensor)是一个多维数组(multidimensional arrays),即一种存储数字集合的数据结构,这些数字可通过索引(index)单独访问,并可通过多个索引进行索引。
张量是将向量和矩阵推广到任意维数。如下图所示,一个张量的维数与张量中用来表示标量值的索引的数量一致。
新张量 = 张量[索引]
张量的视图与存储
点击张量的存储.ipynb 深入学习,下面是该文件的主要内容:
张量,PyTorch中的基本数据结构
索引并在PyTorch张量上进行操作以探索和处理数据
与NumPy多维数组互操作
将计算移至GPU以提高速度
张量的视图与存储的定义
存储(Storage)是一维的数字数据数组,例如包含给定类型的数字(可能是float或int32)的连续内存块。张量是这样一个存储的视图,它能够通过使用偏移量(offset)和每一维度的步长(per-dimension strides)索引(index)到该存储中。存储的布局总是一维的,而与可能涉及到它的任何张量的维数无关。
多个张量可以对相同的存储进行索引,即使它们对数据的索引是不同的。但是,底层内存只分配一次,因此不管存储实例管理的数据有多大,都可以快速地创建数据上的替代张量视图。
张量视图的多维性意义
张量的视图就是我们理解张量的方式,比如 shape 为[2,4,4,3]的张量 A,我们从逻辑上可以理解 为 2 张图片,每张图片 4 行 4 列,每个位置有 RGB 3 个通道的数据;张量的存储体现在张 量在内存上保存为一段连续的内存区域,对于同样的存储,我们可以有不同的理解方式, 比如上述 A,我们可以在不改变张量的存储下,将张量 A 理解为 2 个样本,每个样本的特征为长度 48 的向量。这就是存储与视图的关系。
张量存储的一维性
在存储数据时,内存并不支持这个维度层级概念,只能以平铺方式按序写入内存,因此这 种层级关系需要人为管理,也就是说,每个张量的存储顺序需要人为跟踪。为了方便表达,我们把张量 shape 中相对靠左侧的维度叫做大维度,shape 中相对靠右侧的维度叫做小维度,比如[2,4,4,3]的张量中,图片数量维度与通道数量相比,图片数量叫做大维度,通道 数叫做小维度。在优先写入小维度的设定下,形状(2, 3)张量的内存布局为:<Tensor:shape=(3,2),dtype=float32,numpy= array([[1.,4.], [2.,1.], [3.,5.]],dtype=float32)> [1.,4.,2.,1.,3.,5.]
数据在创建时按着初始的维度顺序写入,改变张量的视图仅仅是改变了张量的理解方 式,并不会改变张量的存储顺序,这在一定程度上是从计算效率考虑的,大量数据的写入 操作会消耗较多的计算资源。
张量存储的形状(大小)、存储偏移量和步长
为了索引到存储中,张量依赖于一些信息,这些信息连同它们的存储一起明确地定义了它们:大小、存储偏移量和步长(下图)。
中文英文意义形状shape是一个元组,表示张量表示的每个维度上有多少个元素。注意张量的形状(shape)与存储的大小(size)等价。步长stride是一个元组,表示当索引在每个维度上增加1时,必须跳过的存储中的元素数量。存储偏移量storage offset存储中对应于张量中第一个元素的index。
上图例子中,在二维张量中访问元素(i,j)(i,j)的结果是访问存储中的$storage_offset + stride[0] i + stride[1] j$元素。
更加广义的:对于形状为shape(d1,d2,..,dn)shape(d1,d2,..,dn)的张量的视图中的元素E(e1,e2,…,en)E(e1,e2,…,en),如果该张量的存储的步长为 stride(s1,s2,…,sn)stride(s1,s2,…,sn) 、存储偏移量为 storage offsetstorage offset,那么元素EE的存储位置indexindex是:
由此我们得出了张量视图的计算式子:
张量视图 = 张量存储 + 张量形状 + 张量步长 + 张量偏移
张量存储对张量操作的影响
这种张量和存储之间的间接性导致了一些操作,比如转置一个张量或者提取一个次张量,这些操作是便宜的,因为它们不会导致内存的重新分配;而是,它们包括分配一个新的张量对象,这个张量对象的形状、存储偏移量或步长有不同的值。
子张量的维数变少,而索引的存储空间仍然和原来的点张量一样。改变子张量会对原张量产生副作用(对子张量的修改会影响原张量)。但是这种效果可能并不总是存在,因为可以把子张量克隆成一个新的张量。
没有分配新的内存:只有通过创建一个新的张量实例来获得转置(transpose),这个张量实例的步长与原来的张量不同。可以通过张量的重新布局函数,比如PyTorch中的contiguous()函数,来强制拷贝一份张量,让它的布局和从新创建的张量一样。
张量的视图与存储的区别与联系
联系
对于形状 shape 为(d1, d2,.., dn)的张量的视图中的元素E(e1, e2,…,en),如果该张量的存储的步长为 stride 为 (s1, s2,…,sn) 、存储偏移量storage offset 为 s_o,那么元素E的存储位置index是:
张量视图 = 张量存储 + 张量形状 + 张量步长 + 张量偏移
区别
相同存储可以有不同的视图:tensor_B.storage() 与 tensor_B_transpose.storage() 相同,但是 tensor_B 与 tensor_B_transpose 不同。
相同的视图可以有不同的存储:tensor_A 与 tensor_B_transpose 相同,但是 tensor_A.storage() 与 tensor_B_transpose.storage() 不同。
总结:张量的视图与存储通过索引来建立关系,它们之间没有必然性,即相同存储可以有不同的视图,相同的视图可以有不同的存储。
张量的操作
点击TensorFlow张量的常用操作.ipynb深入学习,下面是该文件的主要内容:dtype=int32,float32,string,bool tf.convert_to_tensor,tf.constant,tf.zeros,tf.ones,tf.zeros_like,tf.fill,tf.random.normal,tf.random.uniform,tf.range A[1][2][1],A[1,2,1],A[:,:,0:3:2],A[...,0:3:2] tf.reshape,tf.expand_dims,tf.squeeze,tf.transpose tf.tile +,-,*,/,//,%,**,tf.pow,tf.square,tf.sqrt,tf.math.log,tf.matmul,@ tf.concat,tf.stack,tf.split,tf.unstack tf.norm,tf.reduce_maxminmeansum,tf.argmax,tf.argmin tf.equal tf.pad,tf.keras.preprocessing.sequence.pad_sequences,tf.tile tf.maximum,tf.minimum,tf.clip_by_value tf.gather,tf.gather_nd tf.boolean_mask tf.where tf.scatter_nd tf.meshgrid
美国投资公司(美国散户投资太火爆)美国投资公司(美国散户投资太火爆)财联社(上海,编辑潇湘)讯,据消息人士透露,全球最大的高频交易公司之一JumpTradingGroup将专门成立一个为个人投资者执行股票订单的部门
自动挡怎么半坡起步(自动挡半坡起步怎么不溜车)自动挡的上坡辅助系统,是指自动挡的车型,在斜坡上起步的时候。脚松开刹车,切换到油门的间隔时间里,通过上坡辅助系统的介入,可以防止车辆在没有动力又没有刹车的空档期间溜车。它可以完美的
东野圭吾放学后(推理破案小说放学后)东野圭吾放学后(推理破案小说放学后)预感被证明灵验是在第二天,九月十四日,星期六,第三节课结束时。我上完课回到办公室,教务主任松崎和长谷正站着说话,两人都抱着胳膊,像在沉思什么。刚
文言文翻译(语文文言文翻译技巧)文言文翻译(语文文言文翻译技巧)经常有同学问王老师文言文怎么学,其实除了最基本的实词虚词词类活用特殊句式等,最有效的学习方法就是在文言文阅读中学文言文,当你看到一篇文言文阅读,从一
文言文翻译大全(16册重要文言文语句翻译)文言文翻译大全(16册重要文言文语句翻译)初中语文文言文学不好,很大程度上是因为多数同学学习方法存在问题,导致学习成绩不如意,兴趣也不大。大多数学生按照教师解释文章整体意思,圈出关
猪人是真的吗(人猪杂交的猪人是真的吗?)猪人是真的吗(人猪杂交的猪人是真的吗?)关于猪人是真的吗这个问题,我们可以先来看看网上流传的十分广的一个故事有个叫林艺聪的采药人,某天他照常去采药的时候,在骑虎岩的山林里发现了一窝
如何刻录dvd(如何将电脑中的资料刻录到DVD?)如何刻录dvd(如何将电脑中的资料刻录到DVD?)今天同事要把学生参加比赛录制的视频刻录到光盘中上交,找我帮忙。很多年没刻录过了,我也是抱着试试的心态,找技术部借来了刻录机和可写的
自动档汽车驾驶视频(这样开自动挡,可以省油!)自动档汽车驾驶视频(这样开自动挡,可以省油!)如今汽车市场上,汽车主要是分为自动挡和手动挡的,而自动挡汽车也逐渐成为消费者的首选,因为自动挡汽车相比手动挡更加方便,而且自动挡易上手
春天里汪峰(想真正了解汪峰?)春天里汪峰(想真正了解汪峰?)汪峰的春天里,在某种意义上已经超过了他的成名作飞得更高,其扪心自问式的自省,风一般地掠过无数空荡寂寥的心脏,让人在绝望与悲鸣之际,在痛感时间的流逝之下
刘德华照片(60岁刘德华同框54岁那英)刘德华照片(60岁刘德华同框54岁那英)刘德华一直以来都是国内顶级的天王巨星,90年代时,他的知名度就已经享誉全亚洲,在整个中国更是相当的风靡,粉丝量在全国明星内排名第一,如今已经
中国好声音第三期完整版(第四季第三期完整版直播!)中国好声音第三期完整版(第四季第三期完整版直播!)中国好声音第四季第三期完整版直播小妹妹赞周杰伦好帅导师争抢白热化中国好声音第四季开播已经有一段时间了,这段时间以来,观众对节目都十
三国演义每回梗概(三国演义每1120回梗概)三国演义每回梗概(三国演义每1120回梗概)第一回汉朝末年,张角兄弟发动叛乱,刘备关羽张飞三人桃园结义,踏上了保国安邦的道路。第二回督邮故意刁难刘备,张飞怒不可遏,痛打了督邮一顿。
深圳最低工资(深圳社平工资出炉)深圳最低工资(深圳社平工资出炉)广东全口径就业人员深圳月平工资公布据近日公布消息,2020年广东省全口径从业人员月平均工资为7647元,深圳市2020年度在岗职工月平均工资为116
陈百强怎么走的(1993年陈百强去世)陈百强怎么走的(1993年陈百强去世)爱而不得对于一对恋人来说,是人生中最痛苦的事情,尽管两人非常相爱,却最终败给了现实,甚至有的情侣还没来得及说一句我爱你就阴阳两隔,对于他们来说
无线宽带路由器设置(如何配置光猫网线和无线路由器?)无线宽带路由器设置(如何配置光猫网线和无线路由器?)在营业厅办理好升级后,宽带维保人员会与你联系的,上门更换,而这个设置并不需要你来完成的,维保人员会帮你设置好,并测试宽带速度的。
猫怎么接路由器(光猫与无线路由器的连接方式)猫怎么接路由器(光猫与无线路由器的连接方式)光猫书面名称是光调制解调器,英文名称OpticalModerm,有时也称为单端口光端机或光纤收发器。光猫是国家光进铜退政策下,光缆进入家
三皇五帝时代(三皇五帝和中国文化的源头)三皇五帝时代(三皇五帝和中国文化的源头)我们现在讲文化复兴,但是我们的文化到底从哪里来,我们的文化是个什么模样。这是我们每个中国人都应该最先弄明白的问题。说起中国文化,大家最先想到
俄罗斯女人为什么很臭(俄罗斯姑娘的重大身体缺陷)俄罗斯女人为什么很臭(俄罗斯姑娘的重大身体缺陷)众所周知,俄罗斯美女非常多,走在大街上,女孩们各个都有一身白皙的皮肤,高挺的鼻子和深邃的双眸。因为地理位置和血统的原因,所以在俄罗斯
ps如何抠图(如何使用PS进行抠图?)ps如何抠图(如何使用PS进行抠图?)PS是一款功能强大的图片编辑软件,很多小伙伴在工作过程中,如果遇到图片的编辑需求,一般都会使用它来进行处理。但是对于很多没有制图技巧的小伙伴来
特种焊接(铝合金特种焊接方式)特种焊接(铝合金特种焊接方式)铝合金因其特殊的性能,现在在很多行业得到了应用,尤其是铁路机车以及化工行业。由于铝合金焊接对于焊缝的保护以及气孔的敏感性很高,所以对于氩气的保护要求很
办理二胎准生证(二胎放开,准生证办不办?)办理二胎准生证(二胎放开,准生证办不办?)有朋友问生二胎需要办理准生证吗?准生证有什么作用吗?得到了一些不同的回复早就不需要什么准生证,不管是生育险还是医保,报销只提供一孩或者二孩
准生证办理程序(夫妻双方在网上怎么办理准生证?)准生证办理程序(夫妻双方在网上怎么办理准生证?)随着时间的推移,我国的各项政策也在不断健全,夫妻在结婚后大多会选择生育子女,公民也是享有生育权的,那么在子女降生前,也是要办理许多证