JP7231731B2 - 適応量子化方法及び装置、デバイス、媒体 - Google Patents

適応量子化方法及び装置、デバイス、媒体 Download PDF

Info

Publication number
JP7231731B2
JP7231731B2 JP2021527128A JP2021527128A JP7231731B2 JP 7231731 B2 JP7231731 B2 JP 7231731B2 JP 2021527128 A JP2021527128 A JP 2021527128A JP 2021527128 A JP2021527128 A JP 2021527128A JP 7231731 B2 JP7231731 B2 JP 7231731B2
Authority
JP
Japan
Prior art keywords
quantization
adaptive
quantized
scaling factor
fixed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021527128A
Other languages
English (en)
Other versions
JP2022507704A (ja
Inventor
郭暉
張楠▲コウ▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canaan Bright Sight Co Ltd
Original Assignee
Canaan Bright Sight Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canaan Bright Sight Co Ltd filed Critical Canaan Bright Sight Co Ltd
Publication of JP2022507704A publication Critical patent/JP2022507704A/ja
Application granted granted Critical
Publication of JP7231731B2 publication Critical patent/JP7231731B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0495Quantised networks; Sparse networks; Compressed networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Neurology (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Complex Calculations (AREA)

Description

本願は、機械学習の技術分野に関し、特に、適応量子化方法及び装置、デバイス、媒体に関する。
畳込みニューラルネットワークは、コンピュータビジョン、音声処理、機械学習、画像認識、顔認識等の数多くの分野では、飛躍的な進歩を遂げ、対応する機械アルゴリズムが画像分類、目標検出、および、音声認識等の様々なタスクにおいて発揮する性能を顕著に向上させるとともに、インターネット、ビデオ監視等の業界でも広く応用されている。
大容量かつ高複雑度の畳み込みニューラルネットワークによれば、データをより全面的に学習することができ、それにより、データをより正確に認識することができる、勿論、ネットワークの層数やパラメータの数の増加に伴って、計算や記憶にかかるコストも大幅に増加していく。
従来技術では、畳み込みニューラルネットワークを用いてデータを処理するとき、通常、浮動小数点数を直接に用いて計算していたが、しかし、この方式では、計算の速度が遅く、且つ、ハードウェアによる消費電力が大きい。
本願の実施例は、適応量子化方法及び装置、デバイス、媒体を提供することにより、「畳み込みニューラルネットワークを用いてデータを処理するとき、通常、浮動小数点数を直接に用いて畳み込計算していたが、しかし、この方式では、計算の速度が遅く、且つ、ハードウェアによる消費電力が大きい」という従来技術に存在する技術的課題を解決することを目的にしている。
本願の実施例は、以下の技術案が用いられる。
適応量子化方法であって、
複数のオリジナルの入力テンソルの各々に対して、第1の量子化処理を行うことで、固定小数点数型の入力テンソルを取得するとともに、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算すること、
複数のオリジナルの入力テンソルに対応する統合化された量子化オフセット、および、適応量子化係数を計算すること、および、
前記適応量子化係数と前記統合化された量子化オフセットに基づき、前記固定小数点数型の入力テンソル及びその量子化オフセットに対して、第2の量子化処理を行うことで、量子化結果を取得することを含む。
選択的に、複数のオリジナルの入力テンソルの各々に対して、第1の量子化処理を行うことで、固定小数点数型の入力テンソルを取得するとともに、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算する上記ステップは、具体的に、
複数のオリジナルの入力テンソルの各々に対して、当該オリジナルの入力テンソルの極値を確定すること、および、当該極値に基づいて、当該オリジナルの入力テンソルに対して第1の量子化処理を行うことで、固定小数点数型の入力テンソルを取得するとともに、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算すること、を実行することを含む。
選択的に、複数のオリジナルの入力テンソルに対応する統合化された量子化オフセット、および、適応量子化係数を計算する上記ステップは、具体的に、
前記複数のオリジナルの入力テンソルの各々の極値に基づいて、統合化された極値を確定すること、
前記統合化された極値に基づいて、統合化された量子化スケーリング係数と量子化オフセットを計算すること、および、
前記統合化された量子化スケーリング係数と前記第1の量子化処理中に用いられた量子化スケーリング係数に基づいて、適応量子化係数を計算することを含む。
選択的に、前記複数のオリジナルの入力テンソルは、同一の演算ロジックユニットALUからのものであり、前記方法が複数の異なるALUの各々に対して実行される。
選択的に、当該極値に基づいて、当該オリジナルの入力テンソルに対して第1の量子化処理を行う上記ステップは、具体的に、
当該極値のうちの最小値と指定された量子化値の範囲内の最小値に基づいて、第1の関数を用いて、当該オリジナルの入力テンソルに対して第1の量子化処理を行うこと、および、
前記第1の関数は、対応する量子化スケーリング係数と、浮動小数点数から固定小数点数へと変換するための変換ロジックと、を有することを含む。
選択的に、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算する上記ステップは、具体的に、
当該極値のうちの最小値と前記指定された量子化値の範囲内の最小値に基づいて、第2の関数を用いて、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算すること、および、
前記第2の関数は、前記対応する量子化スケーリング係数と、浮動小数点数から固定小数点数へと変換するための変換ロジックと、を有することを含む。
選択的に、前記対応する量子化スケーリング係数は、当該極値及び/又は前記指定された量子化値の範囲内の極値に基づいて計算されたものである。
選択的に、前記統合化された極値に基づいて、統合化された量子化スケーリング係数と量子化オフセットを計算する上記ステップは、具体的に、
前記統合化された極値と指定された量子化値の範囲内の極値に基づいて、統合化された量子化スケーリング係数と量子化オフセットを計算することを含む。
選択的に、前記統合化された量子化スケーリング係数と前記第1の量子化処理中に用いられた量子化スケーリング係数に基づいて、適応量子化係数を計算する上記ステップは、具体的に、
対数座標系を用いて、前記統合化された量子化スケーリング係数と前記第1の量子化処理中に用いられた量子化スケーリング係数との比例関係を変換すること、および、
前記変換された比例関係に応じて、1つまたは複数の適応量子化係数を計算することを含み、
前記計算中に、浮動小数点数から固定小数点数へと変換するための変換ロジック及び/又は精度を保留するための係数が用いられる。
選択的に、前記対応する量子化スケーリング係数は、下式により計算されたものであり、
Figure 0007231731000001
Figure 0007231731000002
がオリジナルの入力テンソルXiに対応する量子化スケーリング係数を示し、Qlowが前記指定された量子化値の範囲内の最小値を示し、Qhighが前記指定された量子化値の範囲内の最大値を示し、XminiがXiの最小値を示し、XmaxiがXiの最大値を示す。
選択的に、前記第1の関数は、
Figure 0007231731000003
で示され、
Figure 0007231731000004
が前記第1の量子化処理が行われた後のオリジナルの入力テンソルXiを示し、XminiがXiの最小値を示し、
Figure 0007231731000005
がXiに対応する量子化スケーリング係数を示し、Qlowが前記指定された量子化値の範囲内の最小値を示し、roundが浮動小数点数を四捨五入で固定小数点数にするための関数を示す。
選択的に、前記第2の関数は、
Figure 0007231731000006
で示され、
Figure 0007231731000007
が前記第1の量子化処理が行われた後のXiで算出された量子化オフセットを示し、XminiがXiの最小値を示し、
Figure 0007231731000008
がXiに対応する量子化スケーリング係数を示し、Qlowが前記量子化値の範囲内の最小値を示し、roundが浮動小数点数を四捨五入で固定小数点数にするための関数を示す。
選択的に、前記複数の適応量子化係数は、第1の適応量子化係数と第2の適応量子化係数を含み、
前記第1の適応量子化係数は、対数座標系を用いて、前記比例関係を変換してから、前記精度を保留するための係数を用いて、精度の調整を行うことによって算出されたものであり、及び/又は、
前記第2の適応量子化係数は、対数座標系を用いて、前記比例関係と前記第1の適応量子化係数に基づいて、逆方向変換を行うことによって算出されたものである。
選択的に、前記第1の量子化処理では、N進数の指定されたビット数に基づいて量子化を行い、下式により、前記第1の適応量子化係数shiftiを計算し、
Figure 0007231731000009
Figure 0007231731000010
がオリジナルの入力テンソルXiに対応する量子化スケーリング係数を示し、
Figure 0007231731000011
が前記統合化された量子化スケーリング係数を示し、αが所望の精度が保留されたN進数のビット数を示し、ceilが天井最小整数の関数を示す。
選択的に、前記第1の量子化処理では、N進数の指定されたビット数に基づいて量子化を行い、下式により、前記第2の適応量子化係数riを計算し、
Figure 0007231731000012
Figure 0007231731000013
がオリジナルの入力テンソルXiに対応する量子化スケーリング係数を示し、
Figure 0007231731000014
が前記統合化された量子化スケーリング係数を示し、shiftiが前記第1の適応量子化係数を示し、roundが浮動小数点数を四捨五入で固定小数点数にするための関数を示す。
選択的に、前記第1の量子化処理では、N進数の指定されたビット数に基づいて量子化を行い、前記適応量子化係数と前記統合化された量子化オフセットに基づき、前記固定小数点数型の入力テンソル及びその量子化オフセットに対して、第2の量子化処理を行うことで、量子化結果を取得する上記ステップは、具体的に、
下式により、前記固定小数点数型の入力テンソル及びその量子化オフセットに対して、第2の量子化処理を行うことで、量子化結果
Figure 0007231731000015
を取得することを含み、
Figure 0007231731000016
shiftiが前記第1の適応量子化係数を示し、riが前記第2の適応量子化係数を示し、
Figure 0007231731000017
が前記第1の量子化処理が行われた後のオリジナルの入力テンソルXiを示し、
Figure 0007231731000018
が前記第1の量子化処理が行われた後のXiで算出された量子化オフセットを示し、
Figure 0007231731000019
が前記統合化された量子化オフセットを示す。
適応量子化装置であって、
複数のオリジナルの入力テンソルの各々に対して、第1の量子化処理を行うことで、固定小数点数型の入力テンソルを取得するとともに、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算する第1の量子化モジュールと、
複数のオリジナルの入力テンソルに対応する統合化された量子化オフセット、および、適応量子化係数を計算する適応量子化係数計算モジュールと、
前記適応量子化係数と前記統合化された量子化オフセットに基づき、前記固定小数点数型の入力テンソル及びその量子化オフセットに対して、第2の量子化処理を行うことで、量子化結果を取得する第2の量子化モジュールと、を備えた。
選択的に、前記第1の量子化モジュールは、複数のオリジナルの入力テンソルの各々に対して、第1の量子化処理を行うことで、固定小数点数型の入力テンソルを取得するとともに、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算することは、具体的に、
前記第1の量子化モジュールは、複数のオリジナルの入力テンソルの各々に対して、当該オリジナルの入力テンソルの極値を確定すること、および、当該極値に基づいて、当該オリジナルの入力テンソルに対して第1の量子化処理を行うことで、固定小数点数型の入力テンソルを取得するとともに、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算すること、を実行することを含む。
選択的に、前記適応量子化係数計算モジュールは、複数のオリジナルの入力テンソルに対応する統合化された量子化オフセット、および、適応量子化係数を計算することは、具体的に、
前記適応量子化係数計算モジュールは、前記複数のオリジナルの入力テンソルの各々の極値に基づいて、統合化された極値を確定すること、
前記統合化された極値に基づいて、統合化された量子化スケーリング係数と量子化オフセットを計算すること、および、
前記統合化された量子化スケーリング係数と前記第1の量子化処理中に用いられた量子化スケーリング係数に基づいて、適応量子化係数を計算することを含む。
選択的に、前記複数のオリジナルの入力テンソルは、同一の演算ロジックユニットALUからのものであり、前記装置が複数の異なるALUの各々に対して実行する。
選択的に、前記第1の量子化モジュールは、当該極値に基づいて、当該オリジナルの入力テンソルに対して第1の量子化処理を行うことは、具体的に、
前記第1の量子化モジュールは、当該極値のうちの最小値と指定された量子化値の範囲内の最小値に基づいて、第1の関数を用いて、当該オリジナルの入力テンソルに対して第1の量子化処理を行うこと、および、
前記第1の関数は、対応する量子化スケーリング係数と、浮動小数点数から固定小数点数へと変換するための変換ロジックと、を有することを含む。
選択的に、前記第1の量子化モジュールは、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算することは、具体的に、
前記第1の量子化モジュールは、当該極値のうちの最小値と前記指定された量子化値の範囲内の最小値に基づいて、第2の関数を用いて、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算すること、および、
前記第2の関数は、前記対応する量子化スケーリング係数と、浮動小数点数から固定小数点数へと変換するための変換ロジックと、を有することを含む。
選択的に、前記対応する量子化スケーリング係数は、当該極値及び/又は前記指定された量子化値の範囲内の極値に基づいて計算されたものである。
選択的に、前記適応量子化係数計算モジュールは、前記統合化された極値に基づいて、統合化された量子化スケーリング係数と量子化オフセットを計算することは、具体的に、
前記適応量子化係数計算モジュールは、前記統合化された極値と指定された量子化値の範囲内の極値に基づいて、統合化された量子化スケーリング係数と量子化オフセットを計算することを含む。
選択的に、前記適応量子化係数計算モジュールは、前記統合化された量子化スケーリング係数と前記第1の量子化処理中に用いられた量子化スケーリング係数に基づいて、適応量子化係数を計算することは、具体的に、
前記適応量子化係数計算モジュールは、対数座標系を用いて、前記統合化された量子化スケーリング係数と前記第1の量子化処理中に用いられた量子化スケーリング係数との比例関係を変換すること、および、
前記変換された比例関係に応じて、1つまたは複数の適応量子化係数を計算することを含み、
前記計算中に、浮動小数点数から固定小数点数へと変換するための変換ロジック及び/又は精度を保留するための係数が用いられる。
選択的に、前記対応する量子化スケーリング係数は、下式により計算されたものであり、
Figure 0007231731000020
Figure 0007231731000021
がオリジナルの入力テンソルXiに対応する量子化スケーリング係数を示し、Qlowが前記指定された量子化値の範囲内の最小値を示し、Qhighが前記指定された量子化値の範囲内の最大値を示し、XminiがXiの最小値を示し、XmaxiがXiの最大値を示す。
選択的に、前記第1の関数は、
Figure 0007231731000022
で示され、
Figure 0007231731000023
が前記第1の量子化処理が行われた後のオリジナルの入力テンソルXiを示し、XminiがXiの最小値を示し、
Figure 0007231731000024
がXiに対応する量子化スケーリング係数を示し、Qlowが前記指定された量子化値の範囲内の最小値を示し、roundが浮動小数点数を四捨五入で固定小数点数にするための関数を示す。
選択的に、前記第2の関数は、
Figure 0007231731000025
で示され、
Figure 0007231731000026
が前記第1の量子化処理が行われた後のXiで算出された量子化オフセットを示し、XminiがXiの最小値を示し、
Figure 0007231731000027
がXiに対応する量子化スケーリング係数を示し、Qlowが前記量子化値の範囲内の最小値を示し、roundが浮動小数点数を四捨五入で固定小数点数にするための関数を示す。
選択的に、前記複数の適応量子化係数は、第1の適応量子化係数と第2の適応量子化係数を含み、
前記第1の適応量子化係数は、前記適応量子化係数計算モジュールが対数座標系を用いて、前記比例関係を変換してから、前記精度を保留するための係数を用いて、精度の調整を行うことによって算出されたものであり、及び/又は、
前記第2の適応量子化係数は、前記適応量子化係数計算モジュールが対数座標系を用いて、前記比例関係と前記第1の適応量子化係数に基づいて、逆方向変換を行うことによって算出されたものである。
選択的に、前記第1の量子化処理では、N進数の指定されたビット数に基づいて量子化を行い、前記適応量子化係数計算モジュールが下式により、前記第1の適応量子化係数shiftiを計算し、
Figure 0007231731000028
Figure 0007231731000029
がオリジナルの入力テンソルXiに対応する量子化スケーリング係数を示し、
Figure 0007231731000030
が前記統合化された量子化スケーリング係数を示し、αが所望の精度が保留されたN進数のビット数を示し、ceilが天井最小整数の関数を示す。
選択的に、前記第1の量子化処理では、N進数の指定されたビット数に基づいて量子化を行い、前記適応量子化係数計算モジュールが下式により、前記第2の適応量子化係数riを計算し、
Figure 0007231731000031
Figure 0007231731000032
がオリジナルの入力テンソルXiに対応する量子化スケーリング係数を示し、
Figure 0007231731000033
が前記統合化された量子化スケーリング係数を示し、shiftiが前記第1の適応量子化係数を示し、roundが浮動小数点数を四捨五入で固定小数点数にするための関数を示す。
選択的に、前記第1の量子化処理では、N進数の指定されたビット数に基づいて量子化を行い、前記第2の量子化モジュールは、前記適応量子化係数と前記統合化された量子化オフセットに基づき、前記固定小数点数型の入力テンソル及びその量子化オフセットに対して、第2の量子化処理を行うことで、量子化結果を取得すること、具体的に、
前記第2の量子化モジュールは、下式により、前記固定小数点数型の入力テンソル及びその量子化オフセットに対して、第2の量子化処理を行うことで、量子化結果
Figure 0007231731000034
を取得することを含み、
Figure 0007231731000035
shiftiが前記第1の適応量子化係数を示し、riが前記第2の適応量子化係数を示し、
Figure 0007231731000036
が前記第1の量子化処理が行われた後のオリジナルの入力テンソルXiを示し、
Figure 0007231731000037
が前記第1の量子化処理が行われた後のXiで算出された量子化オフセットを示し、
Figure 0007231731000038
が前記統合化された量子化オフセットを示す。
適応量子化デバイスであって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに通信接続されたメモリと、を備え、
前記メモリには、前記少なくとも1つのプロセッサが実行可能なインストラクションが記憶されており、前記インストラクションが前記少なくとも1つのプロセッサによって実行されることにより、前記少なくとも1つのプロセッサは、
複数のオリジナルの入力テンソルの各々に対して、第1の量子化処理を行うことで、固定小数点数型の入力テンソルを取得するとともに、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算すること、
複数のオリジナルの入力テンソルに対応する統合化された量子化オフセット、および、適応量子化係数を計算すること、および、
前記適応量子化係数と前記統合化された量子化オフセットに基づき、前記固定小数点数型の入力テンソル及びその量子化オフセットに対して、第2の量子化処理を行うことで、量子化結果を取得することを可能にすることができる。
コンピュータが実行可能なインストラクションを記憶した適応量子化非一時的コンピュータ記憶媒体であって、
前記コンピュータが実行可能なインストラクションは、
複数のオリジナルの入力テンソルの各々に対して、第1の量子化処理を行うことで、固定小数点数型の入力テンソルを取得するとともに、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算し、
複数のオリジナルの入力テンソルに対応する統合化された量子化オフセット、および、適応量子化係数を計算し、
前記適応量子化係数と前記統合化された量子化オフセットに基づき、前記固定小数点数型の入力テンソル及びその量子化オフセットに対して、第2の量子化処理を行うことで、量子化結果を取得するように設定されている。
本願の実施例で用いられた上記少なくとも1つの技術案によれば、以下の有益な効果が実現される。即ち、浮動小数点数から固定小数点数へと変換するための変換ロジック、および、少なくとも一部のステップをブロック分割して実行できる適応量子化処理が用いられたことで、量子化精度の向上、畳込みニューラルネットワーク性能の向上、および、ハードウェアの消費電力や設計の難易度の低減に寄与する。
ここに説明の添付図面は、本願に対する更なる理解を与えるためのものであり、本願の一部を構成した。本願の例示的な実施例及びその説明文は、本願を解釈するためのものであり、本願に対する不適切な限定を構成しない。添付図面において、
図1は、本願における幾つかの実施例が提供する適応量子化方法のフローチャートである。 図2は、本願における幾つかの実施例が提供する図1に示す適応量子化方法の詳細なフローチャートの概略図である。 図3は、本願における幾つかの実施例が提供する図1に対応する適応量子化装置の構造概略図である。 図4は、本願における幾つかの実施例が提供する図1に対応する適応量子化デバイスの構造概略図である。
本願の目的、技術案、及び、利点をさらに明瞭にさせるために、以下は、本願の具体的な実施例及び対応する添付図面を組み合わせながら、本願の技術案を明瞭かつ完全に説明する。明らかなことに、説明する実施例は、本願の実施例の一部に過ぎず、全ての実施例ではない。本願における実施例を基にして、当業者は、創造的な労力を払わずに取得した全ての他の実施例がいずれも、本願の保護範囲に入っている。
畳込みニューラルネットワークは、現在、画像処理によく用いられ、処理中に、より複雑な計算(畳込み演算、バッチ正規化演算、活性化演算などを主に含む)を行う。本願は、直接に浮動小数点数を用いて上記演算を行うことなく、オリジナルのデータを簡素化処理してから、上記演算を行うことができる適応量子化方案を提供する。以下は、本願の方案を詳しく説明する。
図1は、本願における幾つかの実施例が提供する適応量子化方法のフローチャートである。当該フローでは、デバイスの角度から言えば、実行本体が1つまたは複数の計算デバイスであってもよい。例えば、畳込みニューラルネットワークに基づく単一の機械学習サーバ、機械学習サーバグループなどが挙げられる。プログラムの角度から言えば、実行本体が相応にそれらの計算デバイスにインストールされたプログラムであってもよい。例えば、畳込みニューラルネットワークに基づくニューラルネットワークモデリングプラットフォーム、画像処理プラットフォームなどが挙げられる。さらに具体的には、そのようなプラットフォームに用いられる畳込みニューラルネットワークに含まれた1つまたは複数のニューロンであってもよい。
図1におけるフローには、以下のステップが含まれてもよい。
S102:複数のオリジナルの入力テンソルの各々に対して、第1の量子化処理を行うことで、固定小数点数型の入力テンソルを取得するとともに、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算する。
本願における幾つかの実施例では、第1の量子化処理の具体的な実施の形態は多様なものであってもよい。例えば、オリジナルの入力テンソルの極値に基づいて、均一量子化を行うこと、又は、オリジナルの入力テンソルの分布に応じて、非均一量子化を行うことなどが挙げられる。
S104:複数のオリジナルの入力テンソルに対応する統合化された量子化オフセット、および、適応量子化係数を計算する。
本願における幾つかの実施例では、統合化された量子化オフセットは、ステップS102で得られた各固定小数点数型の入力テンソルの量子化オフセットに基づいて算出されたものであってもよく、少なくとも当該量子化オフセットに完全に依存することなく、オリジナルの入力テンソルの極値などの他のパラメータに基づいて算出されたものなどであってもよい。
S106:前記適応量子化係数と前記統合化された量子化オフセットに基づき、前記固定小数点数型の入力テンソル及びその量子化オフセットに対して、第2の量子化処理を行うことで、量子化結果を取得する。
さらに具体的に、図2に示されるように、本願における幾つかの実施例は、図1に示す適応量子化方法の詳細なフローチャートの概略図も提供する。
図2におけるフローには、以下のステップが含まれてもよい。
S202:複数のオリジナルの入力テンソルの各々に対して、当該オリジナルの入力テンソルの極値を確定すること、および、当該極値に基づいて、当該オリジナルの入力テンソルに対して第1の量子化処理を行うことで、固定小数点数型の入力テンソルを取得するとともに、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算すること、を実行する。
本願における幾つかの実施例では、畳込みニューラルネットワークについて、オリジナルの入力テンソルは、ベクトル又は行列に示されることが一般的であり、その中の元素が常時、浮動小数点数型のものである。オリジナルの入力テンソルは、畳込みニューラルネットワーク全体の入力であってもよく、畳込みニューラルネットワークにおける任意のニューロンの入力であってもよく、任意のニューロン内の処理ロジックの中間出力などであってもよい。
説明の便宜上、以下の幾つかの実施例は、主に下記のような場面を例にして説明している。即ち、畳込みニューラルネットワークを運行するデバイスは、複数の演算ロジックユニット(ArithmeticLogicUnit、ALU)を含み、ALUが畳込みニューラルネットワーク中の一般的な演算を実行することができ、各ALUが指定された1つ又は複数の演算段階で出力したデータをオリジナルの入力テンソルとすることができる。図1中のフローは、複数の異なるALUの各々に対して実行されるものであってもよい。対応して、ステップS202における複数のオリジナルの入力テンソルが同一のALUからのものとなり、ステップS202では、それらの複数のオリジナルの入力テンソルの各々に対して本願の方案における幾つかの動作を並行して実行させてもよい。そうすると、全体的な処理速度を速くすることができ、効率が高くなる。
本願における幾つかの実施例では、浮動小数点数型となる可能性のあるオリジナルの入力テンソルに対して、第1の量子化処理により、幾つかの近似的な処理を実行させて、簡素化を図る。その近似的な処理には、少なくとも、量子化処理が含まれ、量子化処理中に、浮動小数点数から固定小数点数へと変換するための変換処理などが行われることもある。第1の量子化処理中に、対応する量子化スケーリング係数を用いて量子化し、勿論、幾つかの余計な項又は係数を用いて付加的に調節することもできる。
本願における幾つかの実施例では、量子化スケーリング係数は、主に、量子化される対象への変換尺度を決定するものである。量子化スケーリング係数の計算方式は多様なものであってもよい。例えば、指定された量子化値の範囲及び/又は量子化される対象そのものの値の範囲から算出されてもよい。浮動小数点数から固定小数点数へと変換するための変換ロジックは同様に多様なものであってもよい。例えば、四捨五入による処理変換や、端数を直接に切り捨てることで変換することなどが挙げられる。
本願における幾つかの実施例では、量子化オフセットは、現在のオリジナルの入力テンソルに応じて動的に変化するものであってもよい。量子化オフセットは、ステップS202における第1の量子化処理が行われて得られた初歩的な量子化結果をさらに適応的に調整するために用いられ、それにより、調整して得られた量子化結果がオリジナルのデータにさらに接近できるようになり、演算精度の向上に寄与する。量子化オフセットの計算方式は多様なものであってもよい。例えば、量子化スケーリング係数及び/又は指定された量子化値の範囲及び/又は量子化される対象そのものの値の範囲から算出されてもよい。
S204:前記複数のオリジナルの入力テンソルの各々の極値に基づいて、統合化された極値を確定する。
本願における幾つかの実施例では、ステップS204及びその後続のステップによれば、それらの複数のオリジナルの入力テンソルに対する次元正規化を行うことができ、次元正規化の結果を基にして、更に精確な量子化結果が得られる。
本願における幾つかの実施例では、極値は具体的に、最大値及び/又は最小値を指すものであってもよい。各ALUに対して、それぞれに対応する複数のオリジナルの入力テンソルを統合化した極値を求めることができる。説明の便宜上、当該統合化された極値に対応する値の範囲を、局部値範囲として呼ぶことができる。ここに記載の「局部」と対する「全部」は、全てのALUに対応する全てのオリジナルの入力テンソルを指すことができる。
統合化された極値を求める方式は多様なものであってもよい。例えば、複数のオリジナルの入力テンソルの各々の極値のうちの極値を、直接に統合化された極値とすること、又は、複数のオリジナルの入力テンソルの各々の極値に対して平均化して、その平均値を統合化された極値とすることなどが挙げられる。
S206:前記統合化された極値に基づいて、統合化された量子化スケーリング係数と量子化オフセットを計算する。
本願における幾つかの実施例では、ステップS202における極値の代わりに、当該統合化された極値を用いてから、さらに、ステップS202の方案を参照して、統合化された量子化スケーリング係数と量子化オフセットを計算することができる。又は、ステップS202の方案とは異なる方案を用いて計算することもできる。
S208:前記統合化された量子化スケーリング係数と前記第1の量子化処理中に用いられた量子化スケーリング係数に基づいて、適応量子化係数を計算する。
本願における幾つかの実施例では、適応量子化係数の計算中に、次元正規化を行った後、近似する処理をさらに行うことができ、それにより、量子化の精度を更に精確に制御できるようになる。適応量子化係数は、1つまたは複数あってもよい。
S210:前記適応量子化係数と前記統合化された量子化オフセットに基づき、前記固定小数点数型の入力テンソル及びその量子化オフセットに対して、第2の量子化処理を行うことで、量子化結果を取得する。
本願における幾つかの実施例では、第1の量子化処理と第2の量子化処理を行うことは、オリジナルの入力テンソルを2段階で量子化することに相当し、1段階内に一括で量子化する場合と比べて、量子化ビット数が限られた場合、量子化の精度の損失の低減に寄与し、アルゴリズムの性能が向上した。
図1と図2に示す方法によれば、浮動小数点数から固定小数点数へと変換するための変換ロジック、および、少なくとも一部のステップをブロック分割して実行できる適応量子化処理が用いられたことで、量子化精度の向上、畳込みニューラルネットワーク性能の向上、および、ハードウェアの消費電力や設計の難易度の低減に寄与する。
図1と図2に示す方法を基にして、本願における幾つかの実施例では、当該方法の幾つかの具体的な実施方案及び拡張方案がさらに提供される。以下はそれらについて説明する。
本願における幾つかの実施例では、極値は、最小値と最大値のうちの少なくとも1つを含み、オリジナルの入力テンソルのうちの各々の元素をトラバースすることによって決められてもよい。最小の元素を最小値とし、最大の元素を最大値としてもよい。
本願における幾つかの実施例では、量子化値の範囲内の極値は、指定された量子化ビット数に基づいて算出されてもよい。量子化ビット数は、通常、2進数のものであり、例えば、8ビット、16ビット又は32ビットなどの2進数が挙げられる。一般的には、ビット数が高くなればなるほど、量子化の精度も高くなる。
以下は、第1の量子化処理では、N進数の指定されたビット数に基づいて量子化を行い、指定された量子化ビット数がN進数の量子化ビット数wであると仮定する。例えば、下式により、指定された量子化値の範囲内の極値を計算してもよい。
Figure 0007231731000039
Figure 0007231731000040
、Qlowが指定された量子化値の範囲内の最小値を示し、Qhighが指定された量子化値の範囲内の最大値を示し、Nが通常、2である。上記例では、負の値も考慮されているが、実際な応用では、値の範囲として、正の値のみを取ることが可能である。
本願における幾つかの実施例では、量子化スケーリング係数は、均一量子化又は非均一量子化の方式によって算出されてもよい。均一量子化の方式により計算することを例にすると、例えば、
ALUに対し、M個の量子化モジュールが当該ALUから出力された各オリジナルの入力テンソルを並行に処理すると仮定し、現在入力されたi番目のALUの出力をオリジナルの入力テンソルXiに記し、Xiをトラバースすることでその最小値と最大値を求めて、それぞれ、Xmini、Xmaxiと記し、Xiに対応する量子化スケーリング係数(
Figure 0007231731000041
と記する)は例えば、式
Figure 0007231731000042
によって算出されてもよい。
非均一量子化の方式により定義すると、例えば、上記例の式に現在のXiを含む係数または付加項などをさらに加えてもよい。上記例における幾つかのパラメータは、以下の説明に用いられることがあるが、簡明に説明するために、パラメータの意味を繰り返して解釈することはしない。
本願における幾つかの実施例では、ステップS202に対し、当該極値に基づいて、当該オリジナルの入力テンソルに対して第1の量子化処理を行うことは、具体的に、当該極値のうちの最小値と指定された量子化値の範囲内の最小値に基づいて、第1の関数を用いて、当該オリジナルの入力テンソルに対して第1の量子化処理を行うこと、および、第1の関数は、対応する量子化スケーリング係数と、浮動小数点数から固定小数点数へと変換するための変換ロジックと、を有することを含む。さらに、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算することは、具体的に、当該極値のうちの最小値と前記指定された量子化値の範囲内の最小値に基づいて、第2の関数を用いて、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算すること、および、第2の関数は、対応する量子化スケーリング係数と、浮動小数点数から固定小数点数へと変換するための変換ロジックと、を有することを含んでもよい。
本願における幾つかの実施例では、第1の関数及び/第2の関数は、対応する量子化スケーリング係数に加えて、指定された量子化値の範囲内の最小値、および、量子化処理が行われる対象の最小値などの他の係数を含んでもよい。
更に直感的にいうと、本願は、実際な応用場面で、適用できる第1の関数と第2の関数を例にして提供する。
第1の関数は、例えば、
Figure 0007231731000043
で示される。
第2の関数は、例えば、
Figure 0007231731000044
で示される。
Figure 0007231731000045
が第1の量子化処が行われた後のXiを示し、roundが浮動小数点数を四捨五入で固定小数点数にするための関数を示し、
Figure 0007231731000046
Figure 0007231731000047
で算出された量子化オフセットを示す。roundを、浮動小数点数から固定小数点数への変換を実現できる他の関数に置き換えてもよい。
本願における幾つかの実施例では、ステップS202によれば、複数のオリジナルの入力テンソルに対する各々の処理結果が得られ、後続のステップは、1つの次元正規化機能を発揮可能なロジックレイヤ(SameLayerと呼ばれる)によって実行されると仮定する。あるALUに対し、M個の量子化モジュールはその各オリジナルの入力テンソルを処理すると仮定すると、得られた固定小数点数型の入力テンソルはそれぞれ、
Figure 0007231731000048
と記し、それらで算出された量子化オフセットはそれぞれ、
Figure 0007231731000049
と記し、各オリジナルの入力テンソルは、最小値がそれぞれ、
Figure 0007231731000050
と記し、最大値がそれぞれ、
Figure 0007231731000051
と記し、各オリジナルの入力テンソルに対応する量子化スケーリング係数はそれぞれ、
Figure 0007231731000052
と記し、それらのデータをSameLayerに入力して処理する。具体的な処理過程について、下記幾つかの実施例を参照されたい。
Figure 0007231731000053
をトラバースすることで、その中の最小値を統合化された最小値とし、
Figure 0007231731000054
と記し、
Figure 0007231731000055
をトラバースすることで、その中の最大値を統合化された最大値とし、
Figure 0007231731000056
と記し、統合化された最小値と統合化された最大値は即ち、統合化された極値を構成する。
さらに、ステップS206に対し、統合化された極値に基づいて、統合化された量子化スケーリング係数と量子化オフセットを計算することは、具体的に、統合化された極値と指定された量子化値の範囲内の極値に基づいて、統合化された量子化スケーリング係数と量子化オフセットを計算することを含んでもよい。例えば、統合化された量子化スケーリング関数を
Figure 0007231731000057
と記し、式
Figure 0007231731000058
により、算出されてもよい。また、統合化された量子化オフセットを
Figure 0007231731000059
と記し、式
Figure 0007231731000060
により、算出されてもよい。
本願における幾つかの実施例では、ステップS208に対し、統合化された量子化スケーリング係数と第1の量子化処理中に用いられた量子化スケーリング係数に基づいて、適応量子化係数を計算することは、具体的に、対数座標系を用いて、前記統合化された量子化スケーリング係数と前記第1の量子化処理中に用いられた量子化スケーリング係数との比例関係を変換すること、および、前記変換された比例関係に応じて、1つまたは複数の適応量子化係数を計算することを含み、計算中に、浮動小数点数から固定小数点数へと変換するための変換ロジック及び/又は精度を保留するための係数が用いられる。
さらに、算出された複数の適応量子化係数は、第1の適応量子化係数と第2の適応量子化係数を含むと仮定すると、第1の適応量子化係数は、対数座標系を用いて、前記比例関係を変換して(対数を求めて)から、精度を保留するための係数を用いて、精度の調整を行うことによって算出されたものであり、及び/又は、第2の適応量子化係数は、対数座標系を用いて、当該比例関係と第1の適応量子化係数に基づいて、逆方向変換を行う(指数を求める)ことによって算出されたものである。
例えば、第1の量子化処理では、N進数の指定されたビット数に基づいて量子化を行うと仮定すると、下式により、第1の適応量子化係数を計算し、shiftiと記してもよい。
Figure 0007231731000061
また、下式により、第2の適応量子化係数を計算し、riと記してもよい。
Figure 0007231731000062
αが所望の精度が保留されたN進数のビット数を示し、任意の自然数が取られてもよく、ceilが天井最小整数の関数を示す。
さらに、ステップS210に対し、適応量子化係数と統合化された量子化オフセットに基づき、固定小数点数型の入力テンソル及びその量子化オフセットに対して、第2の量子化処理を行うことで、量子化結果を取得することは、具体的に、下式により、前記固定小数点数型の入力テンソル及びその量子化オフセットに対して、第2の量子化処理を行うことで、量子化結果を取得して、
Figure 0007231731000063
と記することを含んでもよい。
Figure 0007231731000064
ここに、
Figure 0007231731000065
がXiに対して第1の量子化処理を行うとともに、相応する量子化オフセットを用いて調整して得られた初歩的な量子化結果を示し、さらに、適応量子化係数を用いて初歩的な量子化結果をスケーリングしてから、統合化された量子化オフセットを用いて調整してから、
Figure 0007231731000066
が得られ、最終的な量子化結果としてもよい。
ここに説明すべきなのは、以上に挙げられた幾つかの式は、本願の方案の思想を表すものであるが、唯一な実施形態ではない。本願の方案の思想を基にすれば、上記式の代わりに用いられる更に多くの類似する式を取得することができる。
同じ思想により、本願における幾つかの実施例は、上記方法に対応する装置、デバイス、および、不揮発性コンピュータ記憶媒体をさらに提供する。
図3は、本願における幾つかの実施例が提供する図1に対応する適応量子化装置の構造概略図である。当該装置は、
複数のオリジナルの入力テンソルの各々に対して、第1の量子化処理を行うことで、固定小数点数型の入力テンソルを取得するとともに、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算する第1の量子化モジュール301と、
複数のオリジナルの入力テンソルに対応する統合化された量子化オフセット、および、適応量子化係数を計算する適応量子化係数計算モジュール302と、
前記適応量子化係数と前記統合化された量子化オフセットに基づき、前記固定小数点数型の入力テンソル及びその量子化オフセットに対して、第2の量子化処理を行うことで、量子化結果を取得する第2の量子化モジュール303と、を備えた。
選択的に、前記第1の量子化モジュール301は、複数のオリジナルの入力テンソルの各々に対して、第1の量子化処理を行うことで、固定小数点数型の入力テンソルを取得するとともに、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算することは、具体的に、
前記第1の量子化モジュール301は、複数のオリジナルの入力テンソルの各々に対して、当該オリジナルの入力テンソルの極値を確定すること、および、当該極値に基づいて、当該オリジナルの入力テンソルに対して第1の量子化処理を行うことで、固定小数点数型の入力テンソルを取得するとともに、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算すること、を実行することを含む。
選択的に、前記適応量子化係数計算モジュール302は、複数のオリジナルの入力テンソルに対応する統合化された量子化オフセット、および、適応量子化係数を計算することは、具体的に、
前記適応量子化係数計算モジュール302は、前記複数のオリジナルの入力テンソルの各々の極値に基づいて、統合化された極値を確定すること、
前記統合化された極値に基づいて、統合化された量子化スケーリング係数と量子化オフセットを計算すること、および、
前記統合化された量子化スケーリング係数と前記第1の量子化処理中に用いられた量子化スケーリング係数に基づいて、適応量子化係数を計算することを含む。
選択的に、前記複数のオリジナルの入力テンソルは、同一の演算ロジックユニットALUからのものであり、前記装置が複数の異なるALUの各々に対して実行する。
選択的に、前記第1の量子化モジュール301は、当該極値に基づいて、当該オリジナルの入力テンソルに対して第1の量子化処理を行うことは、具体的に、
前記第1の量子化モジュール301は、当該極値のうちの最小値と指定された量子化値の範囲内の最小値に基づいて、第1の関数を用いて、当該オリジナルの入力テンソルに対して第1の量子化処理を行うこと、および、
前記第1の関数は、対応する量子化スケーリング係数と、浮動小数点数から固定小数点数へと変換するための変換ロジックと、を有することを含む。
選択的に、前記第1の量子化モジュール301は、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算することは、具体的に、
前記第1の量子化モジュール301は、当該極値のうちの最小値と前記指定された量子化値の範囲内の最小値に基づいて、第2の関数を用いて、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算すること、および、
前記第2の関数は、前記対応する量子化スケーリング係数と、浮動小数点数から固定小数点数へと変換するための変換ロジックと、を有することを含む。
選択的に、前記対応する量子化スケーリング係数は、当該極値及び/又は前記指定された量子化値の範囲内の極値に基づいて計算されたものである。
選択的に、前記適応量子化係数計算モジュール302は、前記統合化された極値に基づいて、統合化された量子化スケーリング係数と量子化オフセットを計算することは、具体的に、
前記適応量子化係数計算モジュール302は、前記統合化された極値と指定された量子化値の範囲内の極値に基づいて、統合化された量子化スケーリング係数と量子化オフセットを計算することを含む。
選択的に、前記適応量子化係数計算モジュール302は、前記統合化された量子化スケーリング係数と前記第1の量子化処理中に用いられた量子化スケーリング係数に基づいて、適応量子化係数を計算することは、具体的に、
前記適応量子化係数計算モジュール302は、対数座標系を用いて、前記統合化された量子化スケーリング係数と前記第1の量子化処理中に用いられた量子化スケーリング係数との比例関係を変換すること、および、
前記変換された比例関係に応じて、1つまたは複数の適応量子化係数を計算することを含み、
前記計算中に、浮動小数点数から固定小数点数へと変換するための変換ロジック及び/又は精度を保留するための係数が用いられる。
選択的に、前記対応する量子化スケーリング係数は、下式により計算されたものであり、
Figure 0007231731000067
Figure 0007231731000068
がオリジナルの入力テンソルXiに対応する量子化スケーリング係数を示し、Qlowが前記指定された量子化値の範囲内の最小値を示し、Qhighが前記指定された量子化値の範囲内の最大値を示し、XminiがXiの最小値を示し、XmaxiがXiの最大値を示す。
選択的に、前記第1の関数は、
Figure 0007231731000069
で示され、
Figure 0007231731000070
が前記第1の量子化処理が行われた後のオリジナルの入力テンソルXiを示し、XminiがXiの最小値を示し、
Figure 0007231731000071
がXiに対応する量子化スケーリング係数を示し、Qlowが前記指定された量子化値の範囲内の最小値を示し、roundが浮動小数点数を四捨五入で固定小数点数にするための関数を示す。
選択的に、前記第2の関数は、
Figure 0007231731000072
で示され、
Figure 0007231731000073
が前記第1の量子化処理が行われた後のXiで算出された量子化オフセットを示し、XminiがXiの最小値を示し、
Figure 0007231731000074
がXiに対応する量子化スケーリング係数を示し、Qlowが前記量子化値の範囲内の最小値を示し、roundが浮動小数点数を四捨五入で固定小数点数にするための関数を示す。
選択的に、前記複数の適応量子化係数は、第1の適応量子化係数と第2の適応量子化係数を含み、
前記第1の適応量子化係数は、前記適応量子化係数計算モジュール302が対数座標系を用いて、前記比例関係を変換してから、前記精度を保留するための係数を用いて、精度の調整を行うことによって算出されたものであり、及び/又は、
前記第2の適応量子化係数は、前記適応量子化係数計算モジュール302が対数座標系を用いて、前記比例関係と前記第1の適応量子化係数に基づいて、逆方向変換を行うことによって算出されたものである。
選択的に、前記第1の量子化処理では、N進数の指定されたビット数に基づいて量子化を行い、前記適応量子化係数計算モジュール302が下式により、前記第1の適応量子化係数shiftiを計算し、
Figure 0007231731000075
Figure 0007231731000076
がオリジナルの入力テンソルXiに対応する量子化スケーリング係数を示し、
Figure 0007231731000077
が前記統合化された量子化スケーリング係数を示し、αが所望の精度が保留されたN進数のビット数を示し、ceilが天井最小整数の関数を示す。
選択的に、前記第1の量子化処理では、N進数の指定されたビット数に基づいて量子化を行い、前記適応量子化係数計算モジュール302が下式により、前記第2の適応量子化係数riを計算し、
Figure 0007231731000078
Figure 0007231731000079
がオリジナルの入力テンソルXiに対応する量子化スケーリング係数を示し、
Figure 0007231731000080
が前記統合化された量子化スケーリング係数を示し、shiftiが前記第1の適応量子化係数を示し、roundが浮動小数点数を四捨五入で固定小数点数にするための関数を示す。
選択的に、前記第1の量子化処理では、N進数の指定されたビット数に基づいて量子化を行い、前記第2の量子化モジュール303は、前記適応量子化係数と前記統合化された量子化オフセットに基づき、前記固定小数点数型の入力テンソル及びその量子化オフセットに対して、第2の量子化処理を行うことで、量子化結果を取得すること、具体的に、
前記第2の量子化モジュール303は、下式により、前記固定小数点数型の入力テンソル及びその量子化オフセットに対して、第2の量子化処理を行うことで、量子化結果
Figure 0007231731000081
を取得することを含み、
Figure 0007231731000082
shiftiが前記第1の適応量子化係数を示し、riが前記第2の適応量子化係数を示し、
Figure 0007231731000083
が前記第1の量子化処理が行われた後のオリジナルの入力テンソルXiを示し、
Figure 0007231731000084
が前記第1の量子化処理が行われた後のXiで算出された量子化オフセットを示し、
Figure 0007231731000085
が前記統合化された量子化オフセットを示す。
図3は、本願における幾つかの実施例が提供する図1に対応する適応量子化デバイスの構造概略図である。当該デバイスは、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに通信接続されたメモリと、を備え、
前記メモリには、前記少なくとも1つのプロセッサが実行可能なインストラクションが記憶されており、前記インストラクションが前記少なくとも1つのプロセッサによって実行されることにより、前記少なくとも1つのプロセッサは、
複数のオリジナルの入力テンソルの各々に対して、当該オリジナルの入力テンソルの極値を確定すること、および、当該極値に基づいて、当該オリジナルの入力テンソルに対して第1の量子化処理を行うことで、固定小数点数型の入力テンソルを取得するとともに、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算すること、
前記複数のオリジナルの入力テンソルの各々の極値に基づいて、統合化された極値を確定すること、
前記統合化された極値に基づいて、統合化された量子化スケーリング係数と量子化オフセットを計算すること、および、
前記統合化された量子化スケーリング係数と前記第1の量子化処理中に用いられた量子化スケーリング係数に基づいて、適応量子化係数を計算することを含む。
前記適応量子化係数と前記統合化された量子化オフセットに基づき、前記固定小数点数型の入力テンソル及びその量子化オフセットに対して、第2の量子化処理を行うことで、量子化結果を取得することを可能にすることができる。
本願における幾つかの実施例が提供する図1に対応する、コンピュータが実行可能なインストラクションを記憶した適応量子化非一時的コンピュータ記憶媒体であって、当該コンピュータが実行可能なインストラクションは、
複数のオリジナルの入力テンソルの各々に対して、当該オリジナルの入力テンソルの極値を確定すること、および、当該極値に基づいて、当該オリジナルの入力テンソルに対して第1の量子化処理を行うことで、固定小数点数型の入力テンソルを取得するとともに、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算し、
前記複数のオリジナルの入力テンソルの各々の極値に基づいて、統合化された極値を確定し、
前記統合化された極値に基づいて、統合化された量子化スケーリング係数と量子化オフセットを計算し、
前記統合化された量子化スケーリング係数と前記第1の量子化処理中に用いられた量子化スケーリング係数に基づいて、適応量子化係数を計算し、
前記適応量子化係数と前記統合化された量子化オフセットに基づき、前記固定小数点数型の入力テンソル及びその量子化オフセットに対して、第2の量子化処理を行うことで、量子化結果を取得するように設定されている。
本願における各実施例は、漸進的な方式により記述されており、各実施例間における同一や類似した部分について、相互参照すればよく、各実施例では、他の実施例との相違点に重点を置いて説明されている。特に、装置、デバイス及び媒体の実施例について、それらが方法実施例と基本的に同じなので、それらに対する記述は簡素化され、関連部分について、方法実施例における一部の説明を参照すればよい。
本願の実施例で提供される装置、デバイス及び媒体は、方法と一対一で対応するものである。そのため、装置、デバイス及び媒体は、それらに対応する方法と類似した有益な技術的効果を有するものである。以上は、方法による有益な技術的効果について詳しく説明されているので、ここでは、装置、デバイス及び媒体による有益な技術的効果の説明を省略する。
当業者であれば分かるように、本発明の実施例は、方法、システム、または、コンピュータプログラム製品として提供されてもよい。そのため、本発明は、完全ハードウェアの実施例、完全ソフトウェアの実施例、または、ソフトウェアとハードウェアの方面を組み合わせた実施例の形式が用いられてもよい。しかも、本発明は、1つまたは複数の、コンピュータ利用可能なプログラムコードを含むコンピュータ利用可能な記憶媒体(ディスクメモリ、CD-ROM、光学メモリなどを含むが、それらに限られないもの)に実施されるコンピュータプログラム製品の形式が用いられてもよい。
本発明は、本発明の実施例に係る方法、デバイス(システム)およびコンピュータプログラム製品のフローチャートおよび/またはブロック図を参照して説明していた。理解すべきなのは、コンピュータプログラムインストラクションによって、フローチャート及び/又はブロック図における各プロセス及び/又はブロックや、フローチャート及び/又はブロック図におけるプロセス及び/またはブロックの組み合わせが実現されてもよい。これらのコンピュータプログラムインストラクションを、汎用コンピュータ、専用コンピュータ、埋込型プロセッサ、または、他のプログラマブルデータ処理装置のプロセッサに提供することにより、機器を発生させ、それにより、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサによって実行されるインストラクションによれば、フローチャートにおける1つのフローまたは複数のフロー及び/又はブロック図の1つのブロックまたは複数のブロックに指定された機能を実現するための装置を発生させる。
これらのコンピュータプログラムインストラクションは、コンピュータ又は他のプログラマブルデータ処理装置を特定の方式で作動するようにガイドできるコンピュータ可読メモリに記憶されてもよい。それにより、当該コンピュータ可読メモリに記憶されたインストラクションは、インストラクション装置を含む製品を発生させ、当該インストラクション装置によれば、フローチャートにおける1つのフローまたは複数のフロー及び/又はブロック図の1つのブロックまたは複数のブロックに指定された機能が実現される。
これらのコンピュータプログラムインストラクションは、コンピュータ又は他のプログラマブルデータ処理装置にロードされてもよい。それにより、コンピュータ又は他のプログラマブル装置において、一連の操作を実行してコンピュータによって実現される処理を発生させ、さらに、コンピュータ又は他のプログラマブル装置によって実行されるインストラクションは、フローチャートにおける1つのフローまたは複数のフロー及び/又はブロック図の1つのブロックまたは複数のブロックに指定された機能を実現するためのステップを提供する。
典型的な配置では、コンピュータ機器には、1つ以上のプロセッサ(CPU)、入出力インターフェース、ネットワークインターフェース及びメモリが含まれる。
メモリは、コンピュータ可読媒体における非永久的メモリ、ランダムアクセスメモリ(RAM)及び/又は不揮発性メモリなどの形式を有するものを含んでもよく、例えば、リードオンリーメモリ(ROM)又はフラッシュメモリ(flash RAM)が考えられる。メモリは、コンピュータ可読媒体の一例である。
コンピュータ可読媒体は、永久的・非永久的、移動可能・移動不可能な媒体を含み、任意の方法又は技術によって情報の記憶が実現されてもよい。情報は、コンピュータ可読インストラクション、データ構成、プログラムのモジュール又は他のデータであってもよい。コンピュータの記憶媒体の例として、コンピュータ機器によってアクセスされ得る情報を記憶することができるような、相変化メモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、他の種類のランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)、フラッシュメモリまたは他のメモリ技術、コンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)または他の光学記憶装置、磁気カセット、磁気テープ磁気ディスク記憶装置または他の磁気記憶装置または任意の他の非伝送媒体を含んでもよいが、それらによって制限されない。本文の定義によると、コンピュータ可読媒体は、変調されるデータ信号やキャリアのような一時的なコンピュータ可読媒体(transitorymedia)を含まない。
さらに説明すべきなのは、「含む」、「包含」という用語又は他の変形は、非排除性の「含む」を意図的にカバーするものであり、それにより、一連の要素を含むプロセス、方法、商品または機器はそれらの要素を含むだけではなく、明確に挙げられていない他の要素、又は、そのようなプロセス、方法、商品または機器の固有の要素も含む。あまり多くの制限がない場合、「1つの……を含む」という文章で限定された要素について、前記要素を含むプロセス、方法、商品または機器には、他の同様の要素がさらに存在することが排除できない。
以上に記述されているのは、本願の実施例に過ぎず、本願を制限するためのものではない。当業者にとって、本願は、種々の変更や変化が行われてもよい。本願の精神と原則において行われた如何なる補正、等価代替、改良等は、いずれも、本願の特許請求の範囲内に入っている。

