JP7142805B2 - 構成変換装置、構成変換方法、および構成変換プログラム - Google Patents
構成変換装置、構成変換方法、および構成変換プログラム Download PDFInfo
- Publication number
- JP7142805B2 JP7142805B2 JP2022516582A JP2022516582A JP7142805B2 JP 7142805 B2 JP7142805 B2 JP 7142805B2 JP 2022516582 A JP2022516582 A JP 2022516582A JP 2022516582 A JP2022516582 A JP 2022516582A JP 7142805 B2 JP7142805 B2 JP 7142805B2
- Authority
- JP
- Japan
- Prior art keywords
- processing performance
- layer
- parameter
- configuration
- neural network
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Complex Calculations (AREA)
- Image Analysis (AREA)
Description
しかし、軽量化による処理性能の向上に伴い、認識精度の劣化が問題となる。一般に認識精度は、演算量が大きいほど高い傾向にある。つまり、性能と演算量とはトレードオフの関係にある。
複数の層により構成されたニューラルネットワークの構成を解析し、前記複数の層の各層の属性を表すレイヤパラメータを取得する解析部と、
前記ニューラルネットワークの動作を実行する回路の処理性能が劣化せず、かつ、前記ニューラルネットワークの演算量が増加するように、前記レイヤパラメータを変換する変換部と
を備えた。
***構成の説明***
図1を用いて、本実施の形態に係る構成変換装置100の構成例について説明する。
プロセッサ910は、演算処理を行うIC(Integrated Circuit)である。プロセッサ910の具体例は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
補助記憶装置922は、データを保管する記憶装置である。補助記憶装置922の具体例は、HDDである。また、補助記憶装置922は、SD(登録商標)メモリカード、CF、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVDといった可搬の記憶媒体であってもよい。なお、HDDは、Hard Disk Driveの略語である。SD(登録商標)は、Secure Digitalの略語である。CFは、CompactFlash(登録商標)の略語である。DVDは、Digital Versatile Diskの略語である。
構成変換プログラムは、上記の各部の「部」を「処理」、「手順」あるいは「工程」に読み替えた各処理、各手順あるいは各工程を、コンピュータに実行させる。また、構成変換方法は、構成変換装置100が構成変換プログラムを実行することにより行われる方法である。
構成変換プログラムは、コンピュータ読み取り可能な記録媒体あるいは記憶媒体に格納されて提供されてもよい。また、構成変換プログラムは、プログラムプロダクトとして提供されてもよい。
図2は、本実施の形態に係る構成変換装置100の入出力の例を示す図である。
構成変換装置100は、NNモデル21を入力とし、変換後NNモデル22を出力とする。
NNモデル21および変換後NNモデル22の各々は、複数の層を備えたニューラルネットワークのモデルである。複数の層を備えたニューラルネットワークはDNN(ディープニューラルネットワーク)とも呼ばれる。NNモデル21および変換後NNモデル22の各々は、NN構造を有する。NN構造は、DNN構造ともいう。
NNモデル21および変換後NNモデル22の各々は、具体的には、Caffeツールにおけるprototxtである。
なお、本実施の形態では、NNモデル21においてレイヤパラメータ210が変換されたニューラルネットワークを、変換後NNモデル22と呼ぶ。
図3は、本実施の形態に係る構成変換装置100の動作の概要を示す図である。
ステップS103において、変換部120は、第1パラメータ211より演算量が大きい第2パラメータ212をレイヤパラメータ210として用いて、処理性能を第2処理性能として算出する。
ステップS104において、変換部120は、第2処理性能が第1処理性能より劣化しているか否かを判定する。
ステップS105において、出力部130は、第2パラメータ212をレイヤパラメータ210とするニューラルネットワークを変換後NNモデル22として出力する。
図4は、本実施の形態に係るNNモデル21のNN構造の例を示す図である。
図5は、本実施の形態に係るNNモデル21におけるニューロンモデルのハードウェア構成例を示す図である。
図6は、本実施の形態に係るNNモデル21のレイヤパラメータ210の例を示す図である。
各層では、畳み込み処理後に活性化関数が入る。また、層間にはPoolingあるいはバッチ正規化といった処理が入る場合があるが、説明を簡単にするために省略している。
MACは、畳み込み演算コアである。ACTは活性化関数を実行する活性化演算コアである。活性化演算コアは、Step,ReLu,Leaky ReLuといった活性化関数機能を持つレイヤ(活性化関数レイヤ)に対応する。
NN構造の各層の演算量は、ニューロンにおける入力並列数および出力並列数により決定される。NN構造の各層の演算量をNN構造の各層の規模ともいう。
レイヤパラメータ210の変更には制約がある。最初の層の入力エッジ数と、最後の層の出力エッジ数はニューラルネットワークの仕様であるため変更しない。また、前後の層において、前の層の出力エッジ数と後の層の入力エッジ数は同じになる。
図5に示すように、本実施の形態では、レイヤパラメータ210は複数の層の各層の入出力エッジ数である。
ステップS201の処理は、ステップS101に対応する。
なお、NN構造の処理性能は、複数の層の各層のレイテンシの総和として取得される。
NN構造のレイテンシは、各層のレイテンシの総和として算出される。NNモデル21のNN構造の1周期のレイテンシをLat(org)とする。このとき、Lat(org)=SUM(latency(L1),latency(L2),・・・,latency(LN))となる。
ここで、L#は、#番目の層のレイテンシである。また、NNモデル21のNN構造の複数の層は、1番目からN番目までの層を有するものとする。Nは自然数である。
ここで、oen(n)は、n番目の層の出力エッジ数である。
また、変換部120は、trialをインクリメントする。これにより、ステップS205におけるn番目の層のレイヤパラメータ210の変更が、trial回目の変更であることを意味する。
Lat(trial)がLat(org)より劣化していれば、変換部120は、ステップS208に進む。このとき、変換部120は、n番目の層の出力エッジ数を1減少させて元に戻してから、ステップS208に進む。
上記の処理を具体的にプログラム言語で記述すると、例えば、以下のようになる。
If(Lat(org)<Lat(trial)) oen(n)=oen(n)-1 and goto S208 else goto S205
nがNより小さい場合は、まだ処理していない層が存在することを意味する。よって、ステップS204に戻り、変換部120は、nをインクリメントして次の層について以降の処理を繰り返す。
nがNより小さくない場合は、全ての層について処理が完了したことを意味する。よって、処理をステップS209に進める。
ステップS209の処理は、ステップS105の処理に対応する。
構成変換装置100に入力されるNNモデル21のNN構造では、入力並列数および出力並列数をそれぞれ「7」であるものとする。
また、上段のレイヤパラメータ210は、構成変換装置100に入力されるNNモデル21のNN構造のものとする。また、下段のレイヤパラメータ210は、構成変換装置100から出力される変換後NNモデル22のNN構造のものとする。
・1層目:latency(L1)=ROUNDUP(16/7)×ROUNDUP(198/7)≒87
・2層目:latency(L2)=ROUNDUP(198/7)×ROUNDUP(198/7)≒841
・3層目:latency(L3)=ROUNDUP(198/7)×ROUNDUP(198/7)≒841
・4層目:latency(L4)=ROUNDUP(198/7)×ROUNDUP(16/7)≒87
よって、Total Latency=latency(L1)+latency(L2)+latency(L3)+latency(L4)=1856となる。
下段の変換後NNモデル22のNN構造において、各層レイテンシの総和Total Latencyを算出する。
・1層目:latency(L1)=ROUNDUP(16/7)×ROUNDUP(203/7)≒87
・2層目:latency(L2)=ROUNDUP(203/7)×ROUNDUP(203/7)≒841
・3層目:latency(L3)=ROUNDUP(203/7)×ROUNDUP(203/7)≒841
・4層目:latency(L4)=ROUNDUP(203/7)×ROUNDUP(16/7)≒87
よって、Total Latency=latency(L1)+latency(L2)+latency(L3)+latency(L4)=1856となる。
・NNモデル21の積和回数=16×198(1層目)+198×198(2層目)+198×198(3層目)+198×16(4層目)=84744
・変換後NNモデル22の積和回数=16×203(1層目)+203×203(2層目)+203×203(3層目)+203×16(4層目)=88914
よって、変換後NNモデル22のNN構造では、NNモデル21のNN構造と同一の処理性能で、88914-84744=4170回(約4K)の積和処理を追加できる。
<変形例1>
図10は、本実施の形態の変形例に係る構成変換装置100の構成変換処理の動作例を示すフロー図である。
本実施の形態では、変換部120は、出力エッジ数を1ずつ増加させて演算量を増加させている(ステップS205)。しかし、図9に示すように、出力エッジ数を、次に出力並列数で割り切れる数まで増加させた場合でも、処理性能は劣化しない可能性が高い。
よって、変換部120は、複数の層の各層の入力エッジ数を回路の入力並列数で割り切れる数に増加させるとともに、複数の層の各層の出力エッジ数を回路の出力並列数で割り切れる数に増加させてもよい。具体的には、変換部120は、出力エッジ数を、次に出力並列数で割り切れる数まで増加させることにより、n番目の層の演算量を増加させる。
図10のステップS205aにおいて、変換部120は、出力エッジ数oen(n)を、次に出力並列数で割り切れる数まで増加させる。
この処理を具体的にプログラム言語で記述すると、例えば、以下のようになる。
While(oen(n)%並列数==0) oen(n)=oen(n)+1
Lat(trial)がLat(org)より劣化していなければ、変換部120は、ステップS205に戻り、n番目の層の出力エッジ数をさらに増加させて、以降の処理を繰り返す。
Lat(trial)がLat(org)より劣化していれば、変換部120は、ステップS208に進む。このとき、変換部120は、n番目の層の出力エッジ数を元に戻してから、ステップS208に進む。
上記の処理を具体的にプログラム言語で記述すると、例えば、以下のようになる。
If(Lat(org)<Lat(trial)) oen(n)=元の数 and goto S208 else goto S205a
変形例1では、変換部120は、出力エッジ数oen(n)を、次に出力並列数で割り切れる数まで増加させていた。しかし、変換部120は、出力エッジ数oen(n)を出力並列数で割った剰余が小さくなるように、出力エッジ数を増加させてもよい。
本実施の形態では、解析部110と変換部120と出力部130の機能がソフトウェアで実現される。変形例として、解析部110と変換部120と出力部130の機能がハードウェアで実現されてもよい。
構成変換装置100は、電子回路909、メモリ921、補助記憶装置922、入力インタフェース930、および出力インタフェース940を備える。
電子回路909は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、ASIC、または、FPGAである。GAは、Gate Arrayの略語である。ASICは、Application Specific Integrated Circuitの略語である。
解析部110と変換部120と出力部130の機能は、1つの電子回路で実現されてもよいし、複数の電子回路に分散して実現されてもよい。
別の変形例として、解析部110と変換部120と出力部130の一部の機能が電子回路で実現され、残りの機能がソフトウェアで実現されてもよい。
また、別の変形例として、解析部110と変換部120と出力部130の一部あるいはすべての機能が、ファームウェアで実現されていてもよい。
図12は、本実施の形態に係る構成変換装置100の効果を示す図である。
図12に示すように、オリジナルのNN構造80のレイテンシを低減するため、比較例のNN構造81では認識精度も低くなってしまう。本実施の形態に係る変更後NN構造82では、レイテンシを劣化させることなく認識精度を向上させることができる。
本実施の形態では組込み機器のFPGA、ASIC、あるいはGPUといったハードウェアへのAI推論機能において、実装対象となるDNNを、ハードウェアにおける処理時間増無しおよび回路規模増無しで認識精度を向上させるDNNに変更することができる。よって、未使用の回路がある場合、未使用回路を有効に活用できるようにNNを変更することができ、性能を劣化させずに認識率を向上させることができる。
本実施の形態では、主に、実施の形態1と異なる点および実施の形態1に追加する点について説明する。
本実施の形態において、実施の形態1と同様の機能を有する構成については同一の符号を付し、その説明を省略する。
本実施の形態に係る構成変換装置100bは、複数のレイヤパラメータ210の各々と、複数のレイヤパラメータ210の各々を用いた際の回路の処理性能とを対応付けた処理性能情報23を備える。その他の構成については実施の形態1と同様である。
しかし、ハードウェアの回路構成が特定できない場合もある。このような場合、変換部120は、レイヤパラメータと回路の処理性能の実測値とが予め設定された処理性能情報23を用いて、レイヤパラメータに対応する処理性能を取得する。
本実施の形態では、主に、実施の形態1,2と異なる点および実施の形態1,2に追加する点について説明する。
本実施の形態において、実施の形態1,2と同様の機能を有する構成については同一の符号を付し、その説明を省略する。
本実施の形態に係る構成変換装置100cは、活性化関数の性能が設定された活性化性能テーブル24を備える。その他の構成については実施の形態1と同様である。
本実施の形態では、変換部120は、複数の層の各層の活性化関数をレイヤパラメータ210として、活性化関数を現在の関数より演算数が大きい関数に変換することにより、NN構造の演算量を増加させる。
図15では、ステップS201からステップS204、ステップS206、および、ステップS208からステップS209の処理は、図7と同様である。
図15のステップS205cにおいて、変換部120は、活性化性能テーブル24に基づいて、n番目の層における活性化関数を変換する。
図16に示すように、活性化性能テーブル24には、活性化関数の種類と、活性化関数のハードウェア性能と、演算規模とが設定されている。
変換部120は、n番目の層における活性化関数を、ハードウェア性能が同じであれば、演算規模の大きい活性化関数に差し替える。
図16の具体例では、活性化関数ReLuのハードウェア性能は1であり、演算規模は1である。活性化関数Leaky ReLuのハードウェア性能は1であり、演算規模は3である。そこで、変換部120は、NN構造におけるn番目の層の活性化関数ReLuを、ハードウェア性能が同じであり、演算規模の大きいLeaky ReLuに差し替える。
Lat(trial)がLat(org)より劣化していなければ、変換部120は、ステップS205cに戻り、n番目の層の活性化関数の演算規模をさらに増加させて、以降の処理を繰り返す。
Lat(trial)がLat(org)より劣化していれば、変換部120は、ステップS208に進む。このとき、変換部120は、n番目の層の活性化関数を差し替え前に戻してから、ステップS208に進む。
本実施の形態に係る構成変換装置100cよれば、回路の処理性能が劣化せず、かつ、ニューラルネットワークの演算量が増加するように、活性化関数を変換するので、性能を維持したまま認識精度を向上させることできる。
また、実施の形態1から3のうち、複数の部分を組み合わせて実施しても構わない。あるいは、これらの実施の形態のうち、1つの部分を実施しても構わない。その他、これらの実施の形態を、全体としてあるいは部分的に、どのように組み合わせて実施しても構わない。
すなわち、実施の形態1から3では、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
なお、上記の実施の形態は、本質的に好ましい例示であって、本開示、その適用物あるいは用途の範囲を制限することを意図するものではなく、必要に応じて種々の変更が可能である。
Claims (16)
- 複数の層により構成されたニューラルネットワークの構成を解析し、前記複数の層の各層の属性を表すレイヤパラメータを取得する解析部と、
前記ニューラルネットワークの動作を実行する回路の処理性能が劣化せず、かつ、前記ニューラルネットワークの演算量が増加するように、前記レイヤパラメータを変換する変換部であって、前記複数の層の各層の入出力エッジ数を前記レイヤパラメータとして、前記入出力エッジ数を増加させることにより前記演算量を増加させる変換部と
を備え、
前記変換部は、
前記複数の層の各層の入力エッジ数を回路の入力並列数で割り切れる数に増加させ、前記複数の層の各層の出力エッジ数を回路の出力並列数で割り切れる数に増加させる構成変換装置。 - 前記変換部は、
前記複数の層の各層の活性化関数を前記レイヤパラメータとして、前記活性化関数を現在の関数より演算規模が大きい関数に変換することにより前記演算量を増加させる請求項1に記載の構成変換装置。 - 前記変換部は、
現在の前記レイヤパラメータである第1パラメータを用いて前記処理性能を第1処理性能として算出し、前記第1パラメータより前記演算量が増加する第2パラメータを前記レイヤパラメータとして用いて前記処理性能を第2処理性能として算出し、前記第2処理性能が前記第1処理性能より劣化していなければ、前記第2パラメータを現在の前記レイヤパラメータとする請求項1または請求項2に記載の構成変換装置。 - 前記構成変換装置は、
複数のレイヤパラメータの各々と、前記複数のレイヤパラメータの各々を用いた際の前記回路の処理性能とを対応付けた処理性能情報を備え、
前記変換部は、
現在の前記レイヤパラメータである第1パラメータを用いた際の前記回路の前記処理性能を第1処理性能として前記処理性能情報から取得し、前記第1パラメータより前記演算量が増加する第2パラメータを前記レイヤパラメータとして用いた際の前記回路の前記処理性能を第2処理性能として前記処理性能情報から取得し、前記第2処理性能が前記第1処理性能より劣化していなければ、前記第2パラメータを現在の前記レイヤパラメータとする請求項1または請求項2に記載の構成変換装置。 - 前記回路は、FPGA(Field Programmable Gate Array)である請求項1から請求項4のいずれか1項に記載の構成変換装置。
- コンピュータである構成変換装置に用いられる構成変換方法において、
コンピュータが、複数の層により構成されたニューラルネットワークの構成を解析し、前記複数の層の各層の属性を表すレイヤパラメータを取得し、
コンピュータが、前記ニューラルネットワークの動作を実行する回路の処理性能が劣化せず、かつ、前記ニューラルネットワークの演算量が増加するように、前記レイヤパラメータを変換する構成変換方法であって、
コンピュータは、前記複数の層の各層の入力エッジ数を回路の入力並列数で割り切れる数に増加させ、前記複数の層の各層の出力エッジ数を回路の出力並列数で割り切れる数に増加させることにより、前記複数の層の各層の入出力エッジ数を前記レイヤパラメータとして、前記入出力エッジ数を増加させる構成変換方法。 - コンピュータである構成変換装置に用いられる構成変換プログラムにおいて、
複数の層により構成されたニューラルネットワークの構成を解析し、前記複数の層の各層の属性を表すレイヤパラメータを取得する解析処理と、
前記ニューラルネットワークの動作を実行する回路の処理性能が劣化せず、かつ、前記ニューラルネットワークの演算量が増加するように、前記レイヤパラメータを変換する変換処理と
をコンピュータに実行させる構成変換プログラムであって、
前記変換処理では、
前記複数の層の各層の入力エッジ数を回路の入力並列数で割り切れる数に増加させ、前記複数の層の各層の出力エッジ数を回路の出力並列数で割り切れる数に増加させることにより、前記複数の層の各層の入出力エッジ数を前記レイヤパラメータとして、前記入出力エッジ数を増加させる構成変換プログラム。 - 複数の層により構成されたニューラルネットワークの構成を解析し、前記複数の層の各層の属性を表すレイヤパラメータを取得する解析部と、
前記ニューラルネットワークの動作を実行する回路の処理性能が劣化せず、かつ、前記ニューラルネットワークの演算量が増加するように、前記レイヤパラメータを変換する変換部とを備え、
前記変換部は、
前記複数の層の各層の活性化関数を前記レイヤパラメータとして、前記活性化関数を現在の関数より演算規模が大きい関数に変換することにより前記演算量を増加させる構成変換装置。 - コンピュータである構成変換装置に用いられる構成変換方法において、
コンピュータが、複数の層により構成されたニューラルネットワークの構成を解析し、前記複数の層の各層の属性を表すレイヤパラメータを取得し、
コンピュータが、前記ニューラルネットワークの動作を実行する回路の処理性能が劣化せず、かつ、前記ニューラルネットワークの演算量が増加するように、前記レイヤパラメータを変換する構成変換方法であって、
コンピュータは、前記複数の層の各層の活性化関数を前記レイヤパラメータとして、前記活性化関数を現在の関数より演算規模が大きい関数に変換することにより前記演算量を増加させる構成変換方法。 - コンピュータである構成変換装置に用いられる構成変換プログラムにおいて、
複数の層により構成されたニューラルネットワークの構成を解析し、前記複数の層の各層の属性を表すレイヤパラメータを取得する解析処理と、
前記ニューラルネットワークの動作を実行する回路の処理性能が劣化せず、かつ、前記ニューラルネットワークの演算量が増加するように、前記レイヤパラメータを変換する変換処理と
をコンピュータに実行させる構成変換プログラムであって、
前記変換処理では、
前記複数の層の各層の活性化関数を前記レイヤパラメータとして、前記活性化関数を現在の関数より演算規模が大きい関数に変換することにより前記演算量を増加させる構成変換プログラム。 - 複数の層により構成されたニューラルネットワークの構成を解析し、前記複数の層の各層の属性を表すレイヤパラメータを取得する解析部と、
前記ニューラルネットワークの動作を実行する回路の処理性能が劣化せず、かつ、前記ニューラルネットワークの演算量が増加するように、前記レイヤパラメータを変換する変換部と
を備え、
前記変換部は、
現在の前記レイヤパラメータである第1パラメータを用いて前記処理性能を第1処理性能として算出し、前記第1パラメータより前記演算量が増加する第2パラメータを前記レイヤパラメータとして用いて前記処理性能を第2処理性能として算出し、前記第2処理性能が前記第1処理性能より劣化していなければ、前記第2パラメータを現在の前記レイヤパラメータとする構成変換装置。 - コンピュータである構成変換装置に用いられる構成変換方法において、
コンピュータが、複数の層により構成されたニューラルネットワークの構成を解析し、前記複数の層の各層の属性を表すレイヤパラメータを取得し、
コンピュータが、前記ニューラルネットワークの動作を実行する回路の処理性能が劣化せず、かつ、前記ニューラルネットワークの演算量が増加するように、前記レイヤパラメータを変換する構成変換方法であって、
コンピュータは、
現在の前記レイヤパラメータである第1パラメータを用いて前記処理性能を第1処理性能として算出し、前記第1パラメータより前記演算量が増加する第2パラメータを前記レイヤパラメータとして用いて前記処理性能を第2処理性能として算出し、前記第2処理性能が前記第1処理性能より劣化していなければ、前記第2パラメータを現在の前記レイヤパラメータとする構成変換方法。 - コンピュータである構成変換装置に用いられる構成変換プログラムにおいて、
複数の層により構成されたニューラルネットワークの構成を解析し、前記複数の層の各層の属性を表すレイヤパラメータを取得する解析処理と、
前記ニューラルネットワークの動作を実行する回路の処理性能が劣化せず、かつ、前記ニューラルネットワークの演算量が増加するように、前記レイヤパラメータを変換する変換処理と
をコンピュータに実行させる構成変換プログラムであって、
前記変換処理では、
現在の前記レイヤパラメータである第1パラメータを用いて前記処理性能を第1処理性能として算出し、前記第1パラメータより前記演算量が増加する第2パラメータを前記レイヤパラメータとして用いて前記処理性能を第2処理性能として算出し、前記第2処理性能が前記第1処理性能より劣化していなければ、前記第2パラメータを現在の前記レイヤパラメータとする構成変換プログラム。 - 複数の層により構成されたニューラルネットワークの構成を解析し、前記複数の層の各層の属性を表すレイヤパラメータを取得する解析部と、
前記ニューラルネットワークの動作を実行する回路の処理性能が劣化せず、かつ、前記ニューラルネットワークの演算量が増加するように、前記レイヤパラメータを変換する変換部と、
複数のレイヤパラメータの各々と、前記複数のレイヤパラメータの各々を用いた際の前記回路の処理性能とを対応付けた処理性能情報と
を備え、
前記変換部は、
現在の前記レイヤパラメータである第1パラメータを用いた際の前記回路の前記処理性能を第1処理性能として前記処理性能情報から取得し、前記第1パラメータより前記演算量が増加する第2パラメータを前記レイヤパラメータとして用いた際の前記回路の前記処理性能を第2処理性能として前記処理性能情報から取得し、前記第2処理性能が前記第1処理性能より劣化していなければ、前記第2パラメータを現在の前記レイヤパラメータとする構成変換装置。 - コンピュータである構成変換装置に用いられる構成変換方法において、
コンピュータが、複数の層により構成されたニューラルネットワークの構成を解析し、前記複数の層の各層の属性を表すレイヤパラメータを取得し、
コンピュータが、前記ニューラルネットワークの動作を実行する回路の処理性能が劣化せず、かつ、前記ニューラルネットワークの演算量が増加するように、前記レイヤパラメータを変換し、
コンピュータが、複数のレイヤパラメータの各々と、前記複数のレイヤパラメータの各々を用いた際の前記回路の処理性能とを対応付けた処理性能情報を備え、現在の前記レイヤパラメータである第1パラメータを用いた際の前記回路の前記処理性能を第1処理性能として前記処理性能情報から取得し、前記第1パラメータより前記演算量が増加する第2パラメータを前記レイヤパラメータとして用いた際の前記回路の前記処理性能を第2処理性能として前記処理性能情報から取得し、前記第2処理性能が前記第1処理性能より劣化していなければ、前記第2パラメータを現在の前記レイヤパラメータとする構成変換方法。 - コンピュータである構成変換装置に用いられる構成変換プログラムにおいて、
複数の層により構成されたニューラルネットワークの構成を解析し、前記複数の層の各層の属性を表すレイヤパラメータを取得する解析処理と、
前記ニューラルネットワークの動作を実行する回路の処理性能が劣化せず、かつ、前記ニューラルネットワークの演算量が増加するように、前記レイヤパラメータを変換する変換処理と
をコンピュータに実行させる構成変換プログラムであって、
前記構成変換装置は、複数のレイヤパラメータの各々と、前記複数のレイヤパラメータの各々を用いた際の前記回路の処理性能とを対応付けた処理性能情報を備え、
前記変換処理では、
現在の前記レイヤパラメータである第1パラメータを用いた際の前記回路の前記処理性能を第1処理性能として前記処理性能情報から取得し、前記第1パラメータより前記演算量が増加する第2パラメータを前記レイヤパラメータとして用いた際の前記回路の前記処理性能を第2処理性能として前記処理性能情報から取得し、前記第2処理性能が前記第1処理性能より劣化していなければ、前記第2パラメータを現在の前記レイヤパラメータとする構成変換プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2020/017512 WO2021214944A1 (ja) | 2020-04-23 | 2020-04-23 | 構成変換装置、構成変換方法、および構成変換プログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JPWO2021214944A1 JPWO2021214944A1 (ja) | 2021-10-28 |
JPWO2021214944A5 JPWO2021214944A5 (ja) | 2022-05-18 |
JP7142805B2 true JP7142805B2 (ja) | 2022-09-27 |
Family
ID=78270600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022516582A Active JP7142805B2 (ja) | 2020-04-23 | 2020-04-23 | 構成変換装置、構成変換方法、および構成変換プログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220405594A1 (ja) |
JP (1) | JP7142805B2 (ja) |
TW (1) | TW202141360A (ja) |
WO (1) | WO2021214944A1 (ja) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3757722B2 (ja) | 1999-12-15 | 2006-03-22 | Kddi株式会社 | 多層ニューラルネットワークユニット数最適化方法及び装置 |
-
2020
- 2020-04-23 WO PCT/JP2020/017512 patent/WO2021214944A1/ja active Application Filing
- 2020-04-23 JP JP2022516582A patent/JP7142805B2/ja active Active
- 2020-09-09 TW TW109130909A patent/TW202141360A/zh unknown
-
2022
- 2022-08-26 US US17/896,265 patent/US20220405594A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3757722B2 (ja) | 1999-12-15 | 2006-03-22 | Kddi株式会社 | 多層ニューラルネットワークユニット数最適化方法及び装置 |
Non-Patent Citations (1)
Title |
---|
山本亮, 外2名,制御機器におけるDeep Neural NetworkのFPGA向け回路アーキテクチャの検討,信学技報 [online],日本,一般社団法人電子情報通信学会,2020年02月26日,Vol. 119, No. 443,pp.239-244,[検索日 2020.07.15], インターネット:<URL:https://www.ieice.org/ken/paper/2020030651vc/>,ISSN 2432-6380 |
Also Published As
Publication number | Publication date |
---|---|
US20220405594A1 (en) | 2022-12-22 |
TW202141360A (zh) | 2021-11-01 |
WO2021214944A1 (ja) | 2021-10-28 |
JPWO2021214944A1 (ja) | 2021-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10096134B2 (en) | Data compaction and memory bandwidth reduction for sparse neural networks | |
US11551065B2 (en) | Neural network architecture using control logic determining convolution operation sequence | |
CN106951962B (zh) | 用于神经网络的复合运算单元、方法和电子设备 | |
CN109284824B (zh) | 一种基于可重构技术的用于加速卷积和池化运算的装置 | |
US11544526B2 (en) | Computing device and method | |
DiCecco et al. | FPGA-based training of convolutional neural networks with a reduced precision floating-point library | |
US11341400B1 (en) | Systems and methods for high-throughput computations in a deep neural network | |
CN111507465B (zh) | 一种可配置的卷积神经网络处理器电路 | |
GB2568081A (en) | End-to-end data format selection for hardware implementation of deep neural network | |
GB2568082A (en) | Hierarchical mantissa bit length selection for hardware implementation of deep neural network | |
CN111210004B (zh) | 卷积计算方法、卷积计算装置及终端设备 | |
CN111240746A (zh) | 一种浮点数据反量化及量化的方法和设备 | |
CN110689045A (zh) | 一种深度学习模型的分布式训练方法及装置 | |
CN109902821B (zh) | 一种数据处理方法、装置及相关组件 | |
JP7142805B2 (ja) | 構成変換装置、構成変換方法、および構成変換プログラム | |
CN112183744A (zh) | 一种神经网络剪枝方法及装置 | |
US20200192797A1 (en) | Caching data in artificial neural network computations | |
CN118043821A (zh) | 混合稀疏压缩 | |
CN113407258A (zh) | 一种存算一体架构的自适应资源配置布局布线方法及系统 | |
Zhang et al. | Yolov3-tiny Object Detection SoC Based on FPGA Platform | |
JP7301251B2 (ja) | 構成変換装置、構成変換方法、および構成変換プログラム | |
WO2020121030A1 (en) | Caching data in artificial neural network computations | |
TWI828185B (zh) | 三維卷積運算裝置與三維卷積運算方法 | |
Wang et al. | An FPGA-based reconfigurable CNN training accelerator using decomposable Winograd | |
CN115100458B (zh) | 一种图像分类方法以及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220328 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220328 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20220328 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220524 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220719 |
|
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: 20220816 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220913 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7142805 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |