《用于多媒體內容描述和分析的神經網絡壓縮》_第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

提交評論