CN111884658B 数据解压缩方法、数据压缩方法及卷积运算装置 (格兰菲智能科技股份有限公司)_第1页
CN111884658B 数据解压缩方法、数据压缩方法及卷积运算装置 (格兰菲智能科技股份有限公司)_第2页
CN111884658B 数据解压缩方法、数据压缩方法及卷积运算装置 (格兰菲智能科技股份有限公司)_第3页
CN111884658B 数据解压缩方法、数据压缩方法及卷积运算装置 (格兰菲智能科技股份有限公司)_第4页
CN111884658B 数据解压缩方法、数据压缩方法及卷积运算装置 (格兰菲智能科技股份有限公司)_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

入数据块进行解压缩,所述数据解压缩方法包于标识所述输入数据块中非0元素的位置和所述2掩码字段,用于标识所述输入数据块中非0元素的位置和所述输入数据块中元素的个其中,所述输入数据块的区域中的每一个元素与所述掩掩码字段中最后一个值为1的位对应所述输入数据块的区域中的最后一个元素,所述掩码字段中的一个值为0的位对应所述输入数据块的区域中除最后一个元素外的每一个值为0的元素,并且所述掩码字段中的一个值为1的位对应所述输入数据块的区域中除最后一个掩码字段,用于标识所述输入数据块中非0元素的位置和所述输入数据块中元素的个其中,所述输入数据块的区域中的每一个元素与所述掩掩码字段中最后一个值为1的位对应所述输入数据块的区域中的最后一个元素,所述掩码字段中的一个值为0的位对应所述输入数据块的区域中除最后一个元素外的每一个值为0的元素,并且所述掩码字段中的一个值为1的位对应所述输入数据块的区域中除最后一个3掩码字段,用于标识所述输入数据块中非0元素的位置和所述输入数据块中元素的个其中,所述输入数据块的区域中的每一个元素与所述掩掩码字段中最后一个值为1的位对应所述输入数据块的区域中的最后一个元素,所述掩码字段中的一个值为0的位对应所述输入数据块的区域中除最后一个元素外的每一个值为0的元素,并且所述掩码字段中的一个值为1的位对应所述输入数据块的区域中除最后一个数据处理模块,对所述输入数据块进行一级压缩,并将经过一级4掩码字段,用于标识所述输入数据块中非0元素的位置和所述输入数据块中元素的个其中,所述输入数据块的区域中的每一个元素与所述掩掩码字段中最后一个值为1的位对应所述输入数据块的区域中的最后一个元素,所述掩码字段中的一个值为0的位对应所述输入数据块的区域中除最后一个元素外的每一个值为0的元素,并且所述掩码字段中的一个值为1的位对应所述输入数据块的区域中除最后一个5[0003]使用独立于CPU(CentralProcessingUnit,中央处理器)的卷积运算模块(硬件6标识所述输入数据块中非0元素的位置和所述输入数据块中[0012]图2为根据本发明一实施例绘示的卷积神经网络100中第N卷积层和第N+1卷积层[0014]图3B为根据本发明一实施例绘示的进行卷积运算时卷积核为3*3时的输入数据块[0015]图3C为根据本发明一实施例绘示的进行卷积运算时卷积核为3*3时的输入数据块[0016]图3D为根据本发明一实施例绘示的进行卷积运算时卷积核为3*3时的输入数据块[0017]图3E为根据本发明一实施例绘示的进行卷积运算时卷积核为3*3时的输入数据块[0018]图4为根据本发明一实施例绘示的进行卷积运算时卷积核为k*k、卷积步长为s时[0020]图6A为根据本发明一实施例绘示的计算装置500的存储器520中存储的数据的示[0022]图6C为根据本发明一实施例绘示的将第N卷积层的输入特征图进行两级压缩后写[0023]图6D为根据本发明一实施例绘示的计算装置500生成一个输出特征图的处理流[0024]图6E为根据本发明另一实施例绘示的计算装置500生成一个输出特征图的处理流[0025]图6F-1~6F-2为根据本发明一实施例绘示的计算装置500以从左到右、从上到下7[0026]图7为根据本发明一实施例绘示的计算装置500对输入数据块进行解压的处理流[0028]图9A为根据本发明一实施例绘示的计算装置800的存储器820中存储的数据的示[0030]图9C为根据本发明一实施例绘示的将第N卷积层的输入特征图进行一级压缩后写[0031]图9D为根据本发明一实施例绘示的计算装置800生成一个输出特征图的处理流[0032]图9E为根据本发明另一实施例绘示的计算装置800生成一个输出特征图的处理流[0033]图9F-1~9F-2为根据本发明一实施例绘示的计算装置800生成一个输出特征图的89[0093]本公开中的技术方案中使用了两种无损压缩算法,分别是一级压缩和二级压为了方便后文的描述,我们先对这两种压缩算法进行描述。二级压缩算法可以是霍夫曼(Huffman)算法、LZW(Lenpel-Ziv&Welch)算法等,相应的,二级压缩算法格式是霍夫曼[0094]一级压缩算法可用于对包含较多个值为0的元素的矩阵进行压缩处理,一级压缩[0097]Mask字段(field)表示掩码字段,可以根据被压缩矩阵中的元素个数设置Mask字是标记被压缩矩阵中的非0元素的位置。使用Mask字段表示被压缩矩阵元素个数的方法有两种,第一种方式是将Mask字段的长度设置为与被压缩矩阵的元素个数相等(后文会描述使用第一种方式的情形);第二种方式是将Mask字段的长度设置为大于被压缩矩阵的元素被压缩矩阵中的元素没有对应关系的位的值设置为0,这样就可以根据Mask字段中最后一个值为1的位的位置计算出被压缩矩阵中的元素个数了(后文会描述使用第二种方式的情段中的每个值为1的位(bit)对应于被压缩矩阵中的一个值不为0的元素。当被压缩矩阵中[0098]Length字段表示长度字段,用于指示DesData字段的长度(DesData字段的长度是的值等于DesData字段的长度,Length字段可以指示的最大长度值等于Length字段的最大使用长度更大的Length字段(比如将Length字段的长度改为2个字节,就可以表示260的长使用Length字段表示DesData字段的长度的第二长度表示方式。在第二长度表示方式中,Length字段的每个值指示一个具体的长度值,Length字段可以指示的最大元素个数大于Length字段的最大值。比如,长度为2位(bit)的Length字段可以表示4个长度值,并且Length字段的每个值代表的长度值可以根据实际需要进行预设。例如,在一实施例中,如果被压缩矩阵中包含的值不为0的元素个数与Length字段的值能代表的长度都不同(即于被压缩矩阵中包含的值不为0的元素个数且能用Length字段的值代表的最小长度值对应段的值代表的大于6的最小长度是8(对应的Length字段的值为[00]2),所以选择Length字被设置为1,其它位被设置为0。进行解压缩处理时,根据Mask字段中值为1的位的位置和0080000005009000040[0101]当使用第一长度表示方式用Length字段的值表示DesData字段的长度对被压缩矩4]10[0104]假设被压缩矩阵Matrix1中的每个元素占用1个字节(byte)[0105]当使用第二长度表示方式用Length字段的值表示DesData字段的长度对被压缩矩段的长度为12、Length字段的值为[10]2时代为[11]2时代表DesData字段的长度为24[0108]假设被压缩矩阵Matrix1中的每个元素占用1个字节(byte)[0109]在另一实施例中,当多个被压缩矩阵中的元素个数不同时(即有的被压缩矩阵中Mask字段中与被压缩矩阵中的最后一个元素对应的位来作为计算被压缩矩阵中的元素个素对应于Mask字段中的一个位。被压缩矩阵中除最后一个元素外的每一个值为0的元素对素对应于Mask字段中的一个值为1的位,被压缩矩阵中的最后一个元素(值为0或者值不为压缩矩阵的最后一个元素是否不为0,所以我们需要将被压缩矩阵的最后一个元素的值存[0110]在此实施例中,当使用第一长度表示方式用Length字段的值表示DesData字段的为24位(由于多个被压缩矩阵中元素最多的被压缩矩阵中含有24个元素,所以设置Mask的[6]10中的6表示DesData字段阵Matrix1中的最后一个元素,Mask字段中与其对应的位是最后一个值为1的位(即Mask字[0113]假设被压缩矩阵Matrix1中的每个元素占用1个字节(byte)中会出现大量的稀疏数据(即数据中包含大量值为0的元素),而在运用本发明所揭示的一层(或激活层)的输出数据进行池化处理后再发送给下一[0118]特征提取阶段120的输出数据会作为分类阶段130的输入数据被发送给分类阶段到输入数据(即特征提取阶段120的输出数据)后,第1全连接层131至第Y全连接层13Y依次[0119]输入数据110中的图像经过特征提取阶段120中的第1卷积层的卷积运算(即特征[0120]图2为根据本发明一实施例绘示的卷积神经网络100中第N卷积层和第N+1卷积层卷积神经网络100的第N+1卷积层的输入数据,特征图集合250为卷积神经网络100的第N+1卷积核组集合240为卷积神经网络100的第N+1卷积层的N卷积层的卷积运算中,卷积核组221中的每个卷积核分别与特征图集合210中的对应特征进行卷积运算生成第一特征图(未绘示),特征图213与卷积核2212进行卷积运算生成第二第一特征图、第二特征图和第三特征图中位置相同的像素的值相加生成特征图231中对应个卷积核组对应一个输出特征图。计算每个输出特征图时都需要用到所有的输入特征图。序拼接成输出特征图。下面将结合图3A-3E对将输入特征图分割为输入数据块时的各种情[0125]现在请参照图3A,图3A为根据本发明一实施例绘示的卷积核为1*1时的分块卷积下同)的输出数据块,需要使用输入特征图310A中带右斜上线的输入数据块与卷积核313A积核为1*1时,生成输出特征图315A中的两个相邻且不重叠的输出数据块时需要用到的输入特征图310A中的两个输入数据块也相可以求出输出特征图315B中所有方框对应的[0128]图3B用于说明进行卷积运算时输入数据块在上下方向的重包含310B中的第1-4行中的每一行的前5列中的特征值所在的区域)与卷积核313B进行卷积文将其简称为下输出数据块),需要使用输入特征图310B中带右斜下线和交叉线的区域所3-4行中的带交叉线的区域和第5-6行中的带右斜下线的区域,即包含310B中的第3-6行中生成输出特征图315B中的两个上下相邻且不重叠的输出数据块(即上输出数据块和下输出数据块)时需要用到的输入特征图310B中的两个输入数据块(即上输入数据块和下输入数3时的输入数据块在左右方向的重叠情况示意图。图3C用于说明进行卷积运算时输入数据图310C中带右斜上线和交叉线的区域所组成的输入数据块(为便于描述,下文将其简称为叉线的区域,即包含310C中的第1-4行中的每一行的前5列中的特征值所在的区域)与卷积下文将其简称为右输出数据块),需要使用输入特征图310C中带右斜下线和交叉线的区域第1-4行中的带右斜下线的区域和第1-4行中的带交叉线的区域,即包含310C中的第1-4行中的每一行的第4-8列中的特征值所在的区域)与卷积核313C进行卷积运算。如图3C所示,重叠的输出数据块(即左输出数据块和右输出数据块)时需要用到的输入特征图310C中的两个输入数据块(即左输入数据块和右输入数据块)之间存在2*4大小的重叠3*3时的输入数据块在左上右下方向的重叠情况示意图。图3D用于说明进行卷积运算时输使用输入特征图310D中带右斜上线和交叉线的区域所组成的输入数据块(为便于描述,下第1-4行中的带交叉线的区域,即包含310D中的第1-4行中的每一行的前5列中的特征值所在的区域)与卷积核313D进行卷积运算。为了生成输出特征图315D中带右斜下线的输出数包含310D中的第3-6行中的每一行的第4-8列中的特征值所在的区域)与卷积核313D进行卷315D中的两个左上右下相邻且不重叠的输出数据块(即左上输出数据块和右下输出数据块)时需要用到的输入特征图310D中的两个输入数据块(即左上输入数据块和右下输入数3时的输入数据块在左下右上方向的重叠情况示意图。图3E用于说明进行卷积运算时输入用输入特征图310E中带右斜上线和交叉线的区域所组成的输入数据块(为便于描述,下文1-4行中的带交叉线的区域,即包含310E中的第3-6行中的每一行的前5列中的特征值所在的区域)与卷积核313E进行卷积运算。为了生成输出特征图315E中带右斜下线的输出数据包含310E中的第1-4行中的每一行的第4-8列中的特征值所在的区域)与卷积核313E进行卷315E中的两个左下右上相邻且不重叠的输出数据块(即左下输出数据块和右上输出数据块)时需要用到的输入特征图310E中的两个输入数据块(即左下输入数据块和右上输入数不重叠的输出数据块时需要用到的输入特征图中的两个输入数据块存在重叠区域。同理,出数据块时需要用到的输入特征图中的两个输入数据块存在的重叠区域的宽度为卷积核的输入特征图中的两个输入数据块存在的重叠区域的高度为卷积核的高度减去竖直方向的输入数据块经过卷积运算后生成的输出数据块相邻且不重叠(如图3B-3E所示的情形)。[0134]图4为根据本发明一实施例绘示的进行卷积运算时卷积核为k*k(k为大于0的整以及右上角重叠区域;位于输入特征图410的第1列的输入数据块不包含左上角重叠区域、左竖向重叠区域以及左下角重叠区域;位于输入特征图410的第最后一行的输入数据块不输入特征图中的所有输入数据块都当作是包含9个区域的输入数据块,对于某个特定的输[0138]在本公开下面的描述中,对于需要分块进行卷积运算的输入特征图(在输入特征示的方式分为多个具有重叠区域的输入数据块,然后将所有的输入数据块按照从左到右、输入数右下角重叠区域合称为下横向行重叠区域。比如,第1行输入数据块的下横向行重叠区域的左大于与输入数据块的主区域的重叠区域相邻的输[0142]图5为根据本发明一实施例绘示的包含卷积运算模块530的计算装置500的方块络100)中的卷积层的卷积运算。存储器520用于存储卷积神经网络中当前卷积层的输入特器520为系统存储器(systemmemory)。在另一实施例中,存储器520为静态随机存储器模块534耦接缓存532和运算器536,用于从缓存532中读取一级压缩的输入特征图和卷积块537将多个输出数据块进行两级压缩后存入存储器520中。配置暂存器531用于存放当前卷积层的参数(这些参数的运用方式将在后文进行说明)。缓存532包含缓存段5321和缓存对一个输入数据块和卷积核执行卷积运算以生成输出数据块。本公开中假定运算器536的[0145]首先,二级处理模块538根据配置暂存器531中的参数从存储器520中读取当前卷[0146]然后,一级处理模块534从缓存段5321中读取当前卷积层的输入特征图的一级压缩数据,并对其进行一级解压(一级压缩数据格式见前文)以得到当前卷积层的输入特征然后一级处理模块534将当前卷积层的输入特征图和与其对应的卷积核组中的卷积核发送征图是卷积运算的原始输入数据,在计算装置500进行卷积运算前需要先将其进行两级压此解压缩/压缩接口,位于卷积运算模块530外部的模块可以调用数据处理模块539以进行以通过卷积运算模块530提供的解压缩/压缩接口,将第1卷积层的输入特征图进行两级压压缩数据(只能处理输入特征图的原始数据),所以才在缓存532中存储输入特征图的一级[0151]图6A为根据本发明一实施例绘示的计算装置500的存储器520中存储的数据的示明一实施例绘示的将第N卷积层的输入特征图进行两级压缩后写入存储器的处理流程,图6D为根据本发明一实施例绘示的计算装置500生成一个输出特征图的处理流程,图6E为根据本发明另一实施例绘示的计算装置500生成一个输出特征图的处理流程,图6F-1~6F-2为根据本发明一实施例绘示的计算装置500生成一个输出特征图的更详细的处理流程。下段523用于存放当前卷积层的输出特征图集合(执行当前卷积层的卷积运算之前,存储段合在存储器520中的地址、第1卷积层的卷积核组中卷积核的宽和高、第1卷积层的卷积步[0153]使用计算装置500运行卷积神经网络之前,需要先将运行卷积神经网络需要的数X卷积层的卷积核组的集合写入存储段527,将第1卷积层的输入特征图集合按照图6C中的注意的是,只有第1卷积层的输入特征图集合是由计算装置500通过调用卷积运算模块530对外提供的压缩接口写入存储器520中的;其他卷积层的输入特征图集合都是上一卷积层的输出特征图集合,由数据处理模块539接收到之后直接进行两级压缩后存入存储器520特征图集合是由数据处理模块539(进行两级压缩后)写入存储段523中的。数据处理模块详述将第N卷积层的所有输入特征图进行两级压缩后写入存储N卷积层的所有输入特征图都先分割为带有重叠区域的输入数据块(使用如图4所示的分割+…同时也是第2行上所有输入数据块的第二次区域)被当作一个整体进行一级压缩;实施例中,可以将同一个输入特征图中的多个(比如5个)相邻的输入数据块的主区域作为[0157]在步骤S607C中,数据处理模块539将经过二级压缩后的输入数据块存入存储器区域和次区域存入存储器520的存储段521(比如,将第1卷积层的输入特征图存入存储段所有输入特征图(输入特征图5211至输入特征图521M)被顺序存放在存储段521中,且对于在输入特征图1中的下横向行重叠区域52112。以存储图4中的输入特征图410(假设输入特[0160]将第1卷积层的输入特征图集合经过两级压缩写入存储器520之后,运算装置500[0161]接收到开始卷积运算的通知后,计算装置500将以图6D或图6E(后文会详述)中的处理流程对第1卷积层的输入特征图集合与每一个卷积核组进行卷积运算以生成与每一个[0162]在步骤S603D中,多个输入数据块中的每个所述输入数据块被分割为多个不重叠将每个所述输入数据块分割为多个不重叠的区域,即将每个所述输入数据块分割为主区第一次区域(即输第一次区[0166]通过上述对图6C和图6D的描述可知,存储器520中存储的输入数据块是经过一级[0167]下面再描述图6E中的将输入特征图集合与一个卷积核组进行卷积运算生成一个个所述输入数据块包含一个主区域和至少一个次区域。详细而言,计算装置500从存储器520读取输入特征图的输入数据块区域,然后将读取到的输入数据块区域进行二级解压操将每个所述输入数据块的二级解压操作后的主区域与二级解压操作后的至少一个次区域分别存储至缓存532中不同的存储空间。更详细的流程参见后文对图6F-1~6F-2的步骤从缓存532中读取输入数据块的经过一级压缩的主区域和次区域,对读取到的经过一级压从暂存器5342中读取输入数据块的经过一级解压操作后的主区域和次区域生成输入数据[0173]下面描述图6F-1~6F-2中的将输入特征图集合与一个卷积核组进行卷积运算生组集合在存储器520中的地址,从存储器520的存储段527中读取当前卷积层的一个还没有积核组可包含多个卷积核(如缓存段5323中所示的卷积核1至卷积核M)。然后执行步骤[0175]在步骤S603F中,二级处理模块538从存储器520读取所有输入特征图中位于相同图集合在存储器520中的地址,从存储器520的存储段521中读取每个输入特征图位于相同次可以读取每个输入特征图的一部分(比如5个)输入数据块的经过两级压缩的主区域。然过二级压缩的主区域52111进行二级解压后生成的一级压缩数据存入输入特征图缓存段53211的主缓存段532111中…等等,直至将输入特征图M的经过二级压缩的主区域521M1进行二级解压后生成的一级压缩数据存入输入特征图缓存段5321M的主缓存段5321M1中为域(即横向主区域)所属的输入数据块不位于第1列也不位于最后一行,由于输入数据块的第一次区域已经在处理与其处于同一行第1列的输入数据块时被读取了,所以不需要再次行也不位于最后一列,由于输入数据块的第一次区域已经在处理与其处于同一列第1行的[0178]在步骤S609F中,二级处理模块538从存储器520读取刚读取到的主区域所属的输中,二级处理模块538读取与读取到的输入数据块位于同一行(或列)的所有输入数据块的二级处理模块538将读取到的第一次区域进行二级解压,生成各个经过一级压缩的第一次区域,并将各个经过一级压缩的第一次区域分别存入缓存532的缓存段5321的输入特征图[0179]由于存储器520位于卷积运算模块530的外部,卷积运算模块530读取当前卷积层的输入特征图的数据时的速度会受到存储器520与卷积运算模块530之间的数据传输带宽运算模块530之间的需要传输的数据量,提高了数据传输效率,因而提高了卷积运算模块特征图数据,从而可以使卷积运算模块530能对具有更多输入特征图的卷积层进行卷积运输入特征图缓存段53211的主缓存段532113至输入特征图缓存段5321M的主缓存段5321M3[0183]在步骤S617F中,一级处理模块534从缓存532读取各个经过一级压缩的第一次区5321的各个输入特征图缓存段(53211-5321M)的次缓存段读取各个经过一级压缩的第一次区域(532113-5321M3),将各个经过一级压缩的第一次区域进行一级解压后存入暂存器5342的次暂存段53423的子暂存段5342311至534231M(或子暂存段5342331至534233M),然了生成输入特征图410的第1行的输入数据块,只需要与第1行所有输入数据块对应的第一2行的输入数据块,除需要与第2行中所有输入数据块对应的第一次区域(即下横向行重叠1行中所有输入数据块对应的第一次区域5342311至534231M和子暂存段5342331至534233M中的那组子暂存段中存放的下横向行重和第二次区域在暂存器5342的次暂存段53421中的起始位置。以图4中的输入特征图410为[0185]然后,一级处理模块534根据输入数据块的第一次区域和第二次区域在暂存器[0188]在步骤S623F中,一级处理模块534从缓存532中读取卷积核组并将其存入暂存器M),并将读取到的卷积核组存入暂存器5342的卷积核组暂存段53425的子暂存段534251-534将所有输入特征图的输入数据块和卷积核组中相应的卷积核(一个输入数据块对应一个卷积核)发送给运算器536。运算器536将接收到的所有输入数据块和预取对应的卷积核分配到空闲的运算单元5361-536Z进行卷积运算(卷积运算的详细流程参见前文中对图2的[0190]在步骤S627F中,卷积运算模块530判断是否已生成输出特征图的所有输出数据后,数据处理模块539通过图6C所示的处理流程将生成的输出特征图经过两次压缩后存入[0192]通过再次执行图6F-1~6F-2所示的处理流程,通过在步骤S601F中读取下一个卷[0193]图7为根据本发明一实施例绘示的计算装置500对输入数据块进行解压的处理流[0196]在另一实施例中,在卷积运算装置530的缓存532的缓存[0197]图8为根据本发明另一实施例绘示的包含卷积运算模块的计算装置800的方块与计算装置500不同的是,计算装置800把卷积运算后生成的输出特征图(即下一卷积层的输入特征图)直接存入缓存中(而不存入存储器中),从而避免了向存储器中存入和读取下~9F-2图介绍计算装置800。838,然后由二级处理模块838将经过一级压缩后的输出数据块存入缓存832的缓存段8322二级处理模块838存入缓存832中(而不是先存入存储器820中,然后再由二级处理模块838[0200]由于第1卷积层的输入特征图(存储在存储器820中)是卷给数据处理模块839。数据处理模块839再将接收到的第1卷积层的输入特征图通过分割模块535和压缩模块837进行分割和压缩处理后存入缓存832中,具体的分割和压缩过程在前[0201]图9A为根据本发明一实施例绘示的计算装置800的存储器820中存储的数据的示数据块进行卷积运算的过程中,缓存段8322用于存储当前卷积层(即第N+1卷积层)的输入[0203]图9C为根据本发明一实施例绘示的将第N卷积层的输入特征图进行一级压缩后写输入数据块进行一级压缩(步骤903C),最后将经过一级压缩后的输入数据块存入缓存832[0204]在步骤S907C中,二级处理模块838将经过一级压缩后的输入数据块存入缓存832[0205]接收到开始卷积运算的通知后,计算装置800将以图9D或图9E(后文会详述)中的处理流程对第1卷积层的输入特征图集合与每一个卷积核组进行卷积运算以生成与每一个S903D中生成的多个输入数据块的多个不重叠的区域进行一级压缩后存入缓存832的缓存[0207]图9E为根据本发明另一实施例绘示的计算装置800生成一个输出特征图的处理流的主区域与至少一个次区域执行一级解压操作(步骤S905E);利用每个所述输入数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论