Claims (32)

  1. 適応量子化方法であって、
    複数のオリジナルの入力テンソルの各々に対して、第1の量子化処理を行うことで、固定小数点数型の入力テンソルを取得するとともに、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算すること
    複数のオリジナルの入力テンソルに対応する統合化された量子化オフセット、および、適応量子化係数を計算すること、および、
    前記適応量子化係数と前記統合化された量子化オフセットに基づき、前記固定小数点数型の入力テンソル及びその量子化オフセットに対して、第2の量子化処理を行うことで、量子化結果を取得することを含み、
    複数のオリジナルの入力テンソルに対応する統合化された量子化オフセット、および、適応量子化係数を計算することは、具体的に、
    前記複数のオリジナルの入力テンソルの各々の極値に基づいて、統合化された極値を確定すること、
    前記統合化された極値に基づいて、統合化された量子化スケーリング係数と量子化オフセットを計算すること、および、
    前記統合化された量子化スケーリング係数と前記第1の量子化処理中に用いられた量子化スケーリング係数に基づいて、適応量子化係数を計算することを含む
    ことを特徴とする適応量子化方法。
  2. 複数のオリジナルの入力テンソルの各々に対して、第1の量子化処理を行うことで、固定小数点数型の入力テンソルを取得するとともに、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算することは、具体的に、
    複数のオリジナルの入力テンソルの各々に対して、当該オリジナルの入力テンソルの極値を確定すること、および、当該極値に基づいて、当該オリジナルの入力テンソルに対して第1の量子化処理を行うことで、固定小数点数型の入力テンソルを取得するとともに、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算すること、を実行することを含む、ことを特徴とする請求項1に記載の方法。
  3. 前記複数のオリジナルの入力テンソルは、同一の演算ロジックユニットALUからのものであり、前記方法が複数の異なるALUの各々に対して実行される、ことを特徴とする請求項1に記載の方法。
  4. 当該極値に基づいて、当該オリジナルの入力テンソルに対して第1の量子化処理を行うことは、具体的に、
    当該極値のうちの最小値と指定された量子化値の範囲内の最小値に基づいて、第1の関数を用いて、当該オリジナルの入力テンソルに対して第1の量子化処理を行うこと、および、
    前記第1の関数は、対応する量子化スケーリング係数と、浮動小数点数から固定小数点数へと変換するための変換ロジックと、を有することを含む、ことを特徴とする請求項2に記載の方法。
  5. 当該固定小数点数型の入力テンソルに対する量子化オフセットを計算することは、具体的に、
    当該極値のうちの最小値と前記指定された量子化値の範囲内の最小値に基づいて、第2の関数を用いて、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算すること、および、
    前記第2の関数は、前記対応する量子化スケーリング係数と、浮動小数点数から固定小数点数へと変換するための変換ロジックと、を有することを含む、ことを特徴とする請求項に記載の方法。
  6. 前記対応する量子化スケーリング係数は、当該極値及び/又は前記指定された量子化値の範囲内の極値に基づいて計算されたものである、ことを特徴とする請求項又はに記載の方法。
  7. 前記統合化された極値に基づいて、統合化された量子化スケーリング係数と量子化オフセットを計算することは、具体的に、
    前記統合化された極値と指定された量子化値の範囲内の極値に基づいて、統合化された量子化スケーリング係数と量子化オフセットを計算することを含むことを特徴とする請求項に記載の方法。
  8. 前記統合化された量子化スケーリング係数と前記第1の量子化処理中に用いられた量子化スケーリング係数に基づいて、適応量子化係数を計算することは、具体的に、
    対数座標系を用いて、前記統合化された量子化スケーリング係数と前記第1の量子化処理中に用いられた量子化スケーリング係数との比例関係を変換すること、および、
    前記変換された比例関係に応じて、1つまたは複数の適応量子化係数を計算することを含み、
    前記計算中に、浮動小数点数から固定小数点数へと変換するための変換ロジック及び/又は精度を保留するための係数が用いられる、ことを特徴とする請求項に記載の方法。
  9. 前記対応する量子化スケーリング係数は、下式により計算されたものであり、
    Figure 0007231731000086

    Figure 0007231731000087

    がオリジナルの入力テンソルXiに対応する量子化スケーリング係数を示し、Qlowが前記指定された量子化値の範囲内の最小値を示し、Qhighが前記指定された量子化値の範囲内の最大値を示し、XminiがXiの最小値を示し、XmaxiがXiの最大値を示す、ことを特徴とする請求項に記載の方法。
  10. 前記第1の関数は、
    Figure 0007231731000088

    で示され、
    Figure 0007231731000089

    が前記第1の量子化処理が行われた後のオリジナルの入力テンソルXiを示し、XminiがXiの最小値を示し、
    Figure 0007231731000090

    がXiに対応する量子化スケーリング係数を示し、Qlowが前記指定された量子化値の範囲内の最小値を示し、roundが浮動小数点数を四捨五入で固定小数点数にするための関数を示す、ことを特徴とする請求項に記載の方法。
  11. 前記第2の関数は、
    Figure 0007231731000091

    で示され、
    Figure 0007231731000092

    が前記第1の量子化処理が行われた後のXiで算出された量子化オフセットを示し、XminiがXiの最小値を示し、
    Figure 0007231731000093

    がXiに対応する量子化スケーリング係数を示し、Qlowが前記量子化値の範囲内の最小値を示し、roundが浮動小数点数を四捨五入で固定小数点数にするための関数を示す、ことを特徴とする請求項に記載の方法。
  12. 前記複数の適応量子化係数は、第1の適応量子化係数と第2の適応量子化係数を含み、
    前記第1の適応量子化係数は、対数座標系を用いて、前記比例関係を変換してから、前記精度を保留するための係数を用いて、精度の調整を行うことによって算出されたものであり、及び/又は、
    前記第2の適応量子化係数は、対数座標系を用いて、前記比例関係と前記第1の適応量子化係数に基づいて、逆方向変換を行うことによって算出されたものである、ことを特徴とする請求項に記載の方法。
  13. 前記第1の量子化処理では、N進数の指定されたビット数に基づいて量子化を行い、下式により、前記第1の適応量子化係数shiftiを計算し、
    Figure 0007231731000094

    Figure 0007231731000095

    がオリジナルの入力テンソルXiに対応する量子化スケーリング係数を示し、
    Figure 0007231731000096

    が前記統合化された量子化スケーリング係数を示し、αが所望の精度が保留されたN進数のビット数を示し、ceilが天井最小整数の関数を示す、ことを特徴とする請求項12に記載の方法。
  14. 前記第1の量子化処理では、N進数の指定されたビット数に基づいて量子化を行い、下式により、前記第2の適応量子化係数riを計算し、
    Figure 0007231731000097

    Figure 0007231731000098

    がオリジナルの入力テンソルXiに対応する量子化スケーリング係数を示し、
    Figure 0007231731000099

    が前記統合化された量子化スケーリング係数を示し、shiftiが前記第1の適応量子化係数を示し、roundが浮動小数点数を四捨五入で固定小数点数にするための関数を示す、ことを特徴とする請求項12に記載の方法。
  15. 前記第1の量子化処理では、N進数の指定されたビット数に基づいて量子化を行い、前記適応量子化係数と前記統合化された量子化オフセットに基づき、前記固定小数点数型の入力テンソル及びその量子化オフセットに対して、第2の量子化処理を行うことで、量子化結果を取得するステップは、具体的に、
    下式により、前記固定小数点数型の入力テンソル及びその量子化オフセットに対して、第2の量子化処理を行うことで、量子化結果
    Figure 0007231731000100

    を取得することを含み、
    Figure 0007231731000101

    shiftiが前記第1の適応量子化係数を示し、riが前記第2の適応量子化係数を示し、
    Figure 0007231731000102

    が前記第1の量子化処理が行われた後のオリジナルの入力テンソルXiを示し、
    Figure 0007231731000103

    が前記第1の量子化処理が行われた後のXiで算出された量子化オフセットを示し、
    Figure 0007231731000104

    が前記統合化された量子化オフセットを示す、ことを特徴とする請求項1214のいずれか1項に記載の方法。
  16. 適応量子化装置であって、
    複数のオリジナルの入力テンソルの各々に対して、第1の量子化処理を行うことで、固定小数点数型の入力テンソルを取得するとともに、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算する第1の量子化モジュールと、
    複数のオリジナルの入力テンソルに対応する統合化された量子化オフセット、および、適応量子化係数を計算する適応量子化係数計算モジュールと、
    前記適応量子化係数と前記統合化された量子化オフセットに基づき、前記固定小数点数型の入力テンソル及びその量子化オフセットに対して、第2の量子化処理を行うことで、量子化結果を取得する第2の量子化モジュールと、を備え
    前記適応量子化係数計算モジュールは、複数のオリジナルの入力テンソルに対応する統合化された量子化オフセット、および、適応量子化係数を計算することは、具体的に、
    前記適応量子化係数計算モジュールは、前記複数のオリジナルの入力テンソルの各々の極値に基づいて、統合化された極値を確定すること、
    前記統合化された極値に基づいて、統合化された量子化スケーリング係数と量子化オフセットを計算すること、および、
    前記統合化された量子化スケーリング係数と前記第1の量子化処理中に用いられた量子化スケーリング係数に基づいて、適応量子化係数を計算することを含む
    ことを特徴とする適応量子化装置。
  17. 前記第1の量子化モジュールは、複数のオリジナルの入力テンソルの各々に対して、第1の量子化処理を行うことで、固定小数点数型の入力テンソルを取得するとともに、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算することは、具体的に、
    前記第1の量子化モジュールは、複数のオリジナルの入力テンソルの各々に対して、当該オリジナルの入力テンソルの極値を確定すること、および、当該極値に基づいて、当該オリジナルの入力テンソルに対して第1の量子化処理を行うことで、固定小数点数型の入力テンソルを取得するとともに、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算すること、を実行することを含む、ことを特徴とする請求項16に記載の適応量子化装置。
  18. 前記複数のオリジナルの入力テンソルは、同一の演算ロジックユニットALUからのものであり、前記適応量子化装置が複数の異なるALUの各々に対して実行する、ことを特徴とする請求項16に記載の適応量子化装置。
  19. 前記第1の量子化モジュールは、当該極値に基づいて、当該オリジナルの入力テンソルに対して第1の量子化処理を行うことは、具体的に、
    前記第1の量子化モジュールは、当該極値のうちの最小値と指定された量子化値の範囲内の最小値に基づいて、第1の関数を用いて、当該オリジナルの入力テンソルに対して第1の量子化処理を行うこと、および、
    前記第1の関数は、対応する量子化スケーリング係数と、浮動小数点数から固定小数点数へと変換するための変換ロジックと、を有することを含む、ことを特徴とする請求項17に記載の適応量子化装置。
  20. 前記第1の量子化モジュールは、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算することは、具体的に、
    前記第1の量子化モジュールは、当該極値のうちの最小値と前記指定された量子化値の範囲内の最小値に基づいて、第2の関数を用いて、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算すること、および、
    前記第2の関数は、前記対応する量子化スケーリング係数と、浮動小数点数から固定小数点数へと変換するための変換ロジックと、を有することを含む、ことを特徴とする請求項19に記載の適応量子化装置。
  21. 前記対応する量子化スケーリング係数は、当該極値及び/又は前記指定された量子化値の範囲内の極値に基づいて計算されたものである、ことを特徴とする請求項19又は20に記載の適応量子化装置。
  22. 前記適応量子化係数計算モジュールは、前記統合化された極値に基づいて、統合化された量子化スケーリング係数と量子化オフセットを計算することは、具体的に、
    前記適応量子化係数計算モジュールは、前記統合化された極値と指定された量子化値の範囲内の極値に基づいて、統合化された量子化スケーリング係数と量子化オフセットを計算することを含むことを特徴とする請求項16に記載の適応量子化装置。
  23. 前記適応量子化係数計算モジュールは、前記統合化された量子化スケーリング係数と前記第1の量子化処理中に用いられた量子化スケーリング係数に基づいて、適応量子化係数を計算することは、具体的に、
    前記適応量子化係数計算モジュールは、対数座標系を用いて、前記統合化された量子化スケーリング係数と前記第1の量子化処理中に用いられた量子化スケーリング係数との比例関係を変換すること、および、
    前記変換された比例関係に応じて、1つまたは複数の適応量子化係数を計算すること、を含み、
    前記計算中に、浮動小数点数から固定小数点数へと変換するための変換ロジック及び/又は精度を保留するための係数が用いられる、ことを特徴とする請求項16に記載の適応量子化装置。
  24. 前記対応する量子化スケーリング係数は、下式により計算されたものであり、
    Figure 0007231731000105

    Figure 0007231731000106

    がオリジナルの入力テンソルXiに対応する量子化スケーリング係数を示し、Qlowが前記指定された量子化値の範囲内の最小値を示し、Qhighが前記指定された量子化値の範囲内の最大値を示し、XminiがXiの最小値を示し、XmaxiがXiの最大値を示す、ことを特徴とする請求項21に記載の適応量子化装置。
  25. 前記第1の関数は、
    Figure 0007231731000107

    で示され、
    Figure 0007231731000108

    が前記第1の量子化処理が行われた後のオリジナルの入力テンソルXiを示し、XminiがXiの最小値を示し、
    Figure 0007231731000109

    がXiに対応する量子化スケーリング係数を示し、Qlowが前記指定された量子化値の範囲内の最小値を示し、roundが浮動小数点数を四捨五入で固定小数点数にするための関数を示す、ことを特徴とする請求項19に記載の適応量子化装置。
  26. 前記第2の関数は、
    Figure 0007231731000110

    で示され、
    Figure 0007231731000111

    が前記第1の量子化処理が行われた後のXiで算出された量子化オフセットを示し、XminiがXiの最小値を示し、
    Figure 0007231731000112

    がXiに対応する量子化スケーリング係数を示し、Qlowが前記量子化値の範囲内の最小値を示し、roundが浮動小数点数を四捨五入で固定小数点数にするための関数を示す、ことを特徴とする請求項20に記載の適応量子化装置。
  27. 前記複数の適応量子化係数は、第1の適応量子化係数と第2の適応量子化係数を含み、
    前記第1の適応量子化係数は、前記適応量子化係数計算モジュールが対数座標系を用いて、前記比例関係を変換してから、前記精度を保留するための係数を用いて、精度の調整を行うことによって算出されたものであり、及び/又は、
    前記第2の適応量子化係数は、前記適応量子化係数計算モジュールが対数座標系を用いて、前記比例関係と前記第1の適応量子化係数に基づいて、逆方向変換を行うことによって算出されたものである、ことを特徴とする請求項23に記載の適応量子化装置。
  28. 前記第1の量子化処理では、N進数の指定されたビット数に基づいて量子化を行い、前記適応量子化係数計算モジュールは、下式により、前記第1の適応量子化係数shiftiを計算し、
    Figure 0007231731000113

    Figure 0007231731000114

    がオリジナルの入力テンソルXiに対応する量子化スケーリング係数を示し、
    Figure 0007231731000115

    が前記統合化された量子化スケーリング係数を示し、αが所望の精度が保留されたN進数のビット数を示し、ceilが天井最小整数の関数を示す、ことを特徴とする請求項27に記載の装置。
  29. 前記第1の量子化処理では、N進数の指定されたビット数に基づいて量子化を行い、前記適応量子化係数計算モジュールは、下式により、前記第2の適応量子化係数riを計算し、
    Figure 0007231731000116

    Figure 0007231731000117

    がオリジナルの入力テンソルXiに対応する量子化スケーリング係数を示し、
    Figure 0007231731000118

    が前記統合化された量子化スケーリング係数を示し、shiftiが前記第1の適応量子化係数を示し、roundが浮動小数点数を四捨五入で固定小数点数にするための関数を示す、ことを特徴とする請求項27に記載の適応量子化装置。
  30. 前記第1の量子化処理では、N進数の指定されたビット数に基づいて量子化を行い、前記第2の量子化モジュールは、前記適応量子化係数と前記統合化された量子化オフセットに基づき、前記固定小数点数型の入力テンソル及びその量子化オフセットに対して、第2の量子化処理を行うことで、量子化結果を取得することは、具体的に、
    前記第2の量子化モジュールは、下式により、前記固定小数点数型の入力テンソル及びその量子化オフセットに対して、第2の量子化処理を行うことで、量子化結果
    Figure 0007231731000119

    を取得することを含み、
    Figure 0007231731000120

    shiftiが前記第1の適応量子化係数を示し、riが前記第2の適応量子化係数を示し、
    Figure 0007231731000121

    が前記第1の量子化処理が行われた後のオリジナルの入力テンソルXiを示し、
    Figure 0007231731000122

    が前記第1の量子化処理が行われた後のXiで算出された量子化オフセットを示し、
    Figure 0007231731000123

    が前記統合化された量子化オフセットを示す、ことを特徴とする請求項2729のいずれか1項に記載の適応量子化装置。
  31. 適応量子化デバイスであって、
    少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサに通信接続されたメモリと、を備え、
    前記メモリには、前記少なくとも1つのプロセッサが実行可能なインストラクションが記憶されており、前記インストラクションが前記少なくとも1つのプロセッサによって実行されることにより、前記少なくとも1つのプロセッサは、
    複数のオリジナルの入力テンソルの各々に対して、第1の量子化処理を行うことで、固定小数点数型の入力テンソルを取得するとともに、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算すること、
    複数のオリジナルの入力テンソルに対応する統合化された量子化オフセット、および、適応量子化係数を計算すること、および、
    前記適応量子化係数と前記統合化された量子化オフセットに基づき、前記固定小数点数型の入力テンソル及びその量子化オフセットに対して、第2の量子化処理を行うことで、量子化結果を取得することを可能にすることができ
    複数のオリジナルの入力テンソルに対応する統合化された量子化オフセット、および、適応量子化係数を計算することは、具体的に、
    前記複数のオリジナルの入力テンソルの各々の極値に基づいて、統合化された極値を確定すること、
    前記統合化された極値に基づいて、統合化された量子化スケーリング係数と量子化オフセットを計算すること、および、
    前記統合化された量子化スケーリング係数と前記第1の量子化処理中に用いられた量子化スケーリング係数に基づいて、適応量子化係数を計算することを含む
    ことを特徴とする適応量子化デバイス。
  32. コンピュータが実行可能なインストラクションを記憶した適応量子化非一時的コンピュータ記憶媒体であって、
    前記コンピュータが実行可能なインストラクションは、
    複数のオリジナルの入力テンソルの各々に対して、第1の量子化処理を行うことで、固定小数点数型の入力テンソルを取得するとともに、当該固定小数点数型の入力テンソルに対する量子化オフセットを計算し、
    複数のオリジナルの入力テンソルに対応する統合化された量子化オフセット、および、適応量子化係数を計算し、
    前記適応量子化係数と前記統合化された量子化オフセットに基づき、前記固定小数点数型の入力テンソル及びその量子化オフセットに対して、第2の量子化処理を行うことで、量子化結果を取得するように設定され、
    複数のオリジナルの入力テンソルに対応する統合化された量子化オフセット、および、適応量子化係数を計算することは、具体的に、
    前記複数のオリジナルの入力テンソルの各々の極値に基づいて、統合化された極値を確定すること、
    前記統合化された極値に基づいて、統合化された量子化スケーリング係数と量子化オフセットを計算すること、および、
    前記統合化された量子化スケーリング係数と前記第1の量子化処理中に用いられた量子化スケーリング係数に基づいて、適応量子化係数を計算することを含む
    ことを特徴とする適応量子化非一時的コンピュータ記憶媒体。
