JP7142805B2 - 構成変換装置、構成変換方法、および構成変換プログラム - Google Patents

構成変換装置、構成変換方法、および構成変換プログラム Download PDF

Info

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
Application number
JP2022516582A
Other languages
English (en)
Other versions
JPWO2021214944A5 (ja
JPWO2021214944A1 (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2021214944A1 publication Critical patent/JPWO2021214944A1/ja
Publication of JPWO2021214944A5 publication Critical patent/JPWO2021214944A5/ja
Application granted granted Critical
Publication of JP7142805B2 publication Critical patent/JP7142805B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0464Convolutional networks [CNN, ConvNet]
    • 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
    • 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
    • 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/048Activation functions
    • 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

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では、重み行列の次元量を削減することにより、推論処理における積和演算量を削減する技術が開示されている。特許文献1では、演算量の削減による認識精度の低下を極力抑えるため、ニューラルネットワークの前段ほど削減量を少なく、後段ほど削減量を多くしている。
特開2018-109947号公報
特許文献1の技術では、積和演算量の削減が必須であるため、認識精度が悪化する虞があるという課題がある。
本開示は、性能を維持したまま認識精度を向上させることを目的とする。
本開示に係る構成変換装置は、
複数の層により構成されたニューラルネットワークの構成を解析し、前記複数の層の各層の属性を表すレイヤパラメータを取得する解析部と、
前記ニューラルネットワークの動作を実行する回路の処理性能が劣化せず、かつ、前記ニューラルネットワークの演算量が増加するように、前記レイヤパラメータを変換する変換部と
を備えた。
本開示に係る構成変換装置によれば、回路の処理性能が劣化せず、かつ、ニューラルネットワークの演算量が増加するように、レイヤパラメータを変換するので、性能を維持したまま認識精度を向上させることできる。
実施の形態1に係る構成変換装置の構成例。 実施の形態1に係る構成変換装置の入出力の例。 実施の形態1に係る構成変換装置の動作概要例。 実施の形態1に係るNNモデルのNN構造の例。 実施の形態1に係るNNモデルにおけるニューロンモデルのハードウェア構成例。 実施の形態1に係るNNモデルのレイヤパラメータの例。 実施の形態1に係る構成変換装置の構成変換処理の動作例を示すフロー図。 実施の形態1に係るレイテンシの算出方法を示す図。 実施の形態1に係るNN構造において処理性能が劣化せずに演算量が増加する例。 実施の形態1の変形例に係る構成変換装置の構成変換処理の動作例を示すフロー図。 実施の形態1の変形例に係る構成変換装置の構成例。 実施の形態1に係る構成変換装置の効果を示す図。 実施の形態2に係る構成変換装置の構成例。 実施の形態3に係る構成変換装置の構成例。 実施の形態3に係る構成変換装置の構成変換処理の動作例を示すフロー図。 実施の形態3に係るNN構造において処理性能が劣化せずに演算量が増加する例。
実施の形態1.
***構成の説明***
図1を用いて、本実施の形態に係る構成変換装置100の構成例について説明する。
構成変換装置100は、コンピュータである。構成変換装置100は、プロセッサ910を備えるとともに、メモリ921、補助記憶装置922、入力インタフェース930、出力インタフェース940、および通信装置950といった他のハードウェアを備える。プロセッサ910は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
構成変換装置100は、機能要素として、解析部110と変換部120と出力部130と記憶部140を備える。記憶部140には、変換後NNモデル22が記憶される。NNは、ニューラルネットワークの略語である。
解析部110と変換部120と出力部130の機能は、ソフトウェアにより実現される。記憶部140は、メモリ921あるいは補助記憶装置922に備えられる。
プロセッサ910は、構成変換プログラムを実行する装置である。構成変換プログラムは、解析部110と変換部120と出力部130の機能を実現するプログラムである。
プロセッサ910は、演算処理を行うIC(Integrated Circuit)である。プロセッサ910の具体例は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
メモリ921は、データを一時的に記憶する記憶装置である。メモリ921の具体例は、SRAM(Static Random Access Memory)、あるいはDRAM(Dynamic Random Access Memory)である。
補助記憶装置922は、データを保管する記憶装置である。補助記憶装置922の具体例は、HDDである。また、補助記憶装置922は、SD(登録商標)メモリカード、CF、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVDといった可搬の記憶媒体であってもよい。なお、HDDは、Hard Disk Driveの略語である。SD(登録商標)は、Secure Digitalの略語である。CFは、CompactFlash(登録商標)の略語である。DVDは、Digital Versatile Diskの略語である。
入力インタフェース930は、マウス、キーボード、あるいはタッチパネルといった入力装置と接続されるポートである。入力インタフェース930は、具体的には、USB(Universal Serial Bus)端子である。なお、入力インタフェース930は、LAN(Local Area Network)と接続されるポートであってもよい。解析部110は、入力インタフェース930を介して、ニューラルネットワークモデル(以下、NNモデル21とする)を取得する。
出力インタフェース940は、ディスプレイといった出力機器のケーブルが接続されるポートである。出力インタフェース940は、具体的には、USB端子またはHDMI(登録商標)(High Definition Multimedia Interface)端子である。ディスプレイは、具体的には、LCD(Liquid Crystal Display)である。出力部130は、出力インタフェース940を介して、変換後ニューラルネットワークモデル(以下、変換後NNモデル22とする)を出力機器に出力してもよい。
通信装置950は、レシーバとトランスミッタを有する。通信装置950は、無線で、LAN、インターネット、あるいは電話回線といった通信網に接続している。通信装置950は、具体的には、通信チップまたはNIC(Network Interface Card)である。構成変換装置100は、通信装置950を介して、NNモデル21を取得してもよい。あるいは、構成変換装置100は、通信装置950を介して、変換後NNモデル22を他の装置に送信してもよい。
構成変換プログラムは、プロセッサ910に読み込まれ、プロセッサ910によって実行される。メモリ921には、構成変換プログラムだけでなく、OS(Operating System)も記憶されている。プロセッサ910は、OSを実行しながら、構成変換プログラムを実行する。構成変換プログラムおよびOSは、補助記憶装置922に記憶されていてもよい。補助記憶装置922に記憶されている構成変換プログラムおよびOSは、メモリ921にロードされ、プロセッサ910によって実行される。なお、構成変換プログラムの一部または全部がOSに組み込まれていてもよい。
構成変換装置100は、プロセッサ910を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、構成変換プログラムの実行を分担する。それぞれのプロセッサは、プロセッサ910と同じように、構成変換プログラムを実行する装置である。
構成変換プログラムにより利用、処理または出力されるデータ、情報、信号値および変数値は、メモリ921、補助記憶装置922、または、プロセッサ910内のレジスタあるいはキャッシュメモリに記憶される。
解析部110と変換部120と出力部130の各部の「部」を「処理」、「手順」あるいは「工程」に読み替えてもよい。また解析処理と変換処理と出力処理の「処理」を「プログラム」、「プログラムプロダクト」または「プログラムを記録したコンピュータ読み取り可能な記録媒体」に読み替えてもよい。
構成変換プログラムは、上記の各部の「部」を「処理」、「手順」あるいは「工程」に読み替えた各処理、各手順あるいは各工程を、コンピュータに実行させる。また、構成変換方法は、構成変換装置100が構成変換プログラムを実行することにより行われる方法である。
構成変換プログラムは、コンピュータ読み取り可能な記録媒体あるいは記憶媒体に格納されて提供されてもよい。また、構成変換プログラムは、プログラムプロダクトとして提供されてもよい。
<構成変換装置100の入出力>
図2は、本実施の形態に係る構成変換装置100の入出力の例を示す図である。
構成変換装置100は、NNモデル21を入力とし、変換後NNモデル22を出力とする。
NNモデル21および変換後NNモデル22の各々は、複数の層を備えたニューラルネットワークのモデルである。複数の層を備えたニューラルネットワークはDNN(ディープニューラルネットワーク)とも呼ばれる。NNモデル21および変換後NNモデル22の各々は、NN構造を有する。NN構造は、DNN構造ともいう。
また、複数の層を備えたニューラルネットワークは、複数の層の各層の属性を表すレイヤパラメータ210を有する。レイヤパラメータ210は、具体的には、複数の層の各層の入出力エッジ数、および、複数の層の各層の活性化関数といった情報である。
NNモデル21および変換後NNモデル22の各々は、具体的には、Caffeツールにおけるprototxtである。
なお、本実施の形態では、NNモデル21においてレイヤパラメータ210が変換されたニューラルネットワークを、変換後NNモデル22と呼ぶ。
***動作の概要の説明***
図3は、本実施の形態に係る構成変換装置100の動作の概要を示す図である。
ステップS101において、解析部110は、NNモデル21を取得する。解析部110は、NNモデル21における、複数の層により構成されたニューラルネットワークの構成を解析し、複数の層の各層の属性を表すレイヤパラメータ210を取得する。
次に、変換部120は、ニューラルネットワークの動作を実行する回路の処理性能が劣化せず、かつ、ニューラルネットワークの演算量が増加するように、レイヤパラメータ210を変換する。具体的には、以下の通りである。
ステップS102において、変換部120は、現在のレイヤパラメータ210である第1パラメータ211を用いて、処理性能を第1処理性能として算出する。
ステップS103において、変換部120は、第1パラメータ211より演算量が大きい第2パラメータ212をレイヤパラメータ210として用いて、処理性能を第2処理性能として算出する。
ステップS104において、変換部120は、第2処理性能が第1処理性能より劣化しているか否かを判定する。
第2処理性能が第1処理性能より劣化していなければ、第2パラメータ212を現在のレイヤパラメータ210である第1パラメータ211として、ステップS103に戻り、処理を繰り返す。
第2処理性能が第1処理性能より劣化していれば、ステップS105に進む。
ステップS105において、出力部130は、第2パラメータ212をレイヤパラメータ210とするニューラルネットワークを変換後NNモデル22として出力する。
***動作例の説明***
図4は、本実施の形態に係るNNモデル21のNN構造の例を示す図である。
図5は、本実施の形態に係るNNモデル21におけるニューロンモデルのハードウェア構成例を示す図である。
図6は、本実施の形態に係るNNモデル21のレイヤパラメータ210の例を示す図である。
図4に示すように、NNモデル21のNN構造は、全結合のDNN構造である。本実施の形態では、全結合のDNN構造で説明を行うが、全結合していない順伝播型のCNN(Convolutional Neural Network)構造でも本実施の形態を適用可能である。
各層では、畳み込み処理後に活性化関数が入る。また、層間にはPoolingあるいはバッチ正規化といった処理が入る場合があるが、説明を簡単にするために省略している。
図5では、NNモデル21におけるニューロンモデルを実行するハードウェア構成例として、FPGAで回路化された畳み込み回路アーキテクチャを示している。FPGAは、Field-Programmable Gate Arrayの略語である。
MACは、畳み込み演算コアである。ACTは活性化関数を実行する活性化演算コアである。活性化演算コアは、Step,ReLu,Leaky ReLuといった活性化関数機能を持つレイヤ(活性化関数レイヤ)に対応する。
NN構造の各層の演算量は、ニューロンにおける入力並列数および出力並列数により決定される。NN構造の各層の演算量をNN構造の各層の規模ともいう。
図6に示すように、本実施の形態では、レイヤパラメータ210は、複数の層の各層の入出力エッジ数である。NN構造では、各層の入力エッジ数および出力エッジ数がパラメータとして得られる。
レイヤパラメータ210の変更には制約がある。最初の層の入力エッジ数と、最後の層の出力エッジ数はニューラルネットワークの仕様であるため変更しない。また、前後の層において、前の層の出力エッジ数と後の層の入力エッジ数は同じになる。
図7は、本実施の形態に係る構成変換装置100の構成変換処理の動作例を示すフロー図である。
ステップS201において、解析部110は、NNモデル21を取得する。解析部110は、NNモデル21における、複数の層により構成されたニューラルネットワークの構成を解析し、複数の層の各層の属性を表すレイヤパラメータ210を取得する。具体的には、解析部110は、学習フレームワークで定義されたNNフォーマットのNNモデル21を構文分析(パース)し、NNモデル21のNN構造におけるレイヤパラメータ210を取得する。
図5に示すように、本実施の形態では、レイヤパラメータ210は複数の層の各層の入出力エッジ数である。
ステップS201の処理は、ステップS101に対応する。
変換部120は、NNモデル21のNN構造における複数の層の各層の入出力エッジ数をレイヤパラメータ210として、入出力エッジ数を増加させることにより演算量を増加させる。なお、各層の演算量を増加させることを、各層の規模を増加させるともいう。
ステップS102において、変換部120は、レイヤパラメータ210を第1パラメータ211として用いて、NNモデル21のNN構造の処理性能を第1処理性能として算出する。
なお、NN構造の処理性能は、複数の層の各層のレイテンシの総和として取得される。
図8は、本実施の形態に係るレイテンシの算出方法を示す図である。
NN構造のレイテンシは、各層のレイテンシの総和として算出される。NNモデル21のNN構造の1周期のレイテンシをLat(org)とする。このとき、Lat(org)=SUM(latency(L1),latency(L),・・・,latency(LN))となる。
ここで、L#は、#番目の層のレイテンシである。また、NNモデル21のNN構造の複数の層は、1番目からN番目までの層を有するものとする。Nは自然数である。
また、NN構造の各層のレイテンシは、各層の入出力並列数によって決定される。ただし、エッジ数が入出力並列数で割り切れない場合は繰り上げとなる。具体的には、各層レイテンシ算出式は、latency(L#)=ROUNDUP(入力エッジ数/入力並列数)×ROUNDUP(出力エッジ数/出力並列数)となる。
ステップS202の処理は、ステップS102に対応する。Lat(org)は、ステップS102における第1処理性能に相当する。
ステップS203において、変換部120は、nおよびtrialを初期化する。具体的には、n=0,trial=0とする。ここで、nはNN構造において演算量を増加する対象の層の番号である。また、trialは、レイヤパラメータの変換を実行した回数である。nおよびtrialは、0以上の整数である。
ステップS204において、変換部120は、nをインクリメントする。
ステップS205において、変換部120は、n番目の層の演算量を増加させるために、n番目の層の出力エッジ数を1増加させる。具体的には、oen(n)=oen(n)+1とする。
ここで、oen(n)は、n番目の層の出力エッジ数である。
また、変換部120は、trialをインクリメントする。これにより、ステップS205におけるn番目の層のレイヤパラメータ210の変更が、trial回目の変更であることを意味する。
ステップS206において、変換部120は、trial回目の変更後のNN構造のレイテンシ、すなわちLat(trial)を算出する。算出方法は、図8で説明した方法と同様である。Lat(trial)は、ステップS103における第2処理性能に相当する。
ステップS207において、変換部120は、n番目の層の出力エッジ数を1増加させたNN構造のレイテンシであるLat(trial)が、変更前のNN構造のレイテンシであるLat(org)より劣化しているか否かを判定する。具体的には、以下の処理を行う。
Lat(trial)がLat(org)より劣化していなければ、変換部120は、ステップS205に戻り、n番目の層の出力エッジ数をさらに1増加して、以降の処理を繰り返す。
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
ステップS208において、変換部120は、nがNより小さいかを判定する。
nがNより小さい場合は、まだ処理していない層が存在することを意味する。よって、ステップS204に戻り、変換部120は、nをインクリメントして次の層について以降の処理を繰り返す。
nがNより小さくない場合は、全ての層について処理が完了したことを意味する。よって、処理をステップS209に進める。
ステップS209において、出力部130は、現在のレイヤパラメータを有するNN構造のニューラルネットワークを、変換後NNモデル22として出力する。
ステップS209の処理は、ステップS105の処理に対応する。
また、ステップS203からステップS208の処理は、ステップS103およびステップS104の処理に対応する。
図9は、本実施の形態に係るNN構造において処理性能が劣化せずに演算量が増加する例を示す図である。
構成変換装置100に入力されるNNモデル21のNN構造では、入力並列数および出力並列数をそれぞれ「7」であるものとする。
また、上段のレイヤパラメータ210は、構成変換装置100に入力されるNNモデル21のNN構造のものとする。また、下段のレイヤパラメータ210は、構成変換装置100から出力される変換後NNモデル22のNN構造のものとする。
上段のNNモデル21のNN構造において、各層レイテンシの総和Total Latencyを算出する。上述したように、割り切れない場合は繰り上げとなる。
・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構造では、1番目から3番目の層の出力エッジ数「203」は、出力並列数「7」に対して割り切れる数である。
下段の変換後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のNN構造の処理性能と、変換後NNモデル22のNN構造の処理性能は同性能である。しかしながら、変換後NNモデル22のNN構造では、NNモデル21のNN構造と比較して、約4Kの積和処理を追加できる。
具体的には、NNモデル21と変換後NNモデル22の各々のNN構造の積和回数は、以下のように計算される。
・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)の積和処理を追加できる。
以上のように、変換部120は、ニューラルネットワークの動作を実行する回路の処理性能が劣化せず、かつ、ニューラルネットワークの演算量が増加するように、レイヤパラメータを変換している。
***他の構成***
<変形例1>
図10は、本実施の形態の変形例に係る構成変換装置100の構成変換処理の動作例を示すフロー図である。
本実施の形態では、変換部120は、出力エッジ数を1ずつ増加させて演算量を増加させている(ステップS205)。しかし、図9に示すように、出力エッジ数を、次に出力並列数で割り切れる数まで増加させた場合でも、処理性能は劣化しない可能性が高い。
よって、変換部120は、複数の層の各層の入力エッジ数を回路の入力並列数で割り切れる数に増加させるとともに、複数の層の各層の出力エッジ数を回路の出力並列数で割り切れる数に増加させてもよい。具体的には、変換部120は、出力エッジ数を、次に出力並列数で割り切れる数まで増加させることにより、n番目の層の演算量を増加させる。
図10では、ステップS201からステップS204、ステップS206、および、ステップS208からステップS209の処理は、図7と同様である。
図10のステップS205aにおいて、変換部120は、出力エッジ数oen(n)を、次に出力並列数で割り切れる数まで増加させる。
この処理を具体的にプログラム言語で記述すると、例えば、以下のようになる。
While(oen(n)%並列数==0) oen(n)=oen(n)+1
また、ステップS207aにおいて、変換部120は、n番目の層の出力エッジ数を出力並列数で割り切れる数まで増加させたNN構造のLat(trial)が、変更前のNN構造のLat(org)より劣化しているか否かを判定する。具体的には、以下の処理を行う。
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
<変形例2>
変形例1では、変換部120は、出力エッジ数oen(n)を、次に出力並列数で割り切れる数まで増加させていた。しかし、変換部120は、出力エッジ数oen(n)を出力並列数で割った剰余が小さくなるように、出力エッジ数を増加させてもよい。
<変形例3>
本実施の形態では、解析部110と変換部120と出力部130の機能がソフトウェアで実現される。変形例として、解析部110と変換部120と出力部130の機能がハードウェアで実現されてもよい。
図11は、本実施の形態の変形例に係る構成変換装置100の構成を示す図である。
構成変換装置100は、電子回路909、メモリ921、補助記憶装置922、入力インタフェース930、および出力インタフェース940を備える。
電子回路909は、解析部110と変換部120と出力部130の機能を実現する専用の電子回路である。
電子回路909は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、ASIC、または、FPGAである。GAは、Gate Arrayの略語である。ASICは、Application Specific Integrated Circuitの略語である。
解析部110と変換部120と出力部130の機能は、1つの電子回路で実現されてもよいし、複数の電子回路に分散して実現されてもよい。
別の変形例として、解析部110と変換部120と出力部130の一部の機能が電子回路で実現され、残りの機能がソフトウェアで実現されてもよい。
また、別の変形例として、解析部110と変換部120と出力部130の一部あるいはすべての機能が、ファームウェアで実現されていてもよい。
プロセッサと電子回路の各々は、プロセッシングサーキットリとも呼ばれる。つまり、構成変換装置100において、解析部110と変換部120と出力部130の機能は、プロセッシングサーキットリにより実現される。
***本実施の形態の効果の説明***
図12は、本実施の形態に係る構成変換装置100の効果を示す図である。
図12に示すように、オリジナルのNN構造80のレイテンシを低減するため、比較例のNN構造81では認識精度も低くなってしまう。本実施の形態に係る変更後NN構造82では、レイテンシを劣化させることなく認識精度を向上させることができる。
本実施の形態に係る構成変換装置100は、ニューラルネットワークのモデルを入力として、ハードウェア向けにニューラルネットワークを変更する装置である。本実施の形態に係る構成変換装置100では、ニューラルネットワークを構成する各層のパラメータである入出力エッジ数をハードウェアで実行した場合に、性能が劣化せず、かつ、入出力エッジ数を増加させるように、入出力エッジ数を変更する。よって、本実施の形態に係る構成変換装置100によれば、性能を維持したまま認識精度を向上させることができる。
言い換えると、本実施の形態に係る構成変換装置100は、推論を実行するハードウェアの演算器並列数といったハードウェア構成と実装対象のNNから、NNの規模(演算量)を大きくしても性能に影響しないNNのパラメータを導出する。そして、構成変換装置100は、導出したパラメータに基づいて、NNの規模を大きなものに変更する。
本実施の形態では組込み機器のFPGA、ASIC、あるいはGPUといったハードウェアへのAI推論機能において、実装対象となるDNNを、ハードウェアにおける処理時間増無しおよび回路規模増無しで認識精度を向上させるDNNに変更することができる。よって、未使用の回路がある場合、未使用回路を有効に活用できるようにNNを変更することができ、性能を劣化させずに認識率を向上させることができる。
実施の形態2.
本実施の形態では、主に、実施の形態1と異なる点および実施の形態1に追加する点について説明する。
本実施の形態において、実施の形態1と同様の機能を有する構成については同一の符号を付し、その説明を省略する。
図13を用いて、本実施の形態に係る構成変換装置100bの構成例について説明する。
本実施の形態に係る構成変換装置100bは、複数のレイヤパラメータ210の各々と、複数のレイヤパラメータ210の各々を用いた際の回路の処理性能とを対応付けた処理性能情報23を備える。その他の構成については実施の形態1と同様である。
実施の形態1では、図3のステップS102およびステップS103において、変換部120は、図6に示す特定の回路構成から処理性能を算出する。
しかし、ハードウェアの回路構成が特定できない場合もある。このような場合、変換部120は、レイヤパラメータと回路の処理性能の実測値とが予め設定された処理性能情報23を用いて、レイヤパラメータに対応する処理性能を取得する。
変換部120は、現在のレイヤパラメータ210である第1パラメータ211を用いた際の回路の処理性能を第1処理性能として処理性能情報23から取得する(ステップS102に対応)。また、変換部120は、第1パラメータ211より演算量が増加する第2パラメータ212をレイヤパラメータ210として用いた際の回路の処理性能を第2処理性能として処理性能情報23から取得する(ステップS103に対応)。第2処理性能が第1処理性能より劣化していなければ、変換部120は、第2パラメータ212を現在のレイヤパラメータである第1パラメータ211として、処理を繰り返す。
本実施の形態に係る構成変換装置100bでは、NN構造のパラメータを特定のハードウェアで実行した場合の性能を、予めデータベース化してある。よって、本実施の形態に係る構成変換装置100bでは、変換部120は、ハードウェアの回路構成を特定できない場合でも、レイヤパラメータに対応する処理性能を取得することができる。
実施の形態3.
本実施の形態では、主に、実施の形態1,2と異なる点および実施の形態1,2に追加する点について説明する。
本実施の形態において、実施の形態1,2と同様の機能を有する構成については同一の符号を付し、その説明を省略する。
図14を用いて、本実施の形態に係る構成変換装置100cの構成例について説明する。
本実施の形態に係る構成変換装置100cは、活性化関数の性能が設定された活性化性能テーブル24を備える。その他の構成については実施の形態1と同様である。
実施の形態1では、NN構造の複数の層の各層の入出力エッジ数をレイヤパラメータ210として、入出力エッジ数を増加させることでNN構造の演算量を増加させている。
本実施の形態では、変換部120は、複数の層の各層の活性化関数をレイヤパラメータ210として、活性化関数を現在の関数より演算数が大きい関数に変換することにより、NN構造の演算量を増加させる。
図15は、本実施の形態に係る構成変換装置100cの構成変換処理の動作例を示すフロー図である。
図15では、ステップS201からステップS204、ステップS206、および、ステップS208からステップS209の処理は、図7と同様である。
図15のステップS205cにおいて、変換部120は、活性化性能テーブル24に基づいて、n番目の層における活性化関数を変換する。
図16は、本実施の形態に係るNN構造において処理性能が劣化せずに演算量が増加する例を示す図である。
図16に示すように、活性化性能テーブル24には、活性化関数の種類と、活性化関数のハードウェア性能と、演算規模とが設定されている。
変換部120は、n番目の層における活性化関数を、ハードウェア性能が同じであれば、演算規模の大きい活性化関数に差し替える。
図16の具体例では、活性化関数ReLuのハードウェア性能は1であり、演算規模は1である。活性化関数Leaky ReLuのハードウェア性能は1であり、演算規模は3である。そこで、変換部120は、NN構造におけるn番目の層の活性化関数ReLuを、ハードウェア性能が同じであり、演算規模の大きいLeaky ReLuに差し替える。
また、ステップS207cにおいて、変換部120は、活性化関数を差し換えた後のNN構造のLat(trial)が、差し替え前のNN構造のLat(org)より劣化しているか否かを判定する。具体的には、以下の処理を行う。
Lat(trial)がLat(org)より劣化していなければ、変換部120は、ステップS205cに戻り、n番目の層の活性化関数の演算規模をさらに増加させて、以降の処理を繰り返す。
Lat(trial)がLat(org)より劣化していれば、変換部120は、ステップS208に進む。このとき、変換部120は、n番目の層の活性化関数を差し替え前に戻してから、ステップS208に進む。
本実施の形態に係る構成変換装置100cは、推論を実行するハードウェアの演算器並列数といったハードウェア構成と実装対象のNNから、NNの規模(演算量)を大きくしても性能に影響しないNNのレイヤ種類(活性化関数)を導出する。そして、構成変換装置100は、導出したレイヤ種類に基づいて、NNの規模を大きなものに変更する。
本実施の形態に係る構成変換装置100cよれば、回路の処理性能が劣化せず、かつ、ニューラルネットワークの演算量が増加するように、活性化関数を変換するので、性能を維持したまま認識精度を向上させることできる。
以上の実施の形態1から3では、構成変換装置の各部を独立した機能ブロックとして説明した。しかし、構成変換装置の構成は、上述した実施の形態のような構成でなくてもよい。構成変換装置の機能ブロックは、上述した実施の形態で説明した機能を実現することができれば、どのような構成でもよい。また、構成変換装置は、1つの装置でなく、複数の装置から構成されたシステムでもよい。
また、実施の形態1から3のうち、複数の部分を組み合わせて実施しても構わない。あるいは、これらの実施の形態のうち、1つの部分を実施しても構わない。その他、これらの実施の形態を、全体としてあるいは部分的に、どのように組み合わせて実施しても構わない。
すなわち、実施の形態1から3では、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
なお、上記の実施の形態は、本質的に好ましい例示であって、本開示、その適用物あるいは用途の範囲を制限することを意図するものではなく、必要に応じて種々の変更が可能である。
21 NNモデル、22 変換後NNモデル、23 処理性能情報、24 活性化性能テーブル、80,81,82 NN構造、100,100b,100c 構成変換装置、110 解析部、120 変換部、130 出力部、140 記憶部、210 レイヤパラメータ、211 第1パラメータ、212 第2パラメータ、909 電子回路、910 プロセッサ、921 メモリ、922 補助記憶装置、930 入力インタフェース、940 出力インタフェース、950 通信装置。

Claims (16)

  1. 複数の層により構成されたニューラルネットワークの構成を解析し、前記複数の層の各層の属性を表すレイヤパラメータを取得する解析部と、
    前記ニューラルネットワークの動作を実行する回路の処理性能が劣化せず、かつ、前記ニューラルネットワークの演算量が増加するように、前記レイヤパラメータを変換する変換部であって、前記複数の層の各層の入出力エッジ数を前記レイヤパラメータとして、前記入出力エッジ数を増加させることにより前記演算量を増加させる変換部と
    を備え、
    前記変換部は、
    前記複数の層の各層の入力エッジ数を回路の入力並列数で割り切れる数に増加させ、前記複数の層の各層の出力エッジ数を回路の出力並列数で割り切れる数に増加させる構成変換装置。
  2. 前記変換部は、
    前記複数の層の各層の活性化関数を前記レイヤパラメータとして、前記活性化関数を現在の関数より演算規模が大きい関数に変換することにより前記演算量を増加させる請求項1に記載の構成変換装置。
  3. 前記変換部は、
    現在の前記レイヤパラメータである第1パラメータを用いて前記処理性能を第1処理性能として算出し、前記第1パラメータより前記演算量が増加する第2パラメータを前記レイヤパラメータとして用いて前記処理性能を第2処理性能として算出し、前記第2処理性能が前記第1処理性能より劣化していなければ、前記第2パラメータを現在の前記レイヤパラメータとする請求項1または請求項2に記載の構成変換装置。
  4. 前記構成変換装置は、
    複数のレイヤパラメータの各々と、前記複数のレイヤパラメータの各々を用いた際の前記回路の処理性能とを対応付けた処理性能情報を備え、
    前記変換部は、
    現在の前記レイヤパラメータである第1パラメータを用いた際の前記回路の前記処理性能を第1処理性能として前記処理性能情報から取得し、前記第1パラメータより前記演算量が増加する第2パラメータを前記レイヤパラメータとして用いた際の前記回路の前記処理性能を第2処理性能として前記処理性能情報から取得し、前記第2処理性能が前記第1処理性能より劣化していなければ、前記第2パラメータを現在の前記レイヤパラメータとする請求項1または請求項2に記載の構成変換装置。
  5. 前記回路は、FPGA(Field Programmable Gate Array)である請求項1から請求項4のいずれか1項に記載の構成変換装置。
  6. コンピュータである構成変換装置に用いられる構成変換方法において、
    コンピュータが、複数の層により構成されたニューラルネットワークの構成を解析し、前記複数の層の各層の属性を表すレイヤパラメータを取得し、
    コンピュータが、前記ニューラルネットワークの動作を実行する回路の処理性能が劣化せず、かつ、前記ニューラルネットワークの演算量が増加するように、前記レイヤパラメータを変換する構成変換方法であって、
    コンピュータは、前記複数の層の各層の入力エッジ数を回路の入力並列数で割り切れる数に増加させ、前記複数の層の各層の出力エッジ数を回路の出力並列数で割り切れる数に増加させることにより、前記複数の層の各層の入出力エッジ数を前記レイヤパラメータとして、前記入出力エッジ数を増加させる構成変換方法。
  7. コンピュータである構成変換装置に用いられる構成変換プログラムにおいて、
    複数の層により構成されたニューラルネットワークの構成を解析し、前記複数の層の各層の属性を表すレイヤパラメータを取得する解析処理と、
    前記ニューラルネットワークの動作を実行する回路の処理性能が劣化せず、かつ、前記ニューラルネットワークの演算量が増加するように、前記レイヤパラメータを変換する変換処理と
    をコンピュータに実行させる構成変換プログラムであって、
    前記変換処理では、
    前記複数の層の各層の入力エッジ数を回路の入力並列数で割り切れる数に増加させ、前記複数の層の各層の出力エッジ数を回路の出力並列数で割り切れる数に増加させることにより、前記複数の層の各層の入出力エッジ数を前記レイヤパラメータとして、前記入出力エッジ数を増加させる構成変換プログラム。
  8. 複数の層により構成されたニューラルネットワークの構成を解析し、前記複数の層の各層の属性を表すレイヤパラメータを取得する解析部と、
    前記ニューラルネットワークの動作を実行する回路の処理性能が劣化せず、かつ、前記ニューラルネットワークの演算量が増加するように、前記レイヤパラメータを変換する変換部とを備え、
    前記変換部は、
    前記複数の層の各層の活性化関数を前記レイヤパラメータとして、前記活性化関数を現在の関数より演算規模が大きい関数に変換することにより前記演算量を増加させる構成変換装置。
  9. コンピュータである構成変換装置に用いられる構成変換方法において、
    コンピュータが、複数の層により構成されたニューラルネットワークの構成を解析し、前記複数の層の各層の属性を表すレイヤパラメータを取得し、
    コンピュータが、前記ニューラルネットワークの動作を実行する回路の処理性能が劣化せず、かつ、前記ニューラルネットワークの演算量が増加するように、前記レイヤパラメータを変換する構成変換方法であって、
    コンピュータは、前記複数の層の各層の活性化関数を前記レイヤパラメータとして、前記活性化関数を現在の関数より演算規模が大きい関数に変換することにより前記演算量を増加させる構成変換方法。
  10. コンピュータである構成変換装置に用いられる構成変換プログラムにおいて、
    複数の層により構成されたニューラルネットワークの構成を解析し、前記複数の層の各層の属性を表すレイヤパラメータを取得する解析処理と、
    前記ニューラルネットワークの動作を実行する回路の処理性能が劣化せず、かつ、前記ニューラルネットワークの演算量が増加するように、前記レイヤパラメータを変換する変換処理と
    をコンピュータに実行させる構成変換プログラムであって、
    前記変換処理では、
    前記複数の層の各層の活性化関数を前記レイヤパラメータとして、前記活性化関数を現在の関数より演算規模が大きい関数に変換することにより前記演算量を増加させる構成変換プログラム。
  11. 複数の層により構成されたニューラルネットワークの構成を解析し、前記複数の層の各層の属性を表すレイヤパラメータを取得する解析部と、
    前記ニューラルネットワークの動作を実行する回路の処理性能が劣化せず、かつ、前記ニューラルネットワークの演算量が増加するように、前記レイヤパラメータを変換する変換部と
    を備え、
    前記変換部は、
    現在の前記レイヤパラメータである第1パラメータを用いて前記処理性能を第1処理性能として算出し、前記第1パラメータより前記演算量が増加する第2パラメータを前記レイヤパラメータとして用いて前記処理性能を第2処理性能として算出し、前記第2処理性能が前記第1処理性能より劣化していなければ、前記第2パラメータを現在の前記レイヤパラメータとする構成変換装置。
  12. コンピュータである構成変換装置に用いられる構成変換方法において、
    コンピュータが、複数の層により構成されたニューラルネットワークの構成を解析し、前記複数の層の各層の属性を表すレイヤパラメータを取得し、
    コンピュータが、前記ニューラルネットワークの動作を実行する回路の処理性能が劣化せず、かつ、前記ニューラルネットワークの演算量が増加するように、前記レイヤパラメータを変換する構成変換方法であって、
    コンピュータは、
    現在の前記レイヤパラメータである第1パラメータを用いて前記処理性能を第1処理性能として算出し、前記第1パラメータより前記演算量が増加する第2パラメータを前記レイヤパラメータとして用いて前記処理性能を第2処理性能として算出し、前記第2処理性能が前記第1処理性能より劣化していなければ、前記第2パラメータを現在の前記レイヤパラメータとする構成変換方法。
  13. コンピュータである構成変換装置に用いられる構成変換プログラムにおいて、
    複数の層により構成されたニューラルネットワークの構成を解析し、前記複数の層の各層の属性を表すレイヤパラメータを取得する解析処理と、
    前記ニューラルネットワークの動作を実行する回路の処理性能が劣化せず、かつ、前記ニューラルネットワークの演算量が増加するように、前記レイヤパラメータを変換する変換処理と
    をコンピュータに実行させる構成変換プログラムであって、
    前記変換処理では、
    現在の前記レイヤパラメータである第1パラメータを用いて前記処理性能を第1処理性能として算出し、前記第1パラメータより前記演算量が増加する第2パラメータを前記レイヤパラメータとして用いて前記処理性能を第2処理性能として算出し、前記第2処理性能が前記第1処理性能より劣化していなければ、前記第2パラメータを現在の前記レイヤパラメータとする構成変換プログラム。
  14. 複数の層により構成されたニューラルネットワークの構成を解析し、前記複数の層の各層の属性を表すレイヤパラメータを取得する解析部と、
    前記ニューラルネットワークの動作を実行する回路の処理性能が劣化せず、かつ、前記ニューラルネットワークの演算量が増加するように、前記レイヤパラメータを変換する変換部と、
    複数のレイヤパラメータの各々と、前記複数のレイヤパラメータの各々を用いた際の前記回路の処理性能とを対応付けた処理性能情報と
    を備え、
    前記変換部は、
    現在の前記レイヤパラメータである第1パラメータを用いた際の前記回路の前記処理性能を第1処理性能として前記処理性能情報から取得し、前記第1パラメータより前記演算量が増加する第2パラメータを前記レイヤパラメータとして用いた際の前記回路の前記処理性能を第2処理性能として前記処理性能情報から取得し、前記第2処理性能が前記第1処理性能より劣化していなければ、前記第2パラメータを現在の前記レイヤパラメータとする構成変換装置。
  15. コンピュータである構成変換装置に用いられる構成変換方法において、
    コンピュータが、複数の層により構成されたニューラルネットワークの構成を解析し、前記複数の層の各層の属性を表すレイヤパラメータを取得し、
    コンピュータが、前記ニューラルネットワークの動作を実行する回路の処理性能が劣化せず、かつ、前記ニューラルネットワークの演算量が増加するように、前記レイヤパラメータを変換し、
    コンピュータが、複数のレイヤパラメータの各々と、前記複数のレイヤパラメータの各々を用いた際の前記回路の処理性能とを対応付けた処理性能情報を備え、現在の前記レイヤパラメータである第1パラメータを用いた際の前記回路の前記処理性能を第1処理性能として前記処理性能情報から取得し、前記第1パラメータより前記演算量が増加する第2パラメータを前記レイヤパラメータとして用いた際の前記回路の前記処理性能を第2処理性能として前記処理性能情報から取得し、前記第2処理性能が前記第1処理性能より劣化していなければ、前記第2パラメータを現在の前記レイヤパラメータとする構成変換方法。
  16. コンピュータである構成変換装置に用いられる構成変換プログラムにおいて、
    複数の層により構成されたニューラルネットワークの構成を解析し、前記複数の層の各層の属性を表すレイヤパラメータを取得する解析処理と、
    前記ニューラルネットワークの動作を実行する回路の処理性能が劣化せず、かつ、前記ニューラルネットワークの演算量が増加するように、前記レイヤパラメータを変換する変換処理と
    をコンピュータに実行させる構成変換プログラムであって、
    前記構成変換装置は、複数のレイヤパラメータの各々と、前記複数のレイヤパラメータの各々を用いた際の前記回路の処理性能とを対応付けた処理性能情報を備え、
    前記変換処理では、
    現在の前記レイヤパラメータである第1パラメータを用いた際の前記回路の前記処理性能を第1処理性能として前記処理性能情報から取得し、前記第1パラメータより前記演算量が増加する第2パラメータを前記レイヤパラメータとして用いた際の前記回路の前記処理性能を第2処理性能として前記処理性能情報から取得し、前記第2処理性能が前記第1処理性能より劣化していなければ、前記第2パラメータを現在の前記レイヤパラメータとする構成変換プログラム。
JP2022516582A 2020-04-23 2020-04-23 構成変換装置、構成変換方法、および構成変換プログラム Active JP7142805B2 (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3757722B2 (ja) 1999-12-15 2006-03-22 Kddi株式会社 多層ニューラルネットワークユニット数最適化方法及び装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3757722B2 (ja) 1999-12-15 2006-03-22 Kddi株式会社 多層ニューラルネットワークユニット数最適化方法及び装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
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