IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ソニー株式会社の特許一覧

特開2023-133863ニューラルネットワーク回路及び演算方法
<>
  • 特開-ニューラルネットワーク回路及び演算方法 図1
  • 特開-ニューラルネットワーク回路及び演算方法 図2
  • 特開-ニューラルネットワーク回路及び演算方法 図3A
  • 特開-ニューラルネットワーク回路及び演算方法 図3B
  • 特開-ニューラルネットワーク回路及び演算方法 図3C
  • 特開-ニューラルネットワーク回路及び演算方法 図4
  • 特開-ニューラルネットワーク回路及び演算方法 図5
  • 特開-ニューラルネットワーク回路及び演算方法 図6
  • 特開-ニューラルネットワーク回路及び演算方法 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023133863
(43)【公開日】2023-09-27
(54)【発明の名称】ニューラルネットワーク回路及び演算方法
(51)【国際特許分類】
   G06N 3/063 20230101AFI20230920BHJP
   G06F 17/10 20060101ALI20230920BHJP
   G06F 7/523 20060101ALI20230920BHJP
【FI】
G06N3/063
G06F17/10 A
G06F7/523
【審査請求】未請求
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2022039095
(22)【出願日】2022-03-14
(71)【出願人】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】甲地 弘幸
【テーマコード(参考)】
5B056
【Fターム(参考)】
5B056BB26
(57)【要約】
【課題】除算を行う回路を小型化する。
【解決手段】ニューラルネットワーク回路は、係数保持部と、乗数データ保持部と、入力データ保持部と、積和演算器と、制御部とを有する。係数保持部は、畳み込み演算に使用するフィルタの係数を保持する。乗数データ保持部は、平均プーリング演算に使用するプーリング窓の要素数の逆数を乗数データとして保持する。入力データ保持部は、畳み込み演算及び平均プーリング演算の入力データを保持する。積和演算器は、積和演算を行う。制御部は、入力データ保持部に保持された入力データ及び係数保持部に保持された係数を積和演算器に入力して積和演算器に畳み込み演算のための積和計算を行わせる制御と、入力データ保持部に保持された入力データ及び乗数データ保持部に保持された乗数データを積和演算器に入力して積和演算器に平均プーリング演算のための積和演算を行わせる制御とを行う。
【選択図】図2
【特許請求の範囲】
【請求項1】
畳み込み演算に使用するフィルタの係数を保持する係数保持部と、
平均プーリング演算に使用するプーリング窓の要素数の逆数を乗数データとして保持する乗数データ保持部と、
前記畳み込み演算及び前記平均プーリング演算の入力データを保持する入力データ保持部と、
積和演算を行う積和演算器と、
前記入力データ保持部に保持された入力データ及び前記係数保持部に保持された係数を前記積和演算器に入力して前記積和演算器に前記畳み込み演算のための積和計算を行わせる制御と、前記入力データ保持部に保持された入力データ及び前記乗数データ保持部に保持された乗数データを前記積和演算器に入力して前記積和演算器に前記平均プーリング演算のための積和演算を行わせる制御とを行う制御部と
を有するニューラルネットワーク回路。
【請求項2】
前記係数保持部及び前記乗数データ保持部の何れかを選択してデータを出力する選択部
を更に有し、
前記制御部は、前記積和演算器に行わせる演算に基づいて前記選択部を更に制御する
請求項1に記載のニューラルネットワーク回路。
【請求項3】
前記プーリング窓の要素数の逆数を算出して前記乗数データ保持部に保持させる逆数算出部を更に有する請求項1に記載のニューラルネットワーク回路。
【請求項4】
畳み込み演算及び平均プーリング演算の入力データを保持する入力データ保持部に保持される入力データ及び前記畳み込み演算に使用するフィルタの係数を保持する係数保持部に保持される係数を積和演算器に入力して前記積和演算器に前記畳み込み演算のための積和計算を行わせることと、
前記入力データ保持部に保持された入力データ及び平均プーリング演算に使用するプーリング窓の要素数の逆数を乗数データとして保持する乗数データ保持部に保持された乗数データを前記積和演算器に入力して前記積和演算器に前記平均プーリング演算のための積和演算を行わせることと
を有する演算方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ニューラルネットワーク回路及び演算方法に関する。
【背景技術】
【0002】
深層学習の一例であるディープニューラルネットワーク(DNN:Deep Neural Network)は、近年のAI(Artificial Intelligence)を先導する技術となりつつある。このDNNは、畳み込み層やプーリング層等により構成される。畳み込み層は、畳み込み演算を行う層である。この畳み込み演算は、入力データから局所的に特徴量を抽出する演算である。また、プーリング層は、主に畳み込み演算の結果等の入力データを縮小する演算を行う層である。この演算として入力データの平均値を算出することにより縮小を行う平均プーリング演算が使用されている。この平均プーリング演算は、平均値を算出する際に除算を行う必要がある。この除算を行う除算器は、回路規模が大きいため、ニューラルネットワーク回路のサイズが増加するという問題がある。
【0003】
そこで、シフト演算により除算を行うニューラルネットワーク回路が提案されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2021-168095号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記の従来技術では、除数が2のべき乗の値に限定されるという問題がある。
【0006】
そこで、本開示では、任意の除数に対応するとともに回路規模の増大を防ぐ除算部を有するニューラルネットワーク回路及び演算方法を提案する。
【課題を解決するための手段】
【0007】
本開示のニューラルネットワーク回路は、係数保持部と、乗数データ保持部と、入力データ保持部と、積和演算器と、制御部とを有する。係数保持部は、畳み込み演算に使用するフィルタの係数を保持する。乗数データ保持部は、平均プーリング演算に使用するプーリング窓の要素数の逆数を乗数データとして保持する。入力データ保持部は、上記畳み込み演算及び上記平均プーリング演算の入力データを保持する。積和演算器は、積和演算を行う。制御部は、上記入力データ保持部に保持された入力データ及び上記係数保持部に保持された係数を上記積和演算器に入力して上記積和演算器に上記畳み込み演算のための積和計算を行わせる制御と、上記入力データ保持部に保持された入力データ及び上記乗数データ保持部に保持された乗数データを上記積和演算器に入力して上記積和演算器に上記平均プーリング演算のための積和演算を行わせる制御とを行う。
【図面の簡単な説明】
【0008】
図1】本開示の実施形態に係るニューラルネットワーク回路の構成例を示す図である。
図2】本開示の第1の実施形態に係る演算部の構成例を示す図である。
図3A】本開示の実施形態に係る畳み込み演算の一例を示す図である。
図3B】本開示の実施形態に係る畳み込み演算の一例を示す図である。
図3C】本開示の実施形態に係る畳み込み演算の一例を示す図である。
図4】本開示の実施形態に係る平均プーリング演算の一例を示す図である。
図5】本開示の第1の実施形態に係る畳み込み演算の処理手順の一例を示す図である。
図6】本開示の第1の実施形態に係る平均プーリング演算の処理手順の一例を示す図である。
図7】本開示の第2の実施形態に係るニューラルネットワーク回路の構成例を示す図である。
【発明を実施するための形態】
【0009】
以下に、本開示の実施形態について図面に基づいて詳細に説明する。説明は、以下の順に行う。なお、以下の各実施形態において、同一の部位には同一の符号を付することにより重複する説明を省略する。
1.第1の実施形態
2.第2の実施形態
【0010】
(1.第1の実施形態)
[ニューラルネットワーク回路の構成]
図1は、本開示の実施形態に係るニューラルネットワーク回路の構成例を示す図である。同図は、ニューラルネットワーク回路10の構成例を表すブロック図である。このニューラルネットワーク回路10は、畳み込み演算や平均プーリング演算等のDNNに関する演算を行う回路である。ニューラルネットワーク回路10は、メモリ装置から読み出したデータの演算を行い、演算結果をメモリ装置に書き込む処理を行う。ニューラルネットワーク回路10が処理するデータには、例えば、画像データ等の2次元配列構造のデータを想定する。
【0011】
ニューラルネットワーク回路10は、制御部11と、ホストインターフェイス12と、パラメータレジスタ13と、読み出し制御部14及び15と、書き込み制御部16と、バスインターフェイス17と、領域分割部18と、領域統合部19とを備える。また、ニューラルネットワーク回路10は、データ変換部20及び30と、バッファ選択部40及び50と、Xバッファ110と、Sバッファ120と、Wバッファ130と、Bバッファ140と、出力バッファ150と、演算制御部160とを更に備える。また、ニューラルネットワーク回路10は、浮動小数点積和演算アレイ170と、量子化積和演算アレイ180と、固定小数点積和演算アレイ190とを更に備える。
【0012】
制御部11は、ニューラルネットワーク回路10の全体を制御するものである。この制御部11は、後述するパラメータレジスタ13に保持されたパラメータに基づいて制御を行う。制御部11は、例えば、CPU(Central Processing Unit)やマイコン、及びステートマシン回路等により構成することができる。
【0013】
ホストインターフェイス12は、ホストシステムとの間のやり取りを行うものである。バスインターフェイス17は、バスを介したメモリ装置との間のやり取りを行うものである。
【0014】
パラメータレジスタ13は、演算におけるパラメータを保持するものである。このパラメータレジスタ13には、メモリ装置及びホストシステムからパラメータが入力される。
【0015】
読み出し制御部14及び読み出し制御部15は、メモリ装置からデータを読み出す制御を行うものである。読み出し制御部14は、読み出したデータをパラメータレジスタ13に対して出力する。読み出し制御部15は、読み出したデータを領域分割部18に対して出力する。
【0016】
領域分割部18は、入力データを分割するものである。この領域分割部18は、バスインターフェイス17により規定される読み出し幅の入力データをXバッファ110等に格納する際の最小幅に分割する。領域分割部18は、例えば、入力データを8ビット毎に分割することができる。領域分割部18は、分割したデータをデータ変換部20に対して出力する。
【0017】
データ変換部20は、データ形式を変換するものである。このデータ変換部20は、入力データを後段の積和演算において適用される形式に変換するものである。
【0018】
バッファ選択部40は、後述するXバッファ110、Sバッファ120、Wバッファ130及びBバッファ140を選択するものである。このバッファ選択部40は、データ変換部20からのデータを選択したXバッファ110等に入力する。
【0019】
Xバッファ110は、畳み込み演算の対象となるデータを保持するものである。このXバッファ110は、入力データのチャネル数に応じて複数配置される。
【0020】
Sバッファ120は、演算制御部160や選択部161の処理の効率化のためのデータを保持するものである。このSバッファ120は、入力データのチャネル数に応じて複数配置される。
【0021】
Wバッファ130は、畳み込み演算におけるフィルタの係数を保持するものである。このWバッファ130は、入力データのチャネル数に応じて複数配置される。
【0022】
Bバッファ140は、畳み込み演算におけるバイアス値を保持するものである。このBバッファ140は、入力データのチャネル数に応じて複数配置される。
【0023】
Xバッファ110、Sバッファ120、Wバッファ130及びBバッファ140は、半導体メモリにより構成することができる。
【0024】
演算制御部160は、積和演算の入出力を制御するものである。この演算制御部160は、選択部161を備える。選択部161は、Xバッファ110、Sバッファ120、Wバッファ130及びBバッファ140を選択し、選択したXバッファ110等からデータを読み出す。また、選択部161は、浮動小数点積和演算アレイ170、量子化積和演算アレイ180及び固定小数点積和演算アレイ190の何れかを選択し、Xバッファ110等からのデータを入力する。また、選択部161は、選択した浮動小数点積和演算アレイ170等から演算結果を取得して出力バッファ150に対して出力する。
【0025】
浮動小数点積和演算アレイ170は、浮動小数点数の積和演算を行う積和演算器171が複数配置されて構成されるものである。同図の浮動小数点積和演算アレイ170には、複数の積和演算器171が配置される。この積和演算器171には、例えば、16ビットの半精度浮動小数点数による積和演算を行う積和演算器を適用することができる。
【0026】
量子化積和演算アレイ180は、量子化積和演算を行う積和演算器172が複数配置されて構成されるものである。
【0027】
固定小数点積和演算アレイ190は、固定小数点数の積和演算を行う積和演算器173が複数配置されて構成されるものである。
【0028】
出力バッファ150は、積和演算の結果を保持するものである。この出力バッファ150は、保持したデータをデータ変換部30に対して出力する。出力バッファ150は、半導体メモリにより構成することができる。
【0029】
バッファ選択部50は、出力バッファ150を選択するものである。このバッファ選択部50は、選択した出力バッファ150からのデータをデータ変換部30に対して出力する。
【0030】
データ変換部30は、積和計算の演算結果を元のデータの形式に変換するものである。データ変換部30は、変換したデータを領域統合部19に対して出力する。
【0031】
領域統合部19は、領域分割部18により分割されたデータを統合するものである。この領域統合部19は、統合したデータを書き込み制御部16に対して出力する。
【0032】
書き込み制御部16は、領域統合部19から出力されたデータをメモリ装置に書き込むものである。この書き込み制御部16は、バスインターフェイス17を介してデータの書き込みを行う。
【0033】
[演算部の構成]
図2は、本開示の第1の実施形態に係る演算部の構成例を示す図である。同図は、ニューラルネットワーク回路10における畳み込み演算及び平均プーリング演算を行う部分を表す演算部のブロック図である。同図の演算部は、入力データ保持部100と、係数保持部101と、乗算データ保持部102と、選択部161と、積和演算器173と、出力バッファ150と、制御部11とを備える。
【0034】
入力データ保持部100は、畳み込み演算及び平均プーリング演算の入力データを保持するものである。この入力データ保持部100は、図1において説明したXバッファ110及びBバッファ140に対応するものである。
【0035】
係数保持部101は、畳み込み演算に使用するフィルタの係数を保持するものである。この係数保持部101は、図1において説明したWバッファ130に対応するものである。
【0036】
乗算データ保持部102は、乗算データを保持するものである。この乗算データは、平均プーリング演算に使用するプーリング窓の要素数の逆数に相当する。乗算データ保持部102は、図1のパラメータレジスタ13に含まれる。
【0037】
選択部161は、係数保持部101及び乗算データ保持部102の何れかを選択してデータを出力するものである。この選択部161は、制御部11の制御に基づいて選択を行う。
【0038】
積和演算器173は、積和演算を行うものである。同図の積和演算器173は、入力データ保持部100からのデータと選択部161により選択された係数保持部101及び乗算データ保持部102の何れかのデータとについて積和演算を行う。積和演算器173の演算結果は、出力バッファ150に保持される。
【0039】
制御部11は、同図の演算部において畳み込み演算及び平均プーリング演算の制御を行うものである。具体的には、制御部11は、入力データ保持部100からの入力データ及び係数保持部101に保持された係数を積和演算器173に入力して積和演算器173に畳み込み演算のための積和計算を行わせる制御を行う。また、制御部11は、入力データ保持部100に保持された入力データ及び乗算データ保持部102に保持された乗数データを積和演算器173に入力して積和演算器173に平均プーリング演算のための積和演算を行わせる制御を更に行う。制御部11は、畳み込み演算の際に選択部161に係数保持部101を選択させる制御を行い、平均プーリング演算の際に選択部161に乗算データ保持部102を選択させる制御を行う。畳み込み演算及び平均プーリング演算の詳細について次に説明する。
【0040】
[畳み込み演算]
図3A-3Cは、本開示の実施形態に係る畳み込み演算の一例を示す図である。同図は、図2の演算部における畳み込み演算を説明する図である。また、同図は、入力データ200に対して畳み込み演算を行い、演算結果を出力データ201に格納する例を表したものである。入力データ200は、例えば、2次元行列状に構成された画像データである。同図の入力データ200の矩形は、画素毎の画像信号を表す。同図の入力データ200の行方向の幅及び列方向の高さをそれぞれxw及びxhにより表す。この入力データ200は、Xバッファ110に保持されるデータである。
【0041】
出力データ201の矩形は、それぞれの演算結果を格納する領域を表す。同図の出力データ201の行方向の幅及び列方向の高さをそれぞれow及びohにより表す。この出力データ201は、出力バッファ150に保持されるデータである。
【0042】
同図のハッチングを付した領域は、フィルタの係数210の領域を表すものである。同図の係数210の行方向(横方向)の幅及び列方向(縦方向)の高さをそれぞれkw及びkhにより表す。この係数210の領域が重ねられる入力データ200の領域について畳み込み演算が行われる。具体的には、入力データ200及び係数210の要素同士の積の総和が出力データ201の対応する領域に格納される。同図は、kw及びkhがそれぞれ値3の場合の例を表したものである。
【0043】
図3Aに表したように、入力データ200の左上の領域において畳み込み演算を行う。演算結果は、出力データ201の左上の領域に格納される。出力データ201の隣接する領域の要素を計算する場合には、係数210の領域を横方向及び縦方向にずらして畳み込み演算を行う。
【0044】
図3Bは係数210の領域を横方向にずらす場合の例を表したものである。横方向のずらし幅をswにより表す。同図は、swが値2の場合の例を表したものである。
【0045】
図3Cは係数210の領域を縦方向にずらす場合の例を表したものである。縦方向のずらし幅をshにより表す。同図は、shが値2の場合の例を表したものである。
【0046】
なお、図3A-3Cにおいては、チャネル方向の演算を省略している。畳み込み演算は、次式により表すことができる。
【0047】
【数1】
ここで、oは畳み込み演算の結果を表す。i及びjは、出力データ201の領域を示す変数である。iは行の位置を表し、jが列の位置を表す。xは入力データ200を表す。sh及びswは、上述のずらし幅である。wは、係数210を表す。k及びlは、係数210の領域を示す変数である。kが行の位置を表し、lが列の位置を表す。bは、バイアス値を表す。
【0048】
式(1)の演算は、図2の積和演算器173が実行する。また、xはXバッファ110から出力され、sw及びshはパラメータレジスタ13から出力され、bはBバッファ140から出力される。wは、係数保持部101に該当するWバッファ130から出力される。また、oは、出力バッファ150に保持される。
【0049】
[平均プーリング演算]
図4は、本開示の実施形態に係る平均プーリング演算の一例を示す図である。同図は、図2の演算部における平均プーリング演算を説明する図である。同図は、入力データ200に対して平均プーリング演算を行い、演算結果を出力データ201に格納する例を表したものである。
【0050】
同図のハッチングを付した領域は、プーリング窓211の領域を表すものである。このプーリング窓は、平均プーリング演算におけるプーリング(pooling)の対象となる領域である。同図のプーリング窓211の行方向の幅及び列方向の高さをそれぞれkw及びkhにより表す。同図は、kw及びkhがそれぞれ値2の場合の例を表したものである。
【0051】
平均プーリング演算においても、横方向及び縦方向にプーリング窓211をずらしながら演算を行い、演算結果が出力データ201の対応する領域に格納される。平均プーリング演算は、次式により表すことができる。
【0052】
【数2】
式(2)に表したように、平均プーリング演算は、プーリング窓211に含まれるデータの平均を算出する演算である。同図は、4画素のデータの平均を算出する例を表したものである。
【0053】
ここで、式(1)においてsw=kw及びsh=khとし、バイアス値bを値0とし、係数210の全ての要素を1/(kh×kw)とすると、式(1)は、次のように表すことができる。
【0054】
【数3】
式(3)に表したように、式(1)の畳み込み演算は、式(2)の平均プーリング演算に帰着することとなる。上述の係数210の全ての要素を1/(kh×kw)にしてプーリング窓211の要素数の逆数を係数に設定し、畳み込み演算の式に代入することにより、平均プーリング演算を行うことができる。このため、畳み込み演算に使用する積和演算器173を平均プーリング演算に適用することができる。
【0055】
プーリング窓211の要素数の逆数は、図2の乗算データ保持部102に保持される。図2の選択部161により係数保持部101及び乗算データ保持部102の何れかを選択することにより、積和演算器173に畳み込み演算および平均プーリング演算を行わせることができる。
【0056】
[畳み込み演算処理]
図5は、本開示の第1の実施形態に係る畳み込み演算の処理手順の一例を示す図である。同図は、図2の演算部における畳み込み演算の処理手順の一例を表す流れ図である。まず、制御部11が畳み込み演算の入力データを入力データ保持部100に入力する(ステップS101)。次に、制御部11が係数を係数保持部101に入力する(ステップS102)。次に、選択部161が係数保持部101を選択する(ステップS103)。次に、積和演算器173が積和演算を行う(ステップS104)。次に、積和演算器173が演算結果を出力バッファ150に出力する(ステップS105)。以上の処理により畳み込み演算を行うことができる。
【0057】
[平均プーリング演算処理]
図6は、本開示の第1の実施形態に係る平均プーリング演算の処理手順の一例を示す図である。同図は、図2の演算部における平均プーリング演算の処理手順の一例を表す流れ図である。まず、制御部11が平均プーリング演算の入力データを入力データ保持部100に入力する(ステップS111)。この際、制御部11は、入力データ保持部100のうちのバイアス値を保持するBバッファ140に値0を入力する。次に、制御部11が乗算データを乗算データ保持部102に入力する(ステップS112)。次に、選択部161が乗算データ保持部102を選択する(ステップS113)。次に、積和演算器173が積和演算を行う(ステップS114)。次に、積和演算器173が演算結果を出力バッファ150に出力する(ステップS115)。以上の処理により平均プーリング演算を行うことができる。
【0058】
図5及び6に記載したように、選択部161の選択を制御することにより、畳み込み演算及び平均プーリング演算を切り替えることができる。なお、乗算データ保持部102には任意の値を入力することができる。このため、積和演算器173を入力データ保持部100に保持した値と乗算データ保持部102に保持した値との乗算器として使用することもできる。
【0059】
このように、本開示の第1の実施形態のニューラルネットワーク回路10は、畳み込み演算に使用する積和演算器173を平均プーリング演算の除算器として使用する。これにより、回路規模の増大を防ぐことができる。
【0060】
(2.第2の実施形態)
上述の第1の実施形態のニューラルネットワーク回路10は、平均プーリング演算に使用するプーリング窓の要素数の逆数である乗算データを乗算データ保持部102に保持していた。これに対し、本開示の第2の実施形態の撮像素子1は、乗算データを生成する点で、上述の第1の実施形態と異なる。
【0061】
[ニューラルネットワーク回路の構成]
図7は、本開示の第2の実施形態に係るニューラルネットワーク回路の構成例を示す図である。同図は、図2と同様に、ニューラルネットワーク回路10の構成例を表すブロック図である。同図のニューラルネットワーク回路10は、逆数算出部103を更に備える点で、図2のニューラルネットワーク回路10と異なる。
【0062】
逆数算出部103は、入力されるプーリング窓の要素数の逆数を算出するものである。この逆数算出部103は、算出した逆数を乗算データ保持部102に出力し、保持させる。
【0063】
これ以外のニューラルネットワーク回路10の構成は本開示の第1の実施形態におけるニューラルネットワーク回路10の構成と同様であるため、説明を省略する。
【0064】
このように、本開示の第2の実施形態のニューラルネットワーク回路10は、逆数算出部103を配置してプーリング窓の要素数の逆数を算出させることにより、平均プーリング演算の処理を簡略化することができる。
【0065】
なお、本明細書に記載された効果はあくまで例示であって限定されるものでは無く、また他の効果があってもよい。
【0066】
なお、本技術は以下のような構成も取ることができる。
(1)
畳み込み演算に使用するフィルタの係数を保持する係数保持部と、
平均プーリング演算に使用するプーリング窓の要素数の逆数を乗数データとして保持する乗数データ保持部と、
前記畳み込み演算及び前記平均プーリング演算の入力データを保持する入力データ保持部と、
積和演算を行う積和演算器と、
前記入力データ保持部に保持された入力データ及び前記係数保持部に保持された係数を前記積和演算器に入力して前記積和演算器に前記畳み込み演算のための積和計算を行わせる制御と、前記入力データ保持部に保持された入力データ及び前記乗数データ保持部に保持された乗数データを前記積和演算器に入力して前記積和演算器に前記平均プーリング演算のための積和演算を行わせる制御とを行う制御部と
を有するニューラルネットワーク回路。
(2)
前記係数保持部及び前記乗数データ保持部の何れかを選択してデータを出力する選択部
を更に有し、
前記制御部は、前記積和演算器に行わせる演算に基づいて前記選択部を更に制御する
前記(1)に記載のニューラルネットワーク回路。
(3)
前記プーリング窓の要素数の逆数を算出して前記乗数データ保持部に保持させる逆数算出部を更に有する前記(1)又は(2)に記載のニューラルネットワーク回路。
(4)
畳み込み演算及び平均プーリング演算の入力データを保持する入力データ保持部に保持される入力データ及び前記畳み込み演算に使用するフィルタの係数を保持する係数保持部に保持される係数を積和演算器に入力して前記積和演算器に前記畳み込み演算のための積和計算を行わせることと、
前記入力データ保持部に保持された入力データ及び平均プーリング演算に使用するプーリング窓の要素数の逆数を乗数データとして保持する乗数データ保持部に保持された乗数データを前記積和演算器に入力して前記積和演算器に前記平均プーリング演算のための積和演算を行わせることと
を有する演算方法。
【符号の説明】
【0067】
10 ニューラルネットワーク回路
11 制御部
40 バッファ選択部
100 入力データ保持部
101 係数保持部
102 乗算データ保持部
103 逆数算出部
110 Xバッファ
130 Wバッファ
140 Bバッファ
150 出力バッファ
161 選択部
173 積和演算器
図1
図2
図3A
図3B
図3C
図4
図5
図6
図7