JP2021527128A 2018-11-15 2019-09-17 適応量子化方法及び装置、デバイス、媒体 Active JP7231731B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201811358824.0 2018-11-15
CN201811358824.0A CN111191783B (zh) 2018-11-15 2018-11-15 一种自适应量化方法及装置、设备、介质
PCT/CN2019/106084 WO2020098368A1 (zh) 2018-11-15 2019-09-17 一种自适应量化方法及装置、设备、介质

Publications (2)

Publication Number Publication Date
JP2022507704A JP2022507704A (ja) 2022-01-18
JP7231731B2 true JP7231731B2 (ja) 2023-03-01

Family

ID=70710535

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021527128A Active JP7231731B2 (ja) 2018-11-15 2019-09-17 適応量子化方法及び装置、デバイス、媒体

Country Status (6)

Country Link
US (1) US20220091821A1 (ja)
EP (1) EP3882824A4 (ja)
JP (1) JP7231731B2 (ja)
KR (1) KR20210093952A (ja)
CN (1) CN111191783B (ja)
WO (1) WO2020098368A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021111081A (ja) * 2020-01-09 2021-08-02 富士通株式会社 情報処理装置、ニューラルネットワークの演算プログラム及びニューラルネットワークの演算方法
US11601134B2 (en) * 2020-01-10 2023-03-07 Robert Bosch Gmbh Optimized quantization for reduced resolution neural networks
CN112130807B (zh) * 2020-11-25 2021-02-26 上海燧原科技有限公司 张量浮点数据处理方法、装置、设备及存储介质
CN112541549B (zh) * 2020-12-15 2024-04-26 深兰人工智能(深圳)有限公司 商品分类识别方法及装置
CN113554149B (zh) * 2021-06-18 2022-04-12 北京百度网讯科技有限公司 神经网络处理单元npu、神经网络的处理方法及其装置
CN115328438B (zh) * 2022-10-13 2023-01-10 华控清交信息科技(北京)有限公司 一种数据处理方法、装置及电子设备
KR20240077167A (ko) * 2022-11-24 2024-05-31 주식회사 모빌린트 합성곱 연산을 위한 데이터 처리 방법 및 컴퓨팅 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006141046A (ja) 2005-11-29 2006-06-01 Sony Corp 画像処理装置、画像処理方法、学習装置及び学習方法
JP2016213849A (ja) 2011-11-04 2016-12-15 ドルビー ラボラトリーズ ライセンシング コーポレイション 階層的vdr符号化における層分解

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8732226B2 (en) * 2006-06-06 2014-05-20 Intel Corporation Integer rounding operation
CN111275628B (zh) * 2015-12-23 2024-06-18 华为技术有限公司 一种图像信号转换处理方法、装置及终端设备
CN106611216A (zh) * 2016-12-29 2017-05-03 北京旷视科技有限公司 基于神经网络的计算方法及装置
CN106855952B (zh) * 2016-12-29 2020-08-18 北京旷视科技有限公司 基于神经网络的计算方法及装置
CN108345939B (zh) * 2017-01-25 2022-05-24 微软技术许可有限责任公司 基于定点运算的神经网络
US11556772B2 (en) * 2017-04-28 2023-01-17 Intel Corporation Incremental precision networks using residual inference and fine-grain quantization
US10643297B2 (en) * 2017-05-05 2020-05-05 Intel Corporation Dynamic precision management for integer deep learning primitives
CN107247575A (zh) * 2017-06-06 2017-10-13 上海德衡数据科技有限公司 一种多路数据浮点处理器原型
CN107480770B (zh) * 2017-07-27 2020-07-28 中国科学院自动化研究所 可调节量化位宽的神经网络量化与压缩的方法及装置
CN107766939A (zh) * 2017-11-07 2018-03-06 维沃移动通信有限公司 一种数据处理方法、装置及移动终端
CN108053028B (zh) * 2017-12-21 2021-09-14 深圳励飞科技有限公司 数据定点化处理方法、装置、电子设备及计算机存储介质
CN108345831A (zh) * 2017-12-28 2018-07-31 新智数字科技有限公司 基于点云数据的道路图像分割的方法、装置以及电子设备
CN108491926B (zh) * 2018-03-05 2022-04-12 东南大学 一种基于对数量化的低比特高效深度卷积神经网络硬件加速设计方法、模块及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006141046A (ja) 2005-11-29 2006-06-01 Sony Corp 画像処理装置、画像処理方法、学習装置及び学習方法
JP2016213849A (ja) 2011-11-04 2016-12-15 ドルビー ラボラトリーズ ライセンシング コーポレイション 階層的vdr符号化における層分解

