《用于多媒体内容描述和分析的神经网络压缩》_第1页
《用于多媒体内容描述和分析的神经网络压缩》_第2页
《用于多媒体内容描述和分析的神经网络压缩》_第3页
《用于多媒体内容描述和分析的神经网络压缩》_第4页
《用于多媒体内容描述和分析的神经网络压缩》_第5页
已阅读5页,还剩183页未读 继续免费阅读

下载本文档

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

文档简介

1过程,补充了现有神经网络格式中网络拓扑的描述。它建立了一个压缩方法工具箱(在适用的情况还可以用于压缩神经网络相对于基础网络的差分更新,例如,当模型在微调或迁移学习后重新分布本文件没有规定神经网络传输的完整协议,而是侧重于网络参数的压缩。仅规定语法格式、语成/信令,而预处理、系统信令和复用、数据丢失恢复和后处理等其他事项超出了本文件的范围。此下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用3.123.23.33.43.53.63.73.83.9稀疏化sparsification34.1通则DeepCABAC:深度神经网络的上下文自适应二进制算术编码(Context-adaptivebinary4.3符号4ff-循环矩阵Zf的参数pij转移矩阵P的元素S第k层中的第j个超块y,yref编码性能,参考编码性能Zff-循环矩阵6用于表示数学等式中不进行截断或舍入的除法,包括∑=xf(i)对f(i)求和,其中取从x到y的所有整数值。f(i)我f(i)的乘积,其中i取从x到y的所有整数值x&&yx和y的布尔逻辑“与”x||yx和y的的布尔逻辑“或”!布尔逻辑“非”7array[x,y]包含x和y位置之间的数组元素的子数组。如果y大于y,则生成的子数组为89位置。如果索引指向入口点的第一个位置,则返回张量内的入口点索引。要确定入口点的位置和索reordedTensor[],它是inputTensor[]的一个副本,具有相同的维数,但维度被重新排列,使得}}注:对于那些在C编程语言中也使用的运算符,本文件中使用的优先顺序与C编程语言中使用的优先顺序相"x*y","x/y","x÷y","","x%y","f(i)""x+y","x-y"(作为二参数运算符),"Σ=xf(i)n"种用于其编码表示方法的数据类型描述。解码过程根据语法元素的值和先前解码的语法元素进行操在某些情况下,语法元素值或变量值的“助记符”名称与其数值可互换使用。有时使用“助记),5.1通则和分解方法。稀疏化处理参数或参数组以产生模型的稀疏表示(例如,通过将某些权重值替换为果推理引擎支持,则可以使用量化表示进行更高效的推理。本文件包括均匀量化方法(子条款c)低秩分解(有关子条款G.1.8中提供的编码)-相关标量量化(子条款9.2.3)-f)随机二进制三元量化(子条款G.2.3中提供的编码信息)-预测残差编码(子条款924)- /*语句可以是具有关联数据类型的语法元素/*大括号中的一组语句是复合语句,在功能{}/*“dowhile”结构规定了语句的求值/*“for”结构规定了对初始语句的求值6.1.2位序.... 如果比特流中的当前位置在字节边界上,即比特流中的下一位是一个字节的第一位, read_bits(n)读取比特流的接下来n位,并将比特流指针前进n个位的位置。当n等于0,get_bit_pointer()返回比特流指针相对于当前NNR单元开头的位置作为无符号整数值。 的旁路模式。被读取的旁路箱被译为无符号整数的二进制的形式,其中最高有效位首先写 ), }6.1.4语义nnr_reserved_zero_1bit,如果存在,在符合本文件此版本的比特流中应等于0。nnrnnr_reserved_zero_2bits,如果存在,在符合本文件此版本的比特流中应等于0。nnrnnr_reserved_zero_3bits,如果存在,在符合本文件此版本的比特流中应等于0。nnrnnr_reserved_zero_5bits,如果存在,在符合本文件此版本的比特流中应等于0。nnrnnr_reserved_zero_7bits,如果存在,在符合本文件此版本的比特流中应等于0。nnr 聚合NNR单元是在其有效载荷中承载多个NNR单元的NNR单元。聚合NNR单元为多个相互关联6.2.3比特流的构成 NNR_TPL或NNR_QNT单元;如果存在于NNR比特流中,则应位于引用其数据结构的所有}nnr_unit_size_flagnnr_unit_sizeu(15+nnr_unit_size_fla}通则partial_data_counter_present_flagif(partial_data_coupartial_data_counternnr_model_parameter_set_unit_hennr_layer_parameter_set_unit_hennr_topology_unit_hennr_quantization_unit_hennr_compressed_data_unit_hennr_aggregate_unit_he}}nnr_model_parameter_set_unit_hea}nnr_layer_parameter_set_unit_healps_self_contained_flagnnr_reserved_zero_7_bits}nnr_topology_unit_hea}nnr_topology_unit_hea}nnr_compressed_data_unit_heannr_compressed_data_unit_payloannr_multiple_topology_elements_presennnr_decompressed_data_format_presenif(nnr_multiple_topology_elemtopology_elements_ids_list(mps_topologif(!mps_topology_indexe}}if(mps_parent_signaling_enparent_node_id_presenttemporal_context_moif(parent_node_id_typ}parent_node_payload_sparent_node_payload_s}}}if(nnr_compressed_data_unit_nnr_compressed_data_unit_payload_tinteger_codebook(CbZeroOffset,}if(nnr_compressed_data_unit_nnr_compressed_data_unit_payload_tif(nnr_decompressed_data_formannr_decompressed_data_if(input_parameters_present_}if(nnr_multiple_topology_eltopology_tensor_dimensio}if(nnr_compressed_data_uniNNR_CPT_DC)!=0&&codebook_present_flainteger_codebook(CbZeroOffsBitOffsetList[j]=bit_o}BitOffsetList[j-1]+bit}}}}}integer_codebook(cbZeroOffset,}previousValue=integerCodebook}}}topology_elements_ids_list(topologyIncount_topology_eleme}topology_elem_id_ind}}}topology_tensor_dimension}}}}nnr_aggregate_unit_heannr_reserved_zero_7}nnr_reserved_zero_2}nnr_reserved_zero_3}}通则nnr_model_parameter_set_unit_paynnr_layer_parameter_set_unit_paynnr_topology_unit_paynnr_quantization_unit_paynnr_compressed_data_unit_paynnr_aggregate_unit_pay}nnr_start_unit_payl}nnr_model_parameter_set_unit_payltopology_carriage_flagmps_sparsification_flagmps_unification_flagvalidation_set_performance_present_flagif(mps_parent_signalling_enabled_flnnr_pre_flagnnr_reserved_zero_2bif(base_model_id_present_fmetric_type_performance_map_valid_flag==1)}nnr_reserved_zero_7b}pruning_performance_unification_performance_if(mps_decomposition_performance_map_fldecomposition_perform&&validation_set_performance_present_fl}sparsification_perfsparsification_threshold[i]}}pruning_performance_m}}unification_performance_map(){unification_threshold[i]}}nnr_layer_parameter_set_unit_paylnnr_reserved_zero_1_bitlps_sparsification_flaglps_unification_flag}pruning_performance_unification_performance_}nnr_topology_unit_paylif(topology_storage_formatnnr_pruning_topology_contaelseif(topology_storage_format==NNR_T}nnr_pruning_topology_contaiorder_flagsparse_flagnnr_reserved_zero_3belseif(nnr_rep_type==NNRif(!mps_topology_indexed}}}}for(k=0;k<count_dims[}}}}}}count_bits}}nnr_quantization_unit_payl}nnr_compressed_data_unit_paylif(nnr_compressed_data_unit_payload_type==decode_compressed_data_unit}nnr_aggregate_unit_payl}6.3.5字节对齐语法}6.4.1通则通则0号123456的整个数据的索引。值为0表示没有部分信息(即此NNR单元中的数据是与拓扑元素关联的所有数),partial_data_counter_flag等于1,则partial_data_counter可以具有非零值,这是基于将多个可独立解),值01 015601施新的NDU,应将其设置为1,否则设置为0。值1也表示存在语法元素parent_node_id_type。如果0表示存在语法元素parent_device_id、pa1表示存在语法元素parent_node_pay2表示存在语法元素parent_node_pay3为0。当分解存在时,张量G和H表示分解原始张量的结果。如果(compressed_parameter_types& count−tensor−count−tensor−dimensions−1 如果NNR单元包含分解张量G和nnr_compressed_data_unit_payload_type!=NNR_ first_tensor_dimension_shift规定了用于张量维度重新排序的第一个张量维度的偏移,并且应 bit_offset_delta2规定了列表BitOffsetList中除第一个元素之外的其他元素,与列表codebook_centre_offset规定了访问码本中元素相对于码本中心的偏移量。它用于计算变量count_tensor_dimensions规定了计数器,该计数器规定了维度数量。例如,对于四维张量,shift_index[k][i]表示要左移的第k个拓扑元素的轴索引。shift_value[k][i]表示索引为[k][i]的轴上的左移量。01NNR_NNR_RSVD范围内的值保留用于未来版本的本规范或相关规范。编码器不处的NNR单元的开始的字节偏移量。该值不应等于或大于NNR聚合单元的总字节大小。扫描顺序是水平方向上的光栅扫描顺序,值1表示CTU方式的扫描顺序是垂直方向上的光栅扫描顺通则了拓扑在一个或多个“NNR_TPL”类型的NNR单元内承载。如果为0,则表示拓扑结构是外部提供的mps_sparsification_flag规定了是否对使用此模型参数集的NNR压缩数据单元中的模型应用稀值标量统一mps_parent_signalling_enabled_flag规定了是否在NDU级别用信号发送父节点信息(即元素sparsification_performance_map()规定了不同稀疏化阈值和由此产生的NN推理精度sparsification_threshold规定了一个阈值列表,其中ppm_nn_accuracy规定了一个类精度列表,其中每个值都是应用特定稀疏化阈值时某层参数集单元有效载荷语义lps_sparsification_flag规定了是否对使用此层参数集的NNR压缩数据单元中的模型应用稀疏lps_unification_flag规定了是否对使用此值标量统一 层参数集的pruning_performance_map()中的信息有效。在多个层的层参数集中,l 如果对整个模型(即所有层)应用剪枝,则模型参数集的pruning_perfo 如果剪枝仅应用于一个层,且该层的lps_pruning_flag等于1,则该层的层参数集的统一时,层参数集的unification_performance_map()中的信息有效。在多个层的层参数集中, 如果对整个模型(即所有层)应用统一,则模型参数集的unification_performance 如果统一仅应用于一个层,且该层的lps_unification_flag等于1,则该层的层参数集的topology_data是一个字节序列,其长度由描述神经网络拓扑的NNR单元大小规定,格式由sparse_flag设置为1时,表示在参数缩减期间使注:如果quantization_storage_format设置为NNR_QNT_UN 根据用于创建特定比特流的压缩方法,NNR012233445867897.3.1通则0123如果有效载荷标识符是NNR_PT_INT、NNR_PT_FLO结合(如NNR压缩数据单元首部中通过nnr_multip), 此过程的输出是表14中规定的TENSOR_INT类型的变量RecParam。RecParam的维度等于 更新,并将其添加到RecParam中。返回值被分配给RecParam,并在本地存储 由partial_data_counter标记为一起解压缩的一个或多个NNR压缩数据单元及其 新,并将其添加到RecParam中。返回值被分配给RecParam,并在本地存储到WeightUpdateCache此过程的输出为表43中规定的TENSOR_FLOAT类型的变量RecParam。RecParam的维度等于 注:DimensionShift(RecWeight,TensorDimensions,first_tensor_dimension_shift)的返回值被分配给RecWeight=TensorReshape(DimensionShift(RecWeight,TensorDimensions,first_tensor_dimension_shift)的返回值被分配给 变量entryPointOffsett,表明是否存在用于解码的入 此过程的输出为变量recParam,该变量为TENSOR_FLOAT类型,规定在表14中,维度等于根据子条款,语法结构quant_tens}}8.1通则8.2.1整合批量归一化其中X是输入,BN(X)是输出结果,W是卷积层或者全连接层的在(联邦)训练神经网络的增量压缩背景下,参数δ(RecBias)、α(RecLS)、RecMean和叠网络的本地副本,包括每个批量归一化模块计算8.3.1压缩性损失进行稀疏化reshaped_tensor_dimensions[]super_block_dimensions[]block_dimensions[]8.3.3结合剪枝与稀疏化present,ifrow_skip_enabled_f18.3.6权重合并reshaped_tensor_dimensions[]super_block_dimensions[]block_dimensions[]秩8.3.8批量归一化折叠8.3.9局部尺度适应9.1通则9.2方法9.2.1统一量化方法此条款规定了使用特定量化工具对参数张量进行均匀量化的过程。量化步长由参数9.2.2基于代码本的方法数张量与一个步长相乘得到的,该步长源自参数mps_qp_density(如果存在的话,则是9.2.3依赖标量量化方法应用依赖标量量化,使用由参数mps_qp_density(如果存在的话,则是lps_qp_density)和9.3.1统一量化方法9.3.2基于代码本的方法9.3.3依赖标量量化方法二进制化编码方法按照函数TensorIndex()定义的方式扫描参数张量。每个量化的参数跳行上下文建模对于abs_level_greater_时序上下文建模如果通过标志temporal_contex更新张量中量化的共位参数级别的值,该值可以使用在子条款中定义的device_id、对于sig_flag,根据状态值以及量化共位参数级别的绝对值是否大于一来区分十六个上下文模通则nesting_zero_bit}量化参数语法}量化张量语法if(general_profile_idc==1}}}}tensor2DWidth=Prod(dimensions)/tenif(general_profile_idc==1&&tensor2DWidth>1&&!(codebookId>-1&&cif(parent_node_id_p}for(i=0;i<tensor2DHrow_skip_list[i]}bitPointer=get_bit_poinfor(i=0;i<Prod(dimensionidx=TensorIndex(dimensiif(entryPointOffset!=-1&j=entryPointOffset+GetEntryPointIdx(dimensions,set_bit_pointer(bitPointer+lastOffset+BitO}if(general_profile_idc!=1||tensor2DWidth<=1||!row_skiint_param(idx,maxNumNoRemMinus1,stateld,codebookSnextSt=StateTransTab[stateld][QuantParam[idQuantParam[idx]=QuantParam[iQuantParam[idx]+=stateQuantParam[idx]+=-(stateI}}}}row_skip_list规定了一个标志列表,其中第i个标志row_skip_list[i]指示所有量化参数语法sig_flagif(general_profile_idc==1&&codebookSize>0&&(cbZeroOffset}sign_flag}if(general_profile_idc==1maxAbsVal=signVal?cbZeroOffset:(codebookSize-cbZeroOffset-abs_level_greater_x[j]QuantParam[i]+=abs_level_greate}while(abs_level_greater_x[j]==1&abs_level_greater_x2[j]QuantParam[i]+=1<<R}}while(abs_level_greater_x2[j]&&j<QuantParam[i]+=abs_rem}}QuantParam[i]=signVal?-QuantParam[i]:QuantPar}}}变量curParaId被设置为当前解码参数的参数标识符。当之前没有解码过参数标识符等于位移参数指标语法if(general_profile_idc==1}}}}for(i=0;i<(dq_flag?shift_idx(i,ShiftParame}ShiftParameterIdsSigF}}for(i=24;i<(dq_flag?40shift_idx(i,ShiftParamet}ShiftParameterIdsSigF}}}for(i=40;i<(dq_flag?48shift_idx(i,ShiftParame}ShiftParameterIdsSigF}}}for(i=0;i<(temporal_context_modeling_flag?5:3if(!(codebookSize>0&&(cbZeroOffset==0||cbZeroOffset==codebookSize-1))&&cshift_idx(i,ShiftParamet}ShiftParameterIdsSignF}}maxAbsVal=codebookSize>0?max(cbZeroOffset,codebookSize-1-cbZeroOffset):for(i=0;i<(:2)*(maxNumNoRemMinus1if(maxAbsVal==-1||ishift_idx(i,ShiftParam}ShiftParameterIdsAbs}}for(i=2*(maxNumNoRemMinus1+1);i<4*(maxNumNoRemMinus1if(maxAbsVal==-1||i<((maxAbsVal-1)*2+(2*(maxNumNshift_idx(i,ShiftParam}ShiftParameterIdsAbs}}}currX2Level=maxNumNcurrX2Level=currX2Leif(maxAbsVal==-1||currX2shift_idx(i,ShiftParame}ShiftParameterIdsAbsG}}}位移参数语法shift_idx(ctxId,shiftshift_idx_minus_1_present_flagshift_idx_minus_1shiftParameterIds[ctxId]+=shift_idx_m}}10.3.1通则通则} 与第i个上下文模型的sig_flag相关联的上下文参数设置如下,其中setId等于 根据子条款中规定的概率估计参数根据子条款中规定的概率估计参数范围的初始化过程,使用idcs包含范围0..根据子条款中规定的概率估计参数范围的初始化过程,使用idcs包含范围0..根据子条款中规定的概率估计参数范围的初始化过程,使用包括范围0..30的值的 算术解码引擎的状态由变量IvlCurrRange和IvlOffset表示。在算术解码过程的初始化程序通则通则 .1通则 如果表29中的条目不等于bypass或na,则通过调用子条款.2中规定的 否则,如果表29中的条目等于bypass,则通过调用子条款.4中规定的 012340j0.2语法元素sig_flag的ctxInc推导过程此过程的输入包括:如果存在,当前sig_flag之 否则,如果与之前解码的sig_flag相关的sign_flag等于0,则ct.3语法元素sign_flag的ctxInc推导过程此过程的输入包括:如果存在,当前sig_flag之前解码的sig_flag,如果存在,与之相关的 .4语法元素abs_level_greater_x[j]的ctxInc推导过程素parameter_id和device_id。参考NDU的语法元素put_node_depth等于当前NDU的语法元素如果没有从当前增量更新之前解码的增量更新中的共位参数级别可用,或者 算术解码过程.1通则 注:算术编码基于递归区间细分的原则。给定一个二元决策(0,1)的概率p(0)和p(1)=1-p(0),一个最初给定的码字子区间,其范围为IvlCurrRange,将被细分为两个子区间,分别具有范围p(0)timesIvlCurrRange和IvlCurrRange-p(0)timesIvlCurrRange。根据观察到的决策,相应的子区间将成为新的码字区间,而指向该区间的二进制码字符串将表示序列化的二元决策。区分最可能的符号(MPSym)和最不可能的符号(LPSym)是有用的,这样二元决策就被识别为MPSym或LPSym,而不是0或1。鉴于此,每个上 表示编码引擎状态的区间范围IvlCurrRangQ1,.....,Q8中的较小集合。 .2二元决策的算术解码过程.2.1通则),.2.2状态转换过程.2.3算术解码引擎中的重归一化过程 否则(IvlCurrRange小于256),进入重归一化循环。在此循环中,IvlCurrRange的值翻.2.4二元决策的旁路解码过程 ),.2.5终止前的二元决策解码过程 ),值1中1 当NNR拓扑单元在topology_data中携带NNEF拓扑信息时,NNR拓扑单元标头的 (资料性)经网络信息的数据格式。本附件规定了如何在ONNX上下文中使用本文件规定的神经网络压缩表示值22 ), 可选的ONNX量化信息应该在NNR量化单元的quantization_data语法元素中携带,以 NNR压缩数据单元标头中的topology_elem_id值和NNR拓扑单元有效载荷PyTorch是一个开源机器学习库,广泛应值3储3一个python文件中。模型类通常包含一个init方法,用于定义神经网络的层,以及一个PyTorch的加载API会将state_dicts中的参数和缓冲区复制到模型类及其子类中。 此外,PyTorch拓扑元素还可以作为参考列表保存在连续的NNR拓扑单元中,其中UTF-8字符编码的非零大小、空端字符串形式存在,则列表中的所有拓扑元素都应出现在 TensorFlow是一个开源机器学习库,广泛用于研究和生产部署。本附件规定了如何在值44施.使用扩展名为.ckpt的TensorFlow检查点格式,或者在保存整个模型(包括模型的架构、编译信息Model.save_weights(“model_name.h5”),TensorFlow还提供了使用HDF5规范的基本保存格式HDF5是TensorFlow提供的分层数据格式,用于保存模型参数。之所以在NNR实现范围内使用h5py.File()是一个Python软件包,用于与存储的TensorFlow模型对接。使用.create_ TensorFlow拓扑信息应包含在NNR拓扑单元的topology_data语法元素中,以语法元素topology_data应包含嵌套的TensorFlowHDF5层名称的连接,即此外,TensorFlow拓扑元素可作为参考列表保存在连续的NNR拓扑单元中,其中topology_storage_format等于NNR_TPL_REFLIST。每个拓扑元素都应表示为嵌套的TensorFlowHDF5层名称,即“model_block_0/batch_norm_1 对于NNR压缩数据有效载荷类型NNR_PT_FLOAT,语法元素mps_qp_density(或 F.1通则F.2标识符参考文献[7]中规定的mAP(平均精度)作为性能指标,其中loU(inte度,c(c)是输入(输出)通道数。n,n和n分别是与高度轴、权重轴和深度轴相对应的卷积核大块S又被划分为大小为b×b×b的块。让Bl表示S中的块,参数在S内按块剪枝。对于每个块失真损失L(S)是通过对S中所有块L(Bl)的平均值计算出来,即L(S)=averageBlL(Bl)。当块当c不能完全被s分割,或c不能完全被s),G.1.4.1通则每个卷积层由一个参数张量F∈ℝCo×K×K×Ci(也称为滤波器)组成出通道之间的遍历马尔可夫过程,采用图扩散法来寻找冗余信息。为此,在给定卷积滤波器F的情况其中,mi是M的第i行,D(⋅,⋅)是G.1.4.3基于数据的稀疏化l∈LDiv(Wl)其中,Wl表示第l层可学习参数

温馨提示

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

评论

0/150

提交评论