(57)【要約】【課題】ニューラルネットワークによる演算処理を実現する演算処理装置において、配線の複雑化や回路規模の増大を回避しつつ、最も特徴量が反映されている最大値の演算結果データを次段の処理層に入力する。【解決手段】複数の処理層が階層的に接続されたニューラルネットワークによる演算を実行する演算処理装置１０は、下位側から上位側に向かって列状に配列される複数の演算ブロック１１Ａ〜１１Ｈと、演算ブロック１１Ａ〜１１Ｈにそれぞれ設けられ、演算を実行する複数の演算部１６Ａ〜１６Ｈと、上位側の演算ブロック１１Ｅ〜１１Ｈの演算部１６Ｅ〜１６Ｈによる演算結果データの値、および、下位側の演算ブロック１１Ａ〜１１Ｄの演算部１６Ａ〜１６Ｄによる演算結果データの値を比較し、値の大きい演算結果データを出力する比較部１７Ｈと、を備える。【選択図】図５
2017219960.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理層が階層的に接続されたニューラルネットワークによる演算を実行する演算処理装置（１０，２０，３０，４０）であって、
下位側から上位側に向かって列状に配列される複数の演算ブロック（１１Ａ〜１１Ｌ）と、
前記演算ブロックにそれぞれ設けられ、前記演算を実行する複数の演算部（１６Ａ〜１６Ｌ）と、
上位側の前記演算ブロックの前記演算部による演算結果データの値、および、下位側の前記演算ブロックの前記演算部による演算結果データの値を比較し、値の大きい演算結果データを出力する比較部（１７Ｈ，１７Ｌ）と、
を備える演算処理装置。
【請求項２】
前記演算ブロックに演算対称データを入力する複数のデータ入力部（１２Ａ〜１２Ｄ）をさらに備え、
前記データ入力部は、複数の前記演算ブロックに前記演算対称データを入力する請求項１に記載の演算処理装置。
【請求項３】
最も上位側の前記演算ブロックの前記比較部が出力する演算結果データを一時的に格納する一時的格納部（４１）をさらに備える請求項１または２に記載の演算処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置に関する。
【背景技術】
【０００２】
従来より、複数の処理層が階層的に接続されたニューラルネットワークによる演算を実行する演算処理装置が考えられている。特に画像認識を行う演算処理装置においては、いわゆる畳み込みニューラルネットワーク（ＣＮＮ：Convolutional Neural Network）が中核的な存在となっている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５１８４８２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
この種の畳み込みニューラルネットワークでは、前段の階層により得られる複数の異なる演算結果データ、つまり特徴量の抽出結果データに対して畳み込み演算処理、活性化処理、プーリング処理を実行し、その演算結果データを次段の階層に入力することを繰り返す。これにより、より高次元の特徴量の抽出を実現する。そのため、次段の階層には、より値の大きい演算結果データ、つまり、より特徴量が抽出されている演算結果データを入力することが好ましい。
【０００５】
従来の畳み込みニューラルネットワークでは、複数の演算ブロックが出力する演算結果データから最も値が大きい演算結果データを選択するための選択回路を設けることで、複数の演算結果データのうち最大値の演算結果データを次段の階層に入力するようにしている。しかし、従来構成では、演算ブロックの数に応じたデータ入力用の配線を選択回路に設けなければならず、配線の複雑化や回路規模の増大を招いている。
【０００６】
そこで、本発明は、ニューラルネットワークによる演算処理を実現する演算処理装置において、配線の複雑化や回路規模の増大を回避しつつ、最も特徴量が反映されている最大値の演算結果データを次段の処理層に入力することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る演算処理装置は、複数の処理層が階層的に接続されたニューラルネットワークによる演算を実行する演算処理装置であって、複数の演算ブロック、複数の演算部、比較部を備える。演算ブロックは、下位側から上位側に向かって列状に配列されている。演算部は、演算ブロックにそれぞれ設けられており、演算を実行する。比較部は、上位側の演算ブロックの演算部による演算結果データの値、および、下位側の演算ブロックの演算部による演算結果データの値を比較し、より値の大きい演算結果データを出力する。
【０００８】
この構成によれば、複数の演算ブロックが出力する演算結果データから最も値が大きい演算結果データを選択するための選択回路を不要とすることができ、配線の複雑化や回路規模の増大を回避しつつ、最も特徴量が反映されている最大値の演算結果データを次段の処理層に入力することができる。
【図面の簡単な説明】
【０００９】
【図１】畳み込みニューラルネットワークの構成例を概念的に示す図
【図２】中間層における演算処理の流れを視覚的に例示する図（その１）
【図３】中間層における演算処理の流れを視覚的に例示する図（その２）
【図４】特徴量抽出処理に用いられる一般的な演算式および関数を例示する図
【図５】第１実施形態に係る演算処理装置の構成例を概略的に示すブロック図
【図６】演算処理装置による演算処理の流れを視覚的に例示する図（その１）
【図７】演算処理装置による演算処理の流れを視覚的に例示する図（その２）
【図８】第２実施形態に係る演算処理装置の構成例を概略的に示すブロック図（その１）
【図９】第２実施形態に係る演算処理装置の構成例を概略的に示すブロック図（その２）
【図１０】演算処理装置による演算処理の流れを視覚的に例示する図
【図１１】第３実施形態に係る演算処理装置の構成例を概略的に示すブロック図
【発明を実施するための形態】
【００１０】
以下、演算処理装置に係る複数の実施形態について図面を参照しながら説明する。なお、各実施形態において実質的に同一の要素には同一の符号を付し、説明を省略する。
（ニューラルネットワーク）
図１には、詳しくは後述する演算処理装置１０，２０，３０，４０に適用されるニューラルネットワーク、この場合、畳み込みニューラルネットワークの構成例を概念的に示している。畳み込みニューラルネットワークＮは、入力データである画像データＤ１から所定の形状やパターンを認識する画像認識技術に応用されるものであり、中間層Ｎａと全結合層Ｎｂとを有する。中間層Ｎａは、複数の特徴量抽出処理層Ｎａ１，Ｎａ２・・・が階層的に接続された構成である。各特徴量抽出処理層Ｎａ１，Ｎａ２・・・は、それぞれ畳み込み層Ｃおよびプーリング層Ｐを備える。
【００１１】
次に、中間層Ｎａにおける処理の流れについて説明する。図２に例示するように、第１層目の特徴量抽出処理層Ｎａ１では、演算処理装置は、入力される画像データＤ１を例えばラスタスキャンにより所定サイズごとに走査する。そして、走査したデータに対して周知の特徴量抽出処理を施すことにより入力画像に含まれる複数の特徴量を抽出する。なお、第１層目の特徴量抽出処理層Ｎａ１では、例えば水平方向に延びる線状の特徴量や斜め方向に延びる線状の特徴量などといった比較的シンプルな単独の特徴量を抽出する。このとき、演算処理装置は、入力画像に含まれる複数の特徴にそれぞれ対応する複数の特徴マップを生成する。
【００１２】
第２層目の特徴量抽出処理層Ｎａ２では、演算処理装置は、前階層の特徴量抽出処理層Ｎａ１から入力される入力データを例えばラスタスキャンにより所定サイズごとに走査する。そして、走査したデータに対して周知の特徴量抽出処理を施すことにより入力画像に含まれる複数の特徴量を抽出する。なお、第２層目の特徴量抽出処理層Ｎａ２では、第１層目の特徴量抽出処理層Ｎａ１で抽出された複数の特徴量の空間的な位置関係などを考慮しながら統合させることで、より高次元の複合的な特徴量を抽出する。このとき、演算処理装置は、入力画像に含まれる複数の特徴にそれぞれ対応する複数の特徴マップを生成する。
【００１３】
第３層目の特徴量抽出処理層Ｎａ３では、演算処理装置は、前階層の特徴量抽出処理層Ｎａ２から入力される入力データを例えばラスタスキャンにより所定サイズごとに走査する。そして、走査したデータに対して周知の特徴量抽出処理を施すことにより入力画像に含まれる複数の特徴量を抽出する。なお、第３層目の特徴量抽出処理層Ｎａ３では、第２層目の特徴量抽出処理層Ｎａ２で抽出された複数の特徴量の空間的な位置関係などを考慮しながら統合させることで、より高次元の複合的な特徴量を抽出する。このとき、演算処理装置は、入力画像に含まれる複数の特徴にそれぞれ対応する複数の特徴マップを生成する。このように、複数の特徴量抽出処理層による特徴量の抽出処理を繰り返すことで、演算処理装置は、画像データＤ１に含まれる検出対象物体の画像認識を行う。
【００１４】
演算処理装置は、中間層Ｎａにおいて複数の特徴量抽出処理層Ｎａ１，Ｎａ２，Ｎａ３・・・による処理を繰り返すことで入力画像データＤ１に含まれる種々の特徴量を高次元で抽出していく。そして、演算処理装置は、中間層Ｎａの処理により得られた結果を中間演算結果データとして全結合層Ｎｂに出力する。
【００１５】
全結合層Ｎｂは、中間層Ｎａから得られる複数の中間演算結果データを結合して最終的な演算結果データを出力する。即ち、全結合層Ｎｂは、中間層Ｎａから得られる複数の中間演算結果データを結合し、さらに、その結合結果に対して重み係数を異ならせながら積和演算を行うことにより、最終的な演算結果データ、即ち、入力データである画像データＤ１に含まれる検出対象物を認識した画像データを出力する。このとき、積和演算による演算結果の値が大きい部分が検出対象物の一部または全部として認識される。
【００１６】
次に、演算処理装置による特徴量抽出処理の流れについて説明する。図３に例示するように、演算処理装置は、前階層の特徴量抽出処理層から入力される入力データＤｎを所定サイズ、この場合、図にてハッチングで示す３×３画素ごとのフィルタサイズにより走査する。なお、画素サイズは、３×３画素に限られず、例えば５×５画素など適宜変更することができる。
【００１７】
そして、演算処理装置は、走査したデータに対して、それぞれ周知の畳み込み演算を行う。そして、演算処理装置は、畳み込み演算後のデータに対して周知の活性化処理を行い、畳み込み層Ｃの出力とする。そして、演算処理装置は、畳み込み層Ｃの出力データＣｎに対して、所定サイズ、この場合、２×２画素ごとに周知のプーリング処理を行い、プーリング層Ｐの出力とする。そして、演算処理装置は、プーリング層Ｐの出力データＰｎを次の階層の特徴量抽出処理層に出力する。なお、画素サイズは、２×２画素に限られず適宜変更することができる。
【００１８】
図４には、畳み込み演算処理に用いられる畳み込み関数、活性化処理に用いられる関数、プーリング処理に用いられる関数の一般的な例を示している。即ち、畳み込み関数Ｙｉｊは、直前の層の出力Ｘｉｊに学習により得られる重み係数Ｗｐ，ｑを乗算した値を累積する関数となっている。なお、「Ｎ」は１サイクルの畳み込み演算処理により処理される画素サイズを示す。即ち、例えば１演算サイクルの画素サイズが「３×３」画素である場合、Ｎの値は「２」である。また、畳み込み関数Ｙｉｊは、累積値に所定のバイアス値を加算する関数としてもよい。また、畳み込み関数は、全結合処理にも対応し得る積和演算が可能な関数であれば、種々の関数を採用することができる。また、活性化処理には、周知のロジスティックジグモイド関数やＲｅＬＵ関数（Rectified Linear Units）などが用いられる。また、プーリング処理には、入力されるデータの最大値を出力する周知の最大プーリング関数や、入力されるデータの平均値を出力する周知の平均プーリング関数などが用いられる。
【００１９】
上述した畳み込みニューラルネットワークＮによれば、コンボルーション層Ｃによる処理およびプーリング層Ｐによる処理が繰り返されることにより、より高次元の特徴量の抽出が可能となる。次に、この畳み込みニューラルネットワークＮを適用した演算処理装置に係る複数の実施形態について説明する。
【００２０】
（第１実施形態）
図５に例示する演算処理装置１０は、複数、この場合、８つの演算ブロック１１Ａ〜１１Ｈ、複数、この場合、８つの入力用メモリ１２Ａ〜１２Ｈ、および、１つの出力用メモリ１３を備える。入力用メモリ１２Ａ〜１２Ｈは、データ入力部の一例である。演算処理装置１０は、１つの演算ブロック１１Ａ〜１１Ｈに対し１つの入力用メモリ１２Ａ〜１２Ｈを備えている。そして、演算処理装置１０は、１つの演算ブロック１１Ａ〜１１Ｈおよび１つの入力用メモリ１２Ａ〜１２Ｈからなる組を、下流側から上流側に向けて列状に配列した構成となっている。なお、説明の便宜上、図の下側を下流側、図の上側を上流側と定義する。よって、最も下位側の演算ブロックおよび入力用メモリは演算ブロック１１Ａおよび入力用メモリ１２Ａであり、最も上位側の演算ブロックおよび入力用メモリは演算ブロック１１Ｈおよび入力用メモリ１２Ｈである。
【００２１】
演算処理装置１０は、複数、この場合、４つの演算ブロック１１Ａ〜１１Ｄ，１１Ｅ〜１１Ｈごとに複数、この場合、２つの演算ブロック群１５Ａ，１５Ｂを設けている。以下、最も下位側の演算ブロック群１５Ａを下位側演算ブロック群１５Ａ、最も上位側の演算ブロック群１５Ｂを上位側演算ブロック群１５Ｂと称する。
【００２２】
演算ブロック１１Ａ〜１１Ｈは、それぞれ演算部１６Ａ〜１６Ｈを備える。演算部１６Ａ〜１６Ｈは、それぞれ、図示しない畳み込み演算処理部、累積処理部、活性化処理部、プーリング処理部などを備えている。これらの処理部は、例えば回路などのハードウェアにより構成してもよいし、ソフトウェアにより構成してもよいし、ハードウェアとソフトウェアの組み合わせにより構成してもよい。畳み込み演算処理部は、前階層から入力される入力データに対して周知の畳み込み演算処理を実行して、その処理結果データを累積処理部に出力する。
【００２３】
累積処理部は、例えば加算器などで構成されている。累積処理部は、下位側の演算ブロック１１Ａ〜１１Ｈの累積処理部からデータが入力される場合には、そのデータを、自身と同じ演算ブロック１１Ａ〜１１Ｈの畳み込み演算処理部から入力されるデータに加算する。これにより、複数の演算ブロック１１Ａ〜１１Ｈは、それぞれの演算ブロック１１Ａ〜１１Ｈの畳み込み演算処理部による演算結果データを、下位側から上位側に向かって順次累積することが可能となっている。
【００２４】
累積処理部は、下位側の演算ブロック１１Ａ〜１１Ｈからデータが入力されない場合には、自身と同じ演算ブロック１１Ａ〜１１Ｈの畳み込み演算処理部から入力されるデータを、自身と同じ演算ブロック１１Ａ〜１１Ｈの活性化処理部に出力する。また、累積処理部は、下位側の演算ブロック１１Ａ〜１１Ｈからデータが入力される場合には、自身と同じ演算ブロック１１Ａ〜１１Ｈの畳み込み演算処理部から入力されるデータに下位側の演算ブロック１１Ａ〜１１Ｈから入力されるデータを加算した累積データを、自身と同じ演算ブロック１１Ａ〜１１Ｈの活性化処理部に出力する。
【００２５】
活性化処理部は、累積処理部から入力されるデータに対して周知の活性化処理を実行して、その処理結果データをプーリング処理部に出力する。プーリング処理部は、活性化処理部による処理結果データに対して周知のプーリング処理を実行して、その処理結果データを出力する。この場合、プーリング処理部は、全ての演算部１６Ａ〜１６Ｈに備えられているものが有効化されているわけではなく、下位側演算ブロック群１５Ａを構成する複数、この場合、４つの演算部１６Ａ〜１６Ｄのうち最も上位側の演算部１６Ｄ、および、上位側演算ブロック群１５Ｂを構成する複数、この場合、４つの演算部１６１６Ｅ〜１６Ｈのうち最も上位側の演算部１６Ｈのみが有効化されている。即ち、下位側演算ブロック群１５Ａの最上位の演算部１６Ｄおよび上位側演算ブロック群１５Ｂの最上位の演算部１６Ｈのみがプーリング処理を実行するように構成されている。
【００２６】
入力用メモリ１２Ａ〜１２Ｈは、それぞれ対応する演算ブロック１１Ａ〜１１Ｈに対し演算対称データ、つまり、前階層の演算処理により得られた演算結果データを入力する。この場合、入力用メモリ１２Ａ〜１２Ｈは、それぞれ組をなす演算ブロック１１Ａ〜１１Ｈに対し、１対１で演算対称データを入力するようになっている。なお、この場合、入力用メモリ１２Ａ，１２Ｅには同じデータが格納され、入力用メモリ１２Ｂ，１２Ｆには同じデータが格納され、入力用メモリ１２Ｃ，１２Ｇには同じデータが格納され、入力用メモリ１２Ｄ，１２Ｈには同じデータが格納されるように構成されている。
【００２７】
出力用メモリ１３は、複数の演算ブロック１１Ａ〜１１Ｈが出力する複数の演算結果データのうち最も値が大きい演算結果データを記憶する。出力用メモリ１３に格納される演算結果データは、次階層の演算処理時において、入力用メモリ１２Ａ〜１２Ｈに演算対称データとして出力される。
【００２８】
そして、上位側演算ブロック群１５Ｂを構成する複数の演算ブロック１１Ｅ〜１１Ｈには、さらに比較部１７Ｅ〜１７Ｈが設けられている。比較部１７Ｅ〜１７Ｈは、例えば比較器などで構成されている。この場合、複数の比較部１７Ｅ〜１７Ｈのうち最も下位側の比較部１７Ｅは、下位側演算ブロック群１５Ａから出力される演算結果データを、そのまま上位側の比較部１７Ｆに出力する。そして、比較部１７Ｆは、比較部１７Ｅから出力された演算結果データを、そのまま上位側の比較部１７Ｇに出力する。そして、比較部１７Ｇは、比較部１７Ｆから出力された演算結果データを、そのまま上位側の比較部１７Ｈに出力する。即ち、複数の比較部１７Ｅ〜１７Ｈのうち最も上位側の比較部１７Ｈを除く比較部１７Ｅ〜１７Ｇは、下位側から入力される演算結果データをそのまま上位側に出力するようになっている。よって、下位側演算ブロック群１５Ａの最上位の演算部１６Ｄが出力する演算結果データが、比較部１７Ｅ〜１７Ｇを経由して、そのまま上位側演算ブロック群１５Ｂの最上位の比較部１７Ｈに到達するようになっている。
【００２９】
そして、最も上位側の比較部１７Ｈは、当該比較部１７Ｈと同じ演算ブロック１１Ｈの演算部１６Ｈが出力する演算結果データの値と、下位側の比較部１７Ｇが出力する演算結果データ、つまり、下位側演算ブロック群１５Ａの演算部１６Ｄが出力する演算結果データの値とを比較する。そして、比較部１７Ｈは、両演算結果データのうち値の大きい演算結果データを出力用メモリ１３に出力する。これにより、出力用メモリ１３には、２つの演算ブロック群１５Ａ，１５Ｂが出力する演算結果データのうち最大値の演算結果データが格納されるようになる。
【００３０】
次に、演算処理装置１０による演算処理の流れについて説明する。図６に例示するように、演算処理装置１０は、入力データＤｎに対し、下位側演算ブロック群１５Ａを構成する複数の演算部１６Ａ〜１６Ｄ、および、上位側演算ブロック群１５Ｂを構成する複数の演算部１６Ｅ〜１６Ｈにより、それぞれ畳み込み演算処理を実行する。そして、演算処理装置１０は、下位側演算ブロック群１５Ａの演算部１６Ａ〜１６Ｄによる演算結果データを加算し、これにプーリング処理を施して、下位側の演算結果データＰｎ１を出力する。また、演算処理装置１０は、上位側演算ブロック群１５Ｂの演算部１６Ｅ〜１６Ｈによる演算結果データを加算し、これにプーリング処理を施して、上位側の演算結果データＰｎ２を出力する。そして、演算処理装置１０は、演算結果データＰｎ１，Ｐｎ２のうち最も値が大きい演算結果データを出力用メモリ１３に格納する。
【００３１】
また、図７に例示するように、演算処理装置１０は、入力用メモリ１２Ａ，１２Ｅに同じデータを格納し、入力用メモリ１２Ｂ，１２Ｆに同じデータを格納し、入力用メモリ１２Ｃ，１２Ｇに同じデータを格納し、入力用メモリ１２Ｄ，１２Ｈに同じデータを格納する。そして、演算処理装置１０は、２つの演算ブロック群１５Ａ，１５Ｂにおいてそれぞれ畳み込み演算およびプーリング処理を実行し、両演算ブロック群１５Ａ，１５Ｂが出力する演算結果データのうち最も値が大きい演算結果データを出力用メモリ１３に格納する。
【００３２】
演算処理装置１０によれば、最も上位側の比較部１７Ｈは、上位側の演算ブロック群１５Ｂの演算部１６Ｅ〜１６Ｈによる演算結果データの値、および、下位側の演算ブロック群１５Ａの演算部１６Ａ〜１６Ｄによる演算結果データの値を比較し、値の大きい演算結果データを出力用メモリ１３に出力する。この構成によれば、複数の演算ブロックが出力する演算結果データから最も値が大きい演算結果データを選択するための選択回路を不要とすることができ、配線の複雑化や回路規模の増大を回避しつつ、最も特徴量が反映されている最大値の演算結果データを次段の処理層に入力することができる。
【００３３】
（第２実施形態）
図８に例示する演算処理装置２０は、１つの入力用メモリが複数の演算ブロックに対し、同じ演算対称データを入力するようにした構成である。即ち、演算処理装置２０によれば、入力用メモリ１２Ａは、演算ブロック１１Ａ，１１Ｅに演算対称データを入力し、入力用メモリ１２Ｂは、演算ブロック１１Ｂ，１１Ｆに演算対称データを入力し、入力用メモリ１２Ｃは、演算ブロック１１Ｃ，１１Ｇに演算対称データを入力し、入力用メモリ１２Ｄは、演算ブロック１１Ｄ，１１Ｈに演算対称データを入力する。なお、この場合、入力用メモリ１２Ｅ〜１２Ｈは、何れも演算対称データを格納しておらず、何れの演算ブロック１１Ａ〜１１Ｈにも演算対称データを入力しない。
【００３４】
また、図９に例示する演算処理装置３０は、１２個の演算ブロック１１Ａ〜１１Ｌ、１２個の入力用メモリ１２Ａ〜１２Ｌ、および、１つの出力用メモリ１３を備える。そして、演算処理装置３０は、４つの演算ブロック１１Ａ〜１１Ｄ，１１Ｅ〜１１Ｈ，１１Ｉ〜１１Ｌごとに３つの演算ブロック群１５Ａ，１５Ｂ，１５Ｃを設けている。演算ブロック群１５Ａは最も下位側の演算ブロック群であり、演算ブロック群１５Ｃは最も上位側の演算ブロックであり、演算ブロック群１５Ｂは上位側と中位側との間に設けられる中位の演算ブロック群である。
【００３５】
そして、演算処理装置３０によれば、入力用メモリ１２Ａは、演算ブロック１１Ａ，１１Ｅ，１１Ｉに演算対称データを入力し、入力用メモリ１２Ｂは、演算ブロック１１Ｂ，１１Ｆ，１１Ｊに演算対称データを入力し、入力用メモリ１２Ｃは、演算ブロック１１Ｃ，１１Ｇ，１１Ｋに演算対称データを入力し、入力用メモリ１２Ｄは、演算ブロック１１Ｄ，１１Ｈ，１１Ｌに演算対称データを入力する。なお、この場合、入力用メモリ１２Ｅ〜１２Ｌは、何れも演算対称データを格納しておらず、何れの演算ブロック１１Ａ〜１１Ｈにも演算対称データを入力しない。
【００３６】
そして、演算処理装置３０によれば、最上位の比較部１７Ｌは、３つの演算ブロック群１５Ａ〜１５Ｃが出力する複数の演算結果データのうち最も値が大きい演算結果データを選択して出力用メモリ１３に出力する。
【００３７】
図１０に例示するように、演算処理装置３０は、入力用メモリ１２Ａから３つの演算ブロック群１５Ａ，１５Ｂ，１５Ｃに演算対称データを入力し、入力用メモリ１２Ｂから３つの演算ブロック群１５Ａ，１５Ｂ，１５Ｃに演算対称データを入力し、入力用メモリ１２Ｃから３つの演算ブロック群１５Ａ，１５Ｂ，１５Ｃに演算対称データを入力し、入力用メモリ１２Ｄから３つの演算ブロック群１５Ａ，１５Ｂ，１５Ｃに演算対称データを入力する。そして、演算処理装置３０は、３つの演算ブロック群１５Ａ，１５Ｂ，１５Ｃにおいてそれぞれ畳み込み演算およびプーリング処理を実行し、複数の演算ブロック群１５Ａ，１５Ｂ，１５Ｃが出力する演算結果データのうち最も値が大きい演算結果データを出力用メモリ１３に格納する。
【００３８】
演算処理装置２０，３０によっても、複数の演算ブロックが出力する演算結果データから最も値が大きい演算結果データを選択するための選択回路を不要とすることができ、配線の複雑化や回路規模の増大を回避しつつ、最も特徴量が反映されている最大値の演算結果データを次段の処理層に入力することができる。
【００３９】
また、１つの入力用メモリから複数の演算ブロックに演算対称データを入力することができるため、１対１の関係で入力用メモリから演算ブロックにデータを入力する場合に比べ、データの転送量を抑えることができ、消費電力の低減を図ることができる。
【００４０】
（第３実施形態）
図１１に例示する演算処理装置４０は、演算処理装置１０にさらに一時メモリ４１を備えた構成である。一時メモリ４１は、一時的格納部の一例であり、最も上位側の演算ブロック１１Ｈの比較部１７Ｈが出力する演算結果データ、つまり、最大値の演算結果データを一時的に格納する。８つの演算ブロック１１Ａ〜１１Ｈに対して、例えば１６個の演算対称データを演算する必要がある場合、１回の演算サイクルにより全ての演算対称データに対し演算処理を実行することはできない。
【００４１】
そこで、演算処理装置４０は、まず、１回目の演算サイクルにおいて、演算ブロック１１Ａ〜１１Ｈの数と同じ８つの演算対称データに対し演算処理を実行し、最大値の演算結果データを一時メモリ４１に一時的に格納する。そして、演算処理装置４０は、２回目の演算サイクルにおいて、残りの８つの演算対称データに対し演算処理を実行し、最大値の演算結果データを得る。そして、演算処理装置４０は、比較部１７Ｈにおいて、一時メモリ４１に格納されている１回目の演算サイクルにより得られた最大値の演算結果データと、２回目の演算サイクルにより得られた最大値の演算結果データとを比較する。そして、比較部１７Ｈは、１サイクル目および２サイクル目の演算結果データのうち、より値が大きい演算結果データを出力用メモリ１３に出力する。
【００４２】
演算処理装置４０によれば、演算対称データの数が演算ブロックの数よりも多い場合であっても、複数の演算対称データを演算ブロックの数で分割して演算処理を複数サイクルで実行し、それぞれの演算サイクルにおいて得られる最大値の演算結果データを一時的に保存しながら、最終的に、最も値が大きい演算結果データを出力することができる。
【００４３】
（その他の実施形態）
なお、本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。例えば、上述した複数の実施形態を適宜組み合わせて実施してもよい。
【符号の説明】
【００４４】
図面中、１０，２０，３０，４０は演算処理装置、１１Ａ〜１１Ｌは演算ブロック、１６Ａ〜１６Ｌは演算部、１７Ｈ，１７Ｌは比較部、１２Ａ〜１２Ｄは入力用メモリ（データ入力部）、４１は一時メモリ（一時的格納部）を示す。
【図１】
2017219960.tif 000003
【図２】
2017219960.tif 000004
【図３】
2017219960.tif 000005
【図４】
2017219960.tif 000006
【図５】
2017219960.tif 000007
【図６】
2017219960.tif 000008
【図７】
2017219960.tif 000009
【図８】
2017219960.tif 000010
【図９】
2017219960.tif 000011
【図１０】
2017219960.tif 000012
【図１１】
2017219960.tif 000013