Also Published As

Publication number Publication date
KR20210093952A (ko) 2021-07-28
EP3882824A1 (en) 2021-09-22
CN111191783B (zh) 2024-04-05
US20220091821A1 (en) 2022-03-24
CN111191783A (zh) 2020-05-22
EP3882824A4 (en) 2022-08-31
JP2022507704A (ja) 2022-01-18
WO2020098368A1 (zh) 2020-05-22

Similar Documents

Publication Publication Date Title
JP7231731B2 (ja) 適応量子化方法及び装置、デバイス、媒体
CN111126558B (zh) 一种卷积神经网络计算加速方法及装置、设备、介质
Darvish Rouhani et al. Pushing the limits of narrow precision inferencing at cloud scale with microsoft floating point
CN111652367B (zh) 一种数据处理方法及相关产品
KR20190034985A (ko) 인공 신경망의 양자화 방법 및 장치
WO2020074989A1 (en) Data representation for dynamic precision in neural network cores
US11704556B2 (en) Optimization methods for quantization of neural network models
US11341400B1 (en) Systems and methods for high-throughput computations in a deep neural network
KR20190093932A (ko) 딥러닝 시스템에서의 연산 처리 장치 및 방법
CN112598123A (zh) 神经网络的权值的量化方法、量化装置及存储介质
CN115526320A (zh) 神经网络模型推理的加速方法、装置、电子设备和介质
CN110337636A (zh) 数据转换方法和装置
CN112561050B (zh) 一种神经网络模型训练方法及装置
Chin et al. A high-performance adaptive quantization approach for edge CNN applications
Limonova Fast and gate-efficient approximated activations for bipolar morphological neural networks
CN112418388A (zh) 一种实现深度卷积神经网络处理的方法及装置
US20220405576A1 (en) Multi-layer neural network system and method
Kalali et al. A power-efficient parameter quantization technique for CNN accelerators
CN117973480A (zh) 校准神经网络量化的方法、装置、设备、介质和程序产品
CN113902114A (zh) 神经网络模型的量化方法、装置和系统、电子设备和存储介质
CN117348837A (zh) 浮点精度模型的量化方法、装置、电子设备以及存储介质
CN114298291A (zh) 一种模型量化处理系统及一种模型量化处理方法
CN114222997A (zh) 用于对神经网络进行后训练量化的方法和装置
WO2021036412A1 (zh) 数据处理方法、装置、计算机设备和存储介质
CN111178497A (zh) 特征向量二值化或三值化算法、装置及计算机可读存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210610

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220621

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220916

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221114

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230216

R150 Certificate of patent or registration of utility model

Ref document number: 7231731

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531