张量分析(由浅入深地带你了解分析张量)
张量分析(由浅入深地带你了解分析张量)
神经网络的输入、输出、权重都是张量,神经网络中的各种计算和变换就是对张量操作,张量这种数据结构是神经网络的基石,可以说没有理解张量就没有真正理解神经网络和人工智能。本文由浅入深地详细讲解分析张量,望能给予读者启发——袁宵。
张量的定义
张量(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
1916多少钱一包(黄鹤楼香烟大全价格图片)很多抽烟人都说自己抽的不是烟,是寂寞。其实对于做生意的老板来说,或许真的不是烟瘾大,而一包有档次的香烟,使人看起来有样子。下面介绍以下适合老板抽的4种烟第一种黄鹤楼(软短1916)
u盘启动设置(U盘启动项设置方法你知道吗?)u盘启动设置(U盘启动项设置方法你知道吗?)如果电脑里的操作系统崩溃后,就无法正常进入系统使用了。所以我们需要使用U盘重装系统。用U盘重装系统时,如何将U盘设置为第一个启动项呢?下
苹果手机充电器(iPhone12风口至,鹏元晟推出20W快充充电器)苹果手机充电器(iPhone12风口至,鹏元晟推出20W快充充电器)去年iPhone12发布的同时苹果也宣布了一项措施,将不再为所有iPhone配备充电器,以促进全球环保事业发展。
秦国历代皇帝(中国皇帝简介之秦始皇篇)秦国历代皇帝(中国皇帝简介之秦始皇篇)1。秦始皇嬴政,嬴姓,赵氏名政,又称赵政祖龙。公元前259年出生于赵国邯郸,为秦庄襄王和赵姬之子。2。公元前247年,秦庄襄王驾崩。嬴政继承王
腋窝出汗怎么办(腋下出汗汗味浓有救啦)腋窝出汗怎么办(腋下出汗汗味浓有救啦)大家好呀,现如今夏日炎炎,腋下出汗就成了万千少女的老大难问题。虽说出汗是再正常不过的生理现象,但是腋下出汗太多,汗渍印在衣服上,在公众场合中,
腋下出汗多(腋窝多汗虽属正常)腋下出汗多(腋窝多汗虽属正常)腋窝出汗是很正常的现象,人在运动过程中身体会散热,流汗是一种散热现象。另外,进食刺激性较大的食物会导致皮层汗腺受到刺激,进而产生大量汗液。腋窝出汗有时
盗汗的原因(出汗特别多是什么原因?)盗汗的原因(出汗特别多是什么原因?)很多人出汗止不住,一旦天气炎热就会开始汗流浃背,本来出汗是人体的一种正常现象,但是到你这就变成了负担,今天就带大家认识一下出汗在中医里面分为几种
酒糟鼻治疗液(酒渣鼻发病受多种因素影响)酒糟鼻治疗液(酒渣鼻发病受多种因素影响)导语据调查统计,我国在八十年代初期发病率为2。19,到九十年代初期下降到0。17,随着生活质量的提升,到2015年发病率提升到1。24。因气
酒渣鼻强效液(常见的酒糟鼻强效液是有哪些)酒渣鼻强效液(常见的酒糟鼻强效液是有哪些)酒渣鼻是一种很常见的皮肤症状,酒渣鼻这种疾病也是一种很难治愈的疾病,因此患上这种疾病大家都是非常痛苦的,而近年来临床上用于治疗这种疾病的强
武汉封城日记完整篇(封城一个月!)武汉封城日记完整篇(封城一个月!)封城第31天2020。2。22周六(正月廿九)封城一个月2020年1月23日,武汉封城。今天,按一个月31天满打满算,已经封城整整一个月了。对比湖
2013生肖运势(19532013年全面分析生肖蛇一生运势)2013生肖运势(19532013年全面分析生肖蛇一生运势)属蛇人一生运势巳蛇年生人,其性稳和才智,好安排进退,甚喜交际。有高尚的品质,受朋友好评,但其内心常有阴毒与忌妒心,致难以
天堂里的爱(睡在天堂的爱)天堂里的爱(睡在天堂的爱)你还是个孩子吗?你还在讨厌你妈觉得你冷式的唠叨吗?有多少人曾经讨厌过?又有多少人当下思念着?都说母爱如水,父爱如山,感恩给予我们生命,将我们养育成人的双亲
开曼群岛(开曼群岛真的是避税天堂吗?)开曼群岛(开曼群岛真的是避税天堂吗?)开曼群岛真的是避税天堂吗。2020年华为营收8941亿,净利润646亿,纳税1010亿。2020年阿里巴巴营收5097亿,净利润1493亿,纳
下一个天堂(年轻人的下一个天堂!)下一个天堂(年轻人的下一个天堂!)前言电玩行业是监管最为严格的一行,秩序乱混杂人群不同造成社会对这一行业早已摒弃。本文仅站在年轻人消遣角度看行业,其中会涉及到部分行业的前景观点(个
建筑艺术欣赏(欣赏一下各地的创意建筑)建筑艺术欣赏(欣赏一下各地的创意建筑)今天带大家领略一下世界各地的奇怪建筑,当然这些都是设计者的精心创意!只是有些创意的确让我们常人难以接受。据说有些还价值不菲。地道的菜篮子工程这
鲁迪费尔南德斯(费尔南德斯和娇妻近照)鲁迪费尔南德斯(费尔南德斯和娇妻近照)一直以来,西班牙男篮都是世界篮坛的劲旅,08年北京奥运会和梦八队打的难解难分,而在今年的世界杯上,美国队早早出局,西班牙却逆袭夺得了总冠军。除
五个孩子(你们有见过一对夫妻生了五个小孩)五个孩子(你们有见过一对夫妻生了五个小孩)说说我们这一个真实的故事吧,闲来无事,有感兴趣的我会持续更新,所有故事情百分百节没有编造,绝对真实。我们这有一对老夫少妻,丈夫比妻子大20
这辈子都不可能打工的(打工是不可能打工的周立齐)这辈子都不可能打工的(打工是不可能打工的周立齐)2020年4月,尽管此时还处于疫情期间,但柳州监狱门前的路口早已豪车云集,人群喧嚷。这让不少路过的行人产生了好奇心,纷纷驻足观看,想
盈科律云(盈科地产联手律云科技)盈科律云(盈科地产联手律云科技)2016年12月06日,以创新,守信,共赢为主题的北京盈科房地产经纪有限公司和北京盈科律云科技股份有限公司战略合作签约仪式暨盈科地产直营方庄店开业仪
大兵小将票房(投资300万,内地大卖1。62亿)大兵小将票房(投资300万,内地大卖1。62亿)进入2000年后,成龙大哥的华语电影成绩下滑比较严重,以至于很多质疑他号召力的声音出现。十年以前的内地市场还未崛起,那时候收票房本来
从司马到司马(从司马到司马西晋的历程)从司马到司马(从司马到司马西晋的历程)内容简介在我国历史上,有一个家族和他建立的政权对历史和社会产生过重要影响,这就是司马氏及其建立的晋王朝。司马氏先后建立了西晋和东晋两个政权。人
c语言从入门到精通(C语言从入门到精通步入C的世界)c语言从入门到精通(C语言从入门到精通步入C的世界)学习一门编程语言之前,首先要做的就是熟悉这门语言所使用的开发软件开发环境。下面介绍一下C语言常用的开发环境。1。1。1C常用开发