JP2016099707A - Arithmetic processing unit - Google Patents
Arithmetic processing unit Download PDFInfo
- Publication number
- JP2016099707A JP2016099707A JP2014234487A JP2014234487A JP2016099707A JP 2016099707 A JP2016099707 A JP 2016099707A JP 2014234487 A JP2014234487 A JP 2014234487A JP 2014234487 A JP2014234487 A JP 2014234487A JP 2016099707 A JP2016099707 A JP 2016099707A
- Authority
- JP
- Japan
- Prior art keywords
- result data
- calculation result
- unit
- arithmetic processing
- processing unit
- 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.)
- Granted
Links
- 230000001186 cumulative effect Effects 0.000 claims abstract description 29
- 238000004364 calculation method Methods 0.000 claims description 202
- 238000013500 data storage Methods 0.000 claims description 32
- 238000011176 pooling Methods 0.000 claims description 26
- 230000004913 activation Effects 0.000 claims description 23
- 238000013527 convolutional neural network Methods 0.000 claims description 10
- 238000010977 unit operation Methods 0.000 claims description 8
- 230000008878 coupling Effects 0.000 abstract description 25
- 238000010168 coupling process Methods 0.000 abstract description 25
- 238000005859 coupling reaction Methods 0.000 abstract description 25
- 238000013528 artificial neural network Methods 0.000 abstract description 7
- 230000006870 function Effects 0.000 description 40
- 238000000034 method Methods 0.000 description 39
- 238000000605 extraction Methods 0.000 description 26
- 238000001994 activation Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 10
- 239000000284 extract Substances 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 239000002131 composite material Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
Images
Landscapes
- Complex Calculations (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
Description
本発明は、演算処理装置に関する。 The present invention relates to an arithmetic processing device.
従来より、複数の処理層が階層的に接続されたニューラルネットワークによる演算を実行する演算処理装置が考えられている。特に画像認識を行う演算処理装置においては、いわゆる畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)が中核的な存在となっている。 2. Description of the Related Art Conventionally, there has been considered an arithmetic processing device that executes arithmetic operations using a neural network in which a plurality of processing layers are hierarchically connected. Particularly in arithmetic processing devices that perform image recognition, a so-called convolutional neural network (CNN) is at the core.
畳み込みニューラルネットワークによれば、入力される画像データに対して中間層の処理および全結合層の処理が順次施されることにより、画像に含まれる対象物が認識された最終的な演算結果データが得られる。中間層では、複数の特徴量抽出処理層が階層的に接続されており、各処理層において、前階層から入力される入力データに対して畳み込み演算処理、活性化処理、プーリング処理を実行する処理が行われる。中間層は、このように各処理層における処理を繰り返すことで入力画像データに含まれる特徴量を高次元で抽出し、その結果を中間演算結果データとして出力する。全結合層では、中間層から得られる複数の中間演算結果データを結合して最終的な演算結果データを出力する。 According to the convolutional neural network, the final calculation result data in which the object included in the image is recognized is obtained by sequentially performing the intermediate layer processing and the total connection layer processing on the input image data. can get. In the intermediate layer, a plurality of feature quantity extraction processing layers are hierarchically connected, and in each processing layer, processing for executing convolution operation processing, activation processing, and pooling processing on input data input from the previous layer Is done. In this way, the intermediate layer repeats the processing in each processing layer to extract the feature amount included in the input image data in a high dimension, and outputs the result as intermediate operation result data. In the fully connected layer, a plurality of intermediate operation result data obtained from the intermediate layer are combined to output final operation result data.
このように畳み込みニューラルネットワークにおいては、中間層で行われる処理と全結合層で行われる処理とが異なる。そのため、従来の構成では、中間層を実現する回路と全結合層を実現する回路とを別々に設けており、従って、演算処理装置全体として回路規模が大きくなるという課題を有している。 Thus, in the convolutional neural network, the processing performed in the intermediate layer is different from the processing performed in the fully connected layer. For this reason, in the conventional configuration, a circuit that realizes the intermediate layer and a circuit that realizes the fully coupled layer are provided separately, and therefore, there is a problem that the circuit scale of the entire arithmetic processing device becomes large.
そこで、本発明は、中間層を実現する回路を利用して全結合層を実現する回路を構成することにより、ニューラルネットワークによる演算処理を実現する演算処理装置の全体の回路規模を小さくすることを目的とする。 Therefore, the present invention reduces the overall circuit scale of an arithmetic processing unit that realizes arithmetic processing by a neural network by configuring a circuit that realizes a fully connected layer using a circuit that realizes an intermediate layer. Objective.
本発明に係る演算処理装置は、中間層の処理の後に行う全結合層の処理を以下のように行う。即ち、演算処理装置は、畳み込み演算手段、活性化手段、プーリング手段による一連の特徴量抽出処理により得られる中間演算結果データ、つまり、中間層の処理により得られる中間演算結果データに対して、複数の領域に分割された探索窓を走査しながら、同一の領域に含まれる画像データを単位画像データとして順次読み出す。そして、演算処理装置は、順次読み出す単位画像データに対して畳み込み演算手段による演算処理を実行することにより単位演算結果データを順次生成する。また、演算処理装置は、順次生成する単位演算結果データを累積して累積演算結果データを生成する。そして、演算処理装置は、単位演算結果データおよび累積演算結果データを第1記憶手段および第2記憶手段に交互に切り替えながら格納する処理を繰り返す。そして、演算処理装置は、最終的に第1記憶手段または第2記憶手段に記憶されている累積演算結果データを選択し、その累積演算結果データを最終演算結果データ、つまり、全結合層の処理による最終的な演算結果データとして出力する。 The arithmetic processing unit according to the present invention performs the processing of all coupled layers performed after the processing of the intermediate layer as follows. In other words, the arithmetic processing unit is provided with a plurality of intermediate operation result data obtained by a series of feature amount extraction processing by the convolution operation means, activation means, and pooling means, that is, for intermediate operation result data obtained by intermediate layer processing. The image data included in the same area is sequentially read out as unit image data while scanning the search window divided into the areas. Then, the arithmetic processing device sequentially generates unit calculation result data by executing arithmetic processing by the convolution calculation means on the unit image data to be read sequentially. Further, the arithmetic processing unit generates united operation result data by accumulating sequentially generated unit operation result data. The arithmetic processing device repeats the process of storing the unit calculation result data and the cumulative calculation result data while alternately switching the first calculation means and the second calculation means. Then, the arithmetic processing unit finally selects the cumulative calculation result data stored in the first storage means or the second storage means, and the cumulative calculation result data is processed into the final calculation result data, that is, the process of all coupling layers. Is output as final calculation result data.
即ち、演算処理装置によれば、中間層を実現する回路の一部、つまり畳み込み演算手段を利用して全結合層の処理を行うようにした。従って、中間層を実現する回路と別個に全結合層を実現する回路を設ける必要がなく、ニューラルネットワークによる演算処理を実現する演算処理装置の全体の回路規模を小さくすることができる。 That is, according to the arithmetic processing unit, the processing of all the coupling layers is performed using a part of the circuit that realizes the intermediate layer, that is, the convolution arithmetic means. Therefore, it is not necessary to provide a circuit that realizes the fully coupled layer separately from the circuit that realizes the intermediate layer, and the overall circuit scale of the arithmetic processing device that realizes the arithmetic processing by the neural network can be reduced.
さらに、全結合層の処理を多階層にわたって行う場合には、演算処理装置は、中間演算結果データ、単位演算結果データ、累積演算結果データを格納可能な3つの演算結果データ格納手段を備える構成とするとよい。そして、演算処理装置は、これら複数の演算結果データ格納手段のうち何れか1つを中間演算結果データ格納手段として選択し、残りの2つを第1記憶手段および第2記憶手段として選択して使用する構成とするとよい。 Further, in the case where all the connected layers are processed in multiple layers, the arithmetic processing unit includes three arithmetic result data storage means capable of storing intermediate arithmetic result data, unit arithmetic result data, and cumulative arithmetic result data. Good. The arithmetic processing unit selects any one of the plurality of calculation result data storage means as the intermediate calculation result data storage means, and selects the remaining two as the first storage means and the second storage means. It is good to use the configuration.
この構成によれば、今回の階層における最終演算結果データは、3つの演算結果データ格納手段のうち何れか1つに格納される。そのため、次の階層における処理では、その最終演算結果データを格納する演算結果データ格納手段を中間演算結果データ格納手段としてそのまま用いることができる。従って、全結合層の処理を多階層にわたって行う場合であっても、効率良く処理を進めることができる。また、このように3つの演算結果データ格納手段をローテーションさせながら中間演算結果データ格納手段、第1記憶手段、第2記憶手段として使用する構成によれば、全結合層の処理を多階層にわたって行うための回路を別個に設ける必要がない。従って、演算処理装置の回路規模を大きくしなくとも、全結合層の処理を多階層にわたって行うことができる。 According to this configuration, the final calculation result data in the current hierarchy is stored in any one of the three calculation result data storage means. Therefore, in the processing in the next hierarchy, the operation result data storage means for storing the final operation result data can be used as it is as the intermediate operation result data storage means. Therefore, even when the processing of all the connected layers is performed over multiple layers, the processing can be efficiently performed. Further, according to the configuration in which the three calculation result data storage units are rotated as described above and used as the intermediate calculation result data storage unit, the first storage unit, and the second storage unit, the processing of all the connected layers is performed in multiple layers. Therefore, it is not necessary to provide a separate circuit. Therefore, it is possible to perform processing of all coupled layers over multiple layers without increasing the circuit scale of the arithmetic processing unit.
また、演算処理装置は、複数の中間演算結果データから得られる複数の最終演算結果データを畳み込み演算手段の1演算サイクルにより処理される画素サイズと同じサイズの格納領域にまとめて格納する構成とするとよい。全結合層の処理には、最終演算結果データを得るための前段の処理と、この最終演算結果データに対して重み係数を異ならせながら積和演算を行う後段の処理とが含まれる。前段の処理により得られる最終演算結果データを畳み込み演算手段の1演算サイクルにより処理される画素サイズに合わせて格納しておけば、後段の処理における積和演算も畳み込み演算手段を利用して行うことができる。そのため、全結合層の後段の処理を実現するための回路を別個に設ける必要がなく、演算処理装置の全体の回路規模を抑えることができる。 Further, the arithmetic processing unit is configured to collectively store a plurality of final calculation result data obtained from a plurality of intermediate calculation result data in a storage area having the same size as the pixel size processed in one calculation cycle of the convolution calculation means. Good. The processing of all coupling layers includes a first-stage process for obtaining final calculation result data and a second-stage process for performing a product-sum operation with different weighting coefficients for the final calculation result data. If the final operation result data obtained by the preceding process is stored in accordance with the pixel size processed in one operation cycle of the convolution operation means, the product-sum operation in the subsequent process is also performed using the convolution operation means. Can do. Therefore, it is not necessary to separately provide a circuit for realizing the subsequent processing of all the coupling layers, and the entire circuit scale of the arithmetic processing unit can be suppressed.
以下、演算処理装置の複数の実施形態について図面を参照しながら説明する。なお、各実施形態において実質的に同一の要素には同一の符号を付し、説明を省略する。
(ニューラルネットワーク)
図1には、詳しくは後述する演算処理装置100,200に適用されるニューラルネットワーク、この場合、畳み込みニューラルネットワークの構成を概念的に示している。畳み込みニューラルネットワークNは、入力データである画像データD1から所定の形状やパターンを認識する画像認識技術に応用されるものであり、中間層Naと全結合層Nbとを有する。中間層Naは、複数の特徴量抽出処理層Na1,Na2・・・が階層的に接続された構成である。各特徴量抽出処理層Na1,Na2・・・は、それぞれ畳み込み層Cおよびプーリング層Pを備える。
Hereinafter, a plurality of embodiments of an arithmetic processing device will be described with reference to the drawings. In each embodiment, substantially the same elements are denoted by the same reference numerals, and description thereof is omitted.
(neural network)
FIG. 1 conceptually shows the configuration of a neural network, in this case, a convolutional neural network, applied to
次に、中間層Naにおける処理の流れについて説明する。図2に例示するように、第1層目の特徴量抽出処理層Na1では、演算処理装置は、入力される画像データD1を例えばラスタスキャンにより所定サイズごとに走査する。そして、走査したデータに対して周知の特徴量抽出処理を施すことにより入力画像に含まれる特徴量を抽出する。なお、第1層目の特徴量抽出処理層Na1では、例えば水平方向に延びる線状の特徴量や斜め方向に延びる線状の特徴量などといった比較的シンプルな単独の特徴量を抽出する。 Next, the flow of processing in the intermediate layer Na will be described. As illustrated in FIG. 2, in the first feature amount extraction processing layer Na1, the arithmetic processing unit scans the input image data D1 for each predetermined size by, for example, raster scanning. And the feature-value contained in an input image is extracted by performing the known feature-value extraction process with respect to the scanned data. Note that the first feature amount extraction processing layer Na1 extracts relatively simple single feature amounts such as a linear feature amount extending in the horizontal direction and a linear feature amount extending in the oblique direction.
第2層目の特徴量抽出処理層Na2では、演算処理装置は、前階層の特徴量抽出処理層Na1から入力される入力データを例えばラスタスキャンにより所定サイズごとに走査する。そして、走査したデータに対して周知の特徴量抽出処理を施すことにより入力画像に含まれる特徴量を抽出する。なお、第2層目の特徴量抽出処理層Na2では、第1層目の特徴量抽出処理層Na1で抽出された複数の特徴量の空間的な位置関係などを考慮しながら統合させることで、より高次元の複合的な特徴量を抽出する。 In the second feature amount extraction processing layer Na2, the arithmetic processing unit scans the input data input from the preceding feature amount extraction processing layer Na1 for each predetermined size by, for example, raster scanning. And the feature-value contained in an input image is extracted by performing the known feature-value extraction process with respect to the scanned data. In addition, in the feature amount extraction processing layer Na2 of the second layer, by integrating the spatial positional relationship of a plurality of feature amounts extracted by the feature amount extraction processing layer Na1 of the first layer, Extract higher-dimensional composite features.
第3層目の特徴量抽出処理層Na3では、演算処理装置は、前階層の特徴量抽出処理層Na2から入力される入力データを例えばラスタスキャンにより所定サイズごとに走査する。そして、走査したデータに対して周知の特徴量抽出処理を施すことにより入力画像に含まれる特徴量を抽出する。なお、第3層目の特徴量抽出処理層Na3では、第2層目の特徴量抽出処理層Na2で抽出された複数の特徴量の空間的な位置関係などを考慮しながら統合させることで、より高次元の複合的な特徴量を抽出する。このように、複数の特徴量抽出処理層による特徴量の抽出処理を繰り返すことで、演算処理装置は、画像データD1に含まれる検出対象物体の画像認識を行う。 In the third feature quantity extraction processing layer Na3, the arithmetic processing unit scans the input data input from the previous feature quantity extraction processing layer Na2 for each predetermined size by, for example, raster scanning. And the feature-value contained in an input image is extracted by performing the known feature-value extraction process with respect to the scanned data. The feature extraction processing layer Na3 of the third layer is integrated by considering the spatial positional relationship of a plurality of feature amounts extracted by the feature extraction processing layer Na2 of the second layer, Extract higher-dimensional composite features. In this way, by repeating the feature amount extraction processing by the plurality of feature amount extraction processing layers, the arithmetic processing device performs image recognition of the detection target object included in the image data D1.
演算処理装置は、中間層Naにおいて複数の特徴量抽出処理層Na1,Na2,Na3・・・による処理を繰り返すことで入力画像データD1に含まれる種々の特徴量を高次元で抽出していく。そして、演算処理装置は、中間層Naの処理により得られた結果を中間演算結果データとして全結合層Nbに出力する。 The arithmetic processing unit extracts various feature amounts included in the input image data D1 in a high dimension by repeating the processing by the plurality of feature amount extraction processing layers Na1, Na2, Na3... In the intermediate layer Na. Then, the arithmetic processing unit outputs the result obtained by the processing of the intermediate layer Na to the all coupling layer Nb as intermediate operation result data.
全結合層Nbは、中間層Naから得られる複数の中間演算結果データを結合して最終的な演算結果データを出力する。即ち、全結合層Nbは、中間層Naから得られる複数の中間演算結果データを結合し、さらに、その結合結果に対して重み係数を異ならせながら積和演算を行うことにより、最終的な演算結果データ、即ち、入力データである画像データD1に含まれる検出対象物を認識した画像データを出力する。このとき、積和演算による演算結果の値が大きい部分が検出対象物の一部または全部として認識される。 The total coupling layer Nb combines a plurality of intermediate calculation result data obtained from the intermediate layer Na and outputs final calculation result data. That is, the total connection layer Nb combines a plurality of intermediate operation result data obtained from the intermediate layer Na, and further performs a sum-of-products operation while varying the weighting coefficient for the combined result, thereby obtaining a final operation. Result data, that is, image data in which the detection target included in the image data D1 as input data is recognized is output. At this time, the part where the value of the result of the product-sum operation is large is recognized as a part or all of the detection target.
なお、後述する各実施形態においては、演算処理装置は、中間層Naを実現する回路の一部を利用して全結合層Nbを実現する回路を構成している。即ち、本発明に係る演算処理装置は、中間層を実現する回路と全結合層を実現する回路と共通化した構成となっている。 In each of the embodiments described later, the arithmetic processing unit constitutes a circuit that realizes the entire coupling layer Nb by using a part of the circuit that realizes the intermediate layer Na. That is, the arithmetic processing unit according to the present invention has a configuration in which a circuit for realizing the intermediate layer and a circuit for realizing the fully coupled layer are shared.
次に、演算処理装置による特徴量抽出処理の流れについて説明する。図3に例示するように、演算処理装置は、前階層の特徴量抽出処理層から入力される入力データDnを所定サイズ、この場合、図にてハッチングで示す3×3画素ごとに走査する。なお、画素サイズは、3×3画素に限られず適宜変更することができる。 Next, a flow of feature amount extraction processing by the arithmetic processing device will be described. As illustrated in FIG. 3, the arithmetic processing device scans the input data Dn input from the feature amount extraction processing layer of the previous hierarchy, in this case, every 3 × 3 pixels indicated by hatching in the drawing. The pixel size is not limited to 3 × 3 pixels and can be changed as appropriate.
そして、演算処理装置は、走査したデータに対して、それぞれ周知の畳み込み演算を行う。そして、演算処理装置は、畳み込み演算後のデータに対して周知の活性化処理を行い、畳み込み層Cの出力とする。そして、演算処理装置は、畳み込み層Cの出力データCnに対して、所定サイズ、この場合、2×2画素ごとに周知のプーリング処理を行い、プーリング層Pの出力とする。そして、演算処理装置は、プーリング層Pの出力データPnを次の階層の特徴量抽出処理層に出力する。なお、画素サイズは、2×2画素に限られず適宜変更することができる。 The arithmetic processing unit performs a known convolution operation on the scanned data. Then, the arithmetic processing device performs a well-known activation process on the data after the convolution operation, and outputs the result to the convolution layer C. Then, the arithmetic processing unit performs a well-known pooling process on the output data Cn of the convolution layer C at a predetermined size, in this case, 2 × 2 pixels, and outputs the result to the pooling layer P. Then, the arithmetic processing device outputs the output data Pn of the pooling layer P to the feature amount extraction processing layer of the next layer. The pixel size is not limited to 2 × 2 pixels and can be changed as appropriate.
図4には、畳み込み演算処理に用いられる畳み込み関数、活性化処理に用いられる関数、プーリング処理に用いられる関数の一般的な例を示している。即ち、畳み込み関数Yijは、直前の層の出力Xijに学習により得られる重み係数Wp,qを乗算した値を累積する関数となっている。なお、「N」は1サイクルの畳み込み演算処理により処理される画素サイズを示す。即ち、例えば1演算サイクルの画素サイズが「3×3」画素である場合、Nの値は「2」である。また、畳み込み関数Yijは、累積値に所定のバイアス値を加算する関数としてもよい。また、畳み込み関数は、全結合処理にも対応し得る積和演算が可能な関数であれば、種々の関数を採用することができる。また、活性化処理には、周知のロジスティックジグモイド関数やReLU関数(Rectified Linear Units)などが用いられる。また、プーリング処理には、入力されるデータの最大値を出力する周知の最大プーリング関数や、入力されるデータの平均値を出力する周知の平均プーリング関数などが用いられる。 FIG. 4 shows general examples of a convolution function used for convolution operation processing, a function used for activation processing, and a function used for pooling processing. That is, the convolution function Yij is a function that accumulates values obtained by multiplying the output Xij of the immediately preceding layer by the weighting factors Wp, q obtained by learning. Note that “N” indicates a pixel size to be processed by one cycle of convolution operation processing. That is, for example, when the pixel size of one calculation cycle is “3 × 3” pixels, the value of N is “2”. Further, the convolution function Yij may be a function for adding a predetermined bias value to the accumulated value. Various functions can be adopted as the convolution function as long as it is a function capable of multiply-accumulate operation that can cope with all-join processing. For the activation process, a well-known logistic sigmoid function, ReLU function (Rectified Linear Units), or the like is used. For the pooling process, a known maximum pooling function that outputs a maximum value of input data, a known average pooling function that outputs an average value of input data, or the like is used.
(第1実施形態)
図5に例示する演算処理装置100は、畳み込みニューラルネットワークによる演算を実行する装置であり、畳み込み演算処理部101、活性化処理部102、プーリング処理部103、データ読み出し処理部104、加算処理部105、切替回路106、記憶部107、記憶部108、記憶部109、選択回路110などを備える。記憶部107,108,109は、例えば半導体メモリなどといった記憶媒体で構成される。また、記憶部107,108,109以外の構成要素は、ソフトウェアにより仮想的に実現してもよいし、ハードウェアにより構成してもよい。
(First embodiment)
An
この場合、演算処理装置100は、中間層Naを実現する回路として機能する状態と全結合層Nbを実現する回路として機能する状態とに切り替えられるようになっている。活性化処理部102、プーリング処理部103は、演算処理装置100が中間層Naを実現する回路として機能する場合に動作し、全結合層Nbを実現する回路として機能する場合には動作しないようになっている。
In this case, the
畳み込み演算処理部101は、畳み込み演算手段の一例であり、入力されるデータに対して周知の畳み込み演算処理を行う。畳み込み演算処理部101は、複数のシストリックアレイにより構成されており、1回の演算サイクルにより、この場合、3×3画素のデータに対して演算処理を実行するようになっている。
The convolution
ここで、畳み込み演算処理部101の構成例についてさらに詳細に説明する。図6に例示するように、畳み込み演算処理部101は、同一構成の複数の演算器120を相互に接続した構成である。この場合、演算器120は、前階層からデータが入力される入力側から演算結果データを出力する出力側に向かって複数段、この場合、3段に配列されている。また、畳み込み演算処理部101は、それぞれ3段の演算器120からなる3本の演算ラインLa1〜La3を並列に備えている。
Here, a configuration example of the convolution
畳み込み演算処理部101は、それぞれの演算ラインLa1〜La3において各段の演算器120による演算結果を演算サイクルごとに出力側の演算器に順次転送してくことで、畳み込み演算を並列的に行うようにした構成である。そして、畳み込み演算処理部101は、各演算ラインLa1〜La3により得られる演算結果データを加算器121により加算して畳み込み演算結果データとして出力する。
The convolution
また、各段の演算器120には、前階層から入力される入力データがフリップフロップ回路130によりタイミングを調整されながら入力される構成である。また、各段の演算器120には、重み係数記憶部140から重み係数が入力される構成である。なお、フリップフロップ回路130や重み係数記憶部140も、入力側から出力側に向かって各段の演算器120に対応して複数段に配列されている。
In addition, each stage of the
図7に例示するように、演算器120は、入力データと重み係数とを乗算する乗算器120aと、乗算器120aによる演算結果を加算する加算器120bとを備える。そして、演算器120は、加算器120bによる演算結果データをフリップフロップ回路120cを介して出力する構成である。なお、演算器120は、この構成に限られるものではない。
As illustrated in FIG. 7, the
活性化処理部102は、活性化手段の一例であり、畳み込み演算処理部101が出力するデータに対して周知の活性化処理を行う。なお、活性化処理部102による活性化処理は、ロジスティックジグモイド関数またはReLU関数の何れの関数を採用してもよい。また、活性化処理部102による活性化処理は、その他の非線形関数を採用してもよい。プーリング処理部103は、プーリング手段の一例であり、活性化処理部102が出力するデータに対して周知のプーリング処理を行う。
The
演算処理装置100は、中間層Naを実現する回路として機能する場合には、畳み込み演算処理部101、活性化処理部102、プーリング処理部103による一連の特徴量抽出処理を繰り返すことにより、入力データに含まれる特徴量を高次元で抽出していく。そして、演算処理装置100は、中間層Naとして機能することにより得られた最終的な演算結果データを中間演算結果データとして出力する。そして、演算処理装置100は、出力した中間演算結果データを記憶部107に格納する。この場合、記憶部107は、中間演算結果データ格納手段の一例として機能する。演算処理装置100は、記憶部107に中間演算結果データを格納すると、全結合層Nbを実現する回路として機能するように切り替えられる。
When the
データ読み出し処理部104は、単位画像データ読み出し手段の一例として機能する。即ち、データ読み出し処理部104は、矩形状の探索窓Wを設定するとともに、その探索窓Wを複数、この場合、4つの矩形状の領域に分割する。この場合、図8に例示するように、データ読み出し処理部104は、畳み込み演算処理部101の1回の演算サイクルにより処理される画素サイズ、この場合、3×3画素の探索窓よりも大きい5×5画素のサイズの探索窓Wを設定する。そして、データ読み出し処理部104は、畳み込み演算処理部101の1回の演算サイクルにより処理される画素サイズ、この場合、3×3画素ごとに、探索窓Wを4つの領域w1〜w4に分割する。なお、この場合、領域w2〜w4は、その一部が探索窓Wからはみ出してしまう。そのため、領域w2〜w4のうち探索窓Wからはみ出す部分に含まれる画素に対する処理は無効化されるようになっている。
The data read
データ読み出し処理部104は、記憶部107に格納されている中間演算結果データに対して探索窓Wを移動させながら同一の領域w1〜w4に含まれる画像データを単位画像データとして順次読み出す。即ち、データ読み出し処理部104は、1回目の走査処理においては、中間演算結果データに対して探索窓Wを移動させながら領域w1に含まれる画像データを単位画像データとして読み出し、畳み込み演算処理部101に出力する。また、データ読み出し処理部104は、2回目の走査処理においては、中間演算結果データに対して探索窓Wを移動させながら領域w2に含まれる画像データを単位画像データとして読み出し、畳み込み演算処理部101に出力する。以降、データ読み出し処理部104は、3回目の走査処理においては領域w3に、4回目の走査処理においては領域w4に含まれる画像データをそれぞれ単位画像データとして読み出して畳み込み演算処理部101に出力する。このようにして、データ読み出し処理部104は、探索窓Wに含まれる全ての領域w1〜w4について、それぞれ走査処理を行っていく。
The data read
演算処理装置100が全結合層Nbを実現する回路として機能する場合には、畳み込み演算処理部101は、単位演算結果データ生成手段の一例として機能する。即ち、畳み込み演算処理部101は、畳み込み演算処理に用いられる畳み込み関数を用いて、データ読み出し処理部104が読み出す単位画像データに対して演算処理を行うことにより単位演算結果データを生成する。畳み込み演算処理部101は、データ読み出し処理部104が順次読み出す全ての単位画像データについて、それぞれ単位演算結果データを生成する。そして、畳み込み演算処理部101は、単位演算結果データを生成するごとに、その単位演算結果データを加算処理部105および切替回路106に出力する。
加算処理部105は、累積演算結果データ生成手段の一例として機能する。即ち、加算処理部105は、詳しくは後述するように、畳み込み演算処理部101が順次生成する単位演算結果データを累積することにより累積演算結果データを生成する。
When the
The
切替回路106は、演算結果データ格納手段の一例として機能する。畳み込み演算処理部101が生成する単位演算結果データおよび加算処理部105が生成する累積演算結果データを記憶部108および記憶部109に交互に切り替えながら格納する。即ち、切替回路106は、例えば、1回目の演算サイクルにおいて、単位演算結果データを記憶部108に格納し、累積演算結果データを記憶部109に格納した場合には、2回目の演算サイクルにおいては、単位演算結果データを記憶部109に格納し、累積演算結果データを記憶部108に格納する。そして、切替回路106は、3回目の演算サイクルにおいては、再び、単位演算結果データを記憶部108に、累積演算結果データを記憶部109に格納し、以降、1演算サイクルごとに、単位演算結果データを格納する記憶部と累積演算結果データを格納する記憶部とを順次切り替えていく。なお、ここでは、便宜的に、記憶部108を第1記憶手段の一例として定義し、記憶部109を第2記憶手段の一例として定義する。但し、記憶部108を第2記憶手段の一例として定義し、記憶部109を第1記憶手段の一例として定義してもよい。
The
選択回路110は、演算結果データ選択手段の一例として機能する。即ち、選択回路110は、畳み込み演算処理部101からの単位演算結果データの出力が続いている場合には、その時点において記憶部108または記憶部109に格納されている単位演算結果データを選択して加算処理部105に与える。加算処理部105は、選択回路110から与えられる単位演算結果データに畳み込み演算処理部101から与えられる単位演算結果データを加算することにより、単位演算結果データを順次累積して累積演算結果データを生成する。一方、選択回路110は、畳み込み演算処理部101からの単位演算結果データの出力が途絶えると、その時点において記憶部108または記憶部109に格納されている累積演算結果データを選択して最終演算結果データとして出力する。
The
次に、演算処理装置100が全結合層Nbを実現する回路として機能する場合における動作例について説明する。即ち、演算処理装置100は、中間演算結果データに対する全結合処理を、探索窓Wの左上領域w1、右上領域w2、左下領域w3、右下領域w4に分けて行う。
Next, an operation example in the case where the
まず、左上領域w1についての全結合処理では、演算処理装置100は、中間演算結果データに対して探索窓Wを左上端から右下端に向けて走査させながら、その走査に伴い移動する左上領域w1に含まれる9画素の画像データを記憶部107から順次読み込み、順次読み込んだ画像データに対してそれぞれ演算処理を行っていく。そして、演算処理装置100は、左上領域w1について得られた演算結果データを、この場合、記憶部108に格納する。
First, in the full joining process for the upper left area w1, the
次に、右上領域w2についての全結合処理では、演算処理装置100は、中間演算結果データに対して探索窓Wを左上端から右下端に向けて走査させながら、その走査に伴い移動する右上領域w2に含まれる9画素の画像データを記憶部107から順次読み込み、読み込んだ画像データに対してそれぞれ演算処理を行っていく。なお、右上領域w2のうち探索窓Wからはみ出した部分に含まれる画素に対する演算処理の結果は無効化される。
Next, in the full join process for the upper right area w2, the
そして、演算処理装置100は、右上領域w2について得られた演算結果データを、この場合、記憶部109に格納する。このとき、演算処理装置100は、記憶部108に格納されているデータを読み出して加算処理部105に入力することにより、左上領域w1の演算結果データと右上領域w2の演算結果データを累積した累積演算結果データを得る。そして、演算処理装置100は、得られた累積演算結果データを記憶部109に格納する。
Then, the
次に、左下領域w3についての全結合処理では、演算処理装置100は、中間演算結果データに対して探索窓Wを左上端から右下端に向けて走査させながら、その走査に伴い移動する左下領域w3に含まれる9画素の画像データを記憶部107から順次読み込み、読み込んだ画像データに対してそれぞれ演算処理を行っていく。なお、左下領域w3のうち探索窓Wからはみ出した部分に含まれる画素に対する演算処理の結果は無効化される。
Next, in the full combination process for the lower left area w3, the
そして、演算処理装置100は、左下領域w3について得られた演算結果データを、この場合、記憶部108に格納する。このとき、演算処理装置100は、記憶部109に格納されているデータを読み出して加算処理部105に入力することにより、左上領域w1の演算結果データと右上領域w2の演算結果データと左下領域w3の演算結果データを累積した累積演算結果データを得る。そして、演算処理装置100は、得られた累積演算結果データを記憶部108に格納する。
Then, the
次に、右下領域w4についての全結合処理では、演算処理装置100は、中間演算結果データに対して探索窓Wを左上端から右下端に向けて走査させながら、その走査に伴い移動する右下領域w4に含まれる9画素の画像データを記憶部107から順次読み込み、読み込んだ画像データに対してそれぞれ演算処理を行っていく。なお、右下領域w4のうち探索窓Wからはみ出した部分に含まれる画素に対する演算処理の結果は無効化される。
Next, in the full combination process for the lower right region w4, the
そして、演算処理装置100は、右下領域w4について得られた演算結果データを、この場合、記憶部109に格納する。このとき、演算処理装置100は、記憶部108に格納されているデータを読み出して加算処理部105に入力することにより、左上領域w1の演算結果データと右上領域w2の演算結果データと左下領域w3の演算結果データと右下領域w4の演算結果データを累積した累積演算結果データを得る。そして、演算処理装置100は、得られた累積演算結果データを記憶部109に格納する。これにより、探索窓W全体についての全結合処理の演算結果データが得られる。
Then, the
演算処理装置100は、左上領域w1についての全結合処理、右上領域w2についての全結合処理、左下領域w3についての全結合処理、右下領域w4についての全結合処理において、それぞれ演算に用いる重み係数を異ならせる。そのため、このように、左上領域w1の全結合処理を全て完了してから、次の右上領域w2の全結合処理に進み、右上領域w2の全結合処理を全て完了してから、次の左下領域w3の全結合処理に進む、という処理態様を採用する演算処理装置によれば、演算対象となる領域が変わるときにのみ重み係数を変更すればよい。なお、分割領域w1〜w4の全てについて演算処理を行ってから探索窓Wを移動させる構成では、探索窓Wを移動させるたびに分割領域の数に応じた重み係数の変更処理が必要となり、その処理負荷が増大する。
The
以上の全結合処理を視覚的に示すと、図9(a)に例示するように、まず左上領域w1についての全結合処理では、探索窓Wの移動に伴い左上領域w1から読み出される9画素ずつの画像データに対してそれぞれ畳み込み演算処理部101による演算処理が行われる。そして、その演算結果データがメモリ300に順次格納されていく。
When the above-described total combination processing is shown visually, as illustrated in FIG. 9A, first, in the total combination processing for the upper left region w1, nine pixels read from the upper left region w1 as the search window W moves. Each of the image data is subjected to arithmetic processing by the convolution
続く右上領域w2についての全結合処理では、図9(b)に例示するように、探索窓Wの移動に伴い右上領域w2から読み出される9画素ずつの画像データに対してそれぞれ畳み込み演算処理部101による演算処理が行われる。そして、その演算結果データがメモリ300に加算されていく。
In the subsequent full combination process for the upper right region w2, as illustrated in FIG. 9B, convolution
続く左下領域w3についての全結合処理では、図9(c)に例示するように、探索窓Wの移動に伴い左上領域w3から読み出される9画素ずつの画像データに対してそれぞれ畳み込み演算処理部101による演算処理が行われる。そして、その演算結果データがメモリ300に加算されていく。以降、右下領域w4についても同様な演算処理が行われ、その演算結果が加算されていく。
In the subsequent full joining process for the lower left region w3, as illustrated in FIG. 9C, convolution
このようにして演算処理装置100は、1つの中間演算結果データについての全結合処理の結果データをメモリ300に格納する。ところで、中間層Naからは、特徴マップとして複数の中間演算結果データが出力される。そのため、演算処理装置100は、複数の中間演算結果データに対してそれぞれ同様の全結合処理を行い、その結果データをメモリ300に格納していく。図10には、特徴マップとして9つの中間演算結果データが出力された場合において、これら複数の中間演算結果データに対して全結合処理を実施し、その結果データを格納した状態を示している。
In this way, the
メモリ300は、記憶部108,109を概念的に含む記憶媒体であり、最終演算結果データ格納手段の一例として機能する。なお、メモリ300は、記憶部108,109とは別個の記憶媒体として構成してもよい。そして、演算処理装置100によれば、メモリ300に対する最終演算結果データの格納態様にも工夫が施されている。即ち、演算処理装置100は、複数、この場合、9つの中間演算結果データから得られる複数の最終演算結果データM1〜M9を、畳み込み演算処理部101の1演算サイクルにより処置される画素サイズと同じサイズである所定の格納領域Rにまとめて格納するようになっている。この場合、畳み込み演算処理部101の1演算サイクルにより処理される画素サイズは3×3画素であるから、演算処理装置100は、これと同じサイズの3×3画素の格納領域Rを設定する。
The
上述したように演算処理装置100は、各分割領域w1〜w4についての全結合処理において、探索窓Wを左上端から右下端に向けて走査させていく。このとき、演算処理装置100は、1走査サイクルごとに探索窓Wを1画素ずつずらしてく。そして、演算処理装置100は、1つ目の中間演算結果データに対する全結合処理の結果データを次のように格納する。即ち、図10に例示するように、演算処理装置100は、分割領域w1についての1走査サイクル目の最終演算結果データM1[1]をメモリ300のアドレス(1,1)に格納し、分割領域w1についての2走査サイクル目の最終演算結果データM1[2]をメモリ300のアドレス(4,1)に格納し、分割領域w1についての3走査サイクル目の最終演算結果データM1[3]をメモリ300のアドレス(1,4)に格納し、分割領域w1についての4走査サイクル目の最終演算結果データM1[4]をメモリ300のアドレス(4,4)に格納する。
As described above, the
また、演算処理装置100は、2つ目の中間演算結果データに対する全結合処理の結果データを次のように格納する。即ち、演算処理装置100は、分割領域w1についての1走査サイクル目の最終演算結果データM2[1]をメモリ300のアドレス(2,1)に格納し、分割領域w1についての2走査サイクル目の最終演算結果データM2[2]をメモリ300のアドレス(5,1)に格納し、分割領域w1についての3走査サイクル目の最終演算結果データM2[3]をメモリ300のアドレス(2,4)に格納し、分割領域w1についての4走査サイクル目の最終演算結果データM2[4]をメモリ300のアドレス(5,4)に格納する。
In addition, the
以降、演算処理装置100は、3つ目以降の中間演算結果データに対する全結合処理の結果データM3,M4,・・・を同様に格納していく。即ち、演算処理装置100は、この場合、メモリ300のX方向およびY方向にそれぞれ3アドレス分のオフセットをとりながら各走査サイクルの最終演算結果データを格納していく。なお、図10では、左右方向をメモリ300のX方向、上下方向をメモリ300のY方向と定義している。
Thereafter, the
演算処理装置100は、このように格納領域Rごとにまとめた最終演算結果データに対して、全結合層の後段の処理を実行する。即ち、演算処理装置100は、格納領域Rごとにまとめられた最終演算結果データに対して、重み係数を異ならせながら積和演算を行う。このとき、最終演算結果データは、畳み込み演算処理部101の1演算サイクルにより処理される画素サイズと同じサイズの格納領域Rにまとめられている。そのため、演算処理装置100は、畳み込み演算処理部101を利用して各格納領域Rごとに積和演算を行うことができるようになっている。
The
演算処理装置100によれば、中間層Naの処理の後に行う全結合層Nbの処理を以下のように行う。即ち、演算処理装置100は、畳み込み演算処理部101、活性化処理部102、プーリング処理部103による一連の特徴量抽出処理により得られる中間演算結果データ、つまり、中間層Naの処理により得られる中間演算結果データに対して、複数の領域w1〜w4に分割された探索窓Wを走査しながら、同一の領域w1〜w4に含まれる画像データを単位画像データとして順次読み出す。そして、演算処理装置100は、順次読み出す単位画像データに対して畳み込み演算処理部101による演算処理を実行することにより単位演算結果データを順次生成する。また、演算処理装置100は、順次生成する単位演算結果データを累積して累積演算結果データを生成する。そして、演算処理装置100は、単位演算結果データおよび累積演算結果データを記憶部108および記憶部109に交互に切り替えながら格納する処理を繰り返す。そして、演算処理装置100は、最終的に記憶部108または記憶部109に記憶されている累積演算結果データを選択し、その累積演算結果データを最終演算結果データ、つまり、全結合層Nbの前段の処理による最終的な演算結果データとして出力する。
According to the
即ち、演算処理装置100によれば、中間層Naを実現する回路の一部である畳み込み演算処理部101を利用して全結合層Nbの処理を行うようにした。従って、中間層Naを実現する回路と別個に全結合層Nbを実現する回路を設ける必要がなく、ニューラルネットワークによる演算処理を実現する演算処理装置100の全体の回路規模を小さくすることができる。
That is, according to the
また、演算処理装置100は、複数の中間演算結果データから得られる複数の最終演算結果データを畳み込み演算処理部101の1演算サイクルにより処理される画素サイズと同じサイズの格納領域Rにまとめて格納する。このように、全結合層Nbの前段の処理により得られる最終演算結果データを畳み込み演算処理部101の1演算サイクルにより処理される画素サイズに合わせて格納しておけば、後段の処理における積和演算を畳み込み演算処理部101により行うことができる。そのため、全結合層Nbの後段の処理を実現するための回路を別個に設ける必要がなく、演算処理装置100の全体の回路規模を抑えることができる。
In addition, the
(第2実施形態)
図11に例示する演算処理装置200は、畳み込みニューラルネットワークによる演算を実行する装置であり、畳み込み演算処理部201、活性化処理部202、プーリング処理部203、データ読み出し処理部204、加算処理部205、切替回路206、記憶部207、記憶部208、記憶部209、第1選択回路210、第2選択回路211などを備える。記憶部207、記憶部208、記憶部209は、例えば半導体メモリなどといった記憶媒体で構成される。また、記憶部207,208,209以外の構成要素は、ソフトウェアにより仮想的に実現してもよいし、ハードウェアにより構成してもよい。
(Second Embodiment)
An
この場合、演算処理装置200は、中間層Naを実現する回路として機能する状態と全結合層Nbを実現する回路として機能する状態とに切り替えられるようになっている。また、畳み込み演算処理部201、活性化処理部202、プーリング処理部203、データ読み出し処理部204、加算処理部205、切替回路206は、それぞれ、畳み込み演算処理部101、活性化処理部102、プーリング処理部103、データ読み出し処理部104、加算処理部105、切替回路106に相当するものである。以下、異なる部分を説明する。
In this case, the
記憶部207、記憶部208、記憶部209は、何れも演算結果データ格納手段の一例として機能するものであり、中間演算結果データ、単位演算結果データ、累積演算結果データを格納することが可能な記憶媒体である。第1選択回路210は、第1選択手段の一例として機能するものであり、記憶部207、記憶部208、記憶部209のうち何れか1つを中間演算結果データ格納手段として選択する。第2選択回路211は、第2選択手段の一例として機能するものであり、記憶部207、記憶部208、記憶部209のうち残りの2つを第1記憶手段および第2記憶手段として選択する。そして、第2選択回路211は、第1記憶手段および第2記憶手段として選択した2つの記憶部を用いて演算結果データ選択手段として動作する。
The
次に、演算処理装置200が全結合層Nbを実現する回路として機能する場合における動作例について説明する。この場合、演算処理装置200は、全結合層の前段の処理を多階層にわたって行う。即ち、演算処理装置200は、全結合層の前段の処理を多層にわたって複数回繰り返すことにより、より高次元の全結合処理を行う。
Next, an operation example in the case where the
演算処理装置200は、全結合層Nbの前段の処理を開始すると、第1層目では、中間層Naから得られた中間演算結果データを記憶部207に格納する。即ち、演算処理装置200は、記憶部207を中間演算結果データ格納手段として選択する。そして、演算処理装置200は、第1層目で得られた最終演算結果データを記憶部208または記憶部209に格納する。最終演算結果データを記憶部208および記憶部209の何れに格納するのかは、適宜変更して設定することができる。例えば、中間演算結果データに対する走査回数、つまり探索窓Wの分割数が奇数である場合には最終演算結果データを記憶部208に格納し、偶数である場合には最終演算結果データを記憶部209に格納するように構成してもよい。また、奇数である場合には最終演算結果データを記憶部209に格納し、偶数である場合には最終演算結果データを記憶部208に格納するように構成してもよい。
When the
第1層目の処理により、記憶部208または記憶部209の何れかに最終演算結果データが格納される。そのため、演算処理装置200は、第2層目の処理においては、その最終演算結果データを格納する記憶部を中間演算結果データ格納手段としてそのまま用いる。そして、演算処理装置200は、中間演算結果データ格納手段としてそのまま用いられる記憶部以外の記憶部を第1記憶手段および第2記憶手段として選択する。そして、第2層目の処理により、第1記憶手段または第2記憶手段として選択されている記憶部の何れかに最終演算結果データが格納される。そのため、演算処理装置200は、第3層目の処理においては、その最終演算結果データを格納する記憶部を中間演算結果データ格納手段としてそのまま用い、残りの2つの記憶部を第1記憶手段および第2記憶手段として用いる。このように、演算処理装置200は、2つの記憶部207,208,209を各層ごとにローテーションさせながら全結合層Nbの前段の処理を進める。
By the processing of the first layer, the final calculation result data is stored in either the
演算処理装置200によれば、中間演算結果データ、単位演算結果データ、累積演算結果データを格納可能な3つの記憶部207,208,209を備える。そして、演算処理装置200は、記憶部207,208,209のうち何れか1つを中間演算結果データ格納手段として選択し、残りの2つを第1記憶手段および第2記憶手段として選択して使用する。
The
この構成によれば、今回の階層における最終演算結果データは、記憶部207,208,209のうち何れか1つに格納される。そのため、次の階層における処理では、その最終演算結果データを格納する記憶部を中間演算結果データ格納手段としてそのまま用いることができる。従って、全結合層の処理を多階層にわたって行う場合であっても、効率良く処理を進めることができる。また、このように3つの記憶部207,208,209をローテーションさせながら中間演算結果データ格納手段、第1記憶手段、第2記憶手段として使用する構成によれば、全結合層の処理を多階層にわたって行うための回路を別個に設ける必要がない。従って、演算処理装置200の回路規模を大きくしなくとも、全結合層の処理を多階層にわたって行うことができる。
なお、演算処理装置200は、演算処理装置100と同様に、複数の中間演算結果データから得られる複数の最終演算結果データを畳み込み演算処理部201の1演算サイクルにより処理される画素サイズと同じサイズの格納領域にまとめてメモリ300に格納する。
According to this configuration, the final calculation result data in the current hierarchy is stored in any one of the
Similar to the
(第3実施形態)
図12に例示するように、演算処理装置100は、畳み込み演算処理部101と切替回路106との間に活性化処理部102およびプーリング処理部103を備える構成としてもよい。この構成によれば、加算処理部105、切替回路106、記憶部108,109、選択回路110からなる構成を中間層Naにおける処理にも利用することができる。
(Third embodiment)
As illustrated in FIG. 12, the
(第4実施形態)
図13に例示するように、演算処理装置200は、畳み込み演算処理部201と切替回路206との間に活性化処理部202およびプーリング処理部203を備える構成としてもよい。この構成によれば、加算処理部205、切替回路206、記憶部207,208,209、選択回路211からなる構成を中間層Naにおける処理にも利用することができる。
(Fourth embodiment)
As illustrated in FIG. 13, the
(その他の実施形態)
本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。
(Other embodiments)
The present invention is not limited to the above-described embodiments, and can be applied to various embodiments without departing from the scope of the invention.
図面中、100,200は演算処理装置、101,201は畳み込み演算処理部(畳み込み演算手段、単位演算結果データ生成手段)、102,202は活性化処理部(活性化手段)、103,203はプーリング処理部(プーリング手段)、104,204はデータ読み出し処理部(単位画像データ読み出し手段)、105,205は加算処理部(累積演算結果データ生成手段)、106,206は切替回路(演算結果データ格納手段)、107,207,208,209は記憶部(中間演算結果データ格納手段)、108,109、207,208,209は記憶部(第1記憶手段)、108,109、207,208,209は記憶部(第2記憶手段)、110,211は選択回路(演算結果データ選択手段)、207,208,209は記憶部(演算結果データ格納手段)、210は第1選択回路(第1選択手段)、211は第2選択回路(第2選択手段)、300はメモリ(最終演算結果データ格納手段)を示す。 In the drawing, 100 and 200 are arithmetic processing units, 101 and 201 are convolution arithmetic processing units (convolution arithmetic means, unit arithmetic result data generating means), 102 and 202 are activation processing units (activation means), and 103 and 203 are Pooling processing units (pooling means), 104 and 204 are data reading processing units (unit image data reading means), 105 and 205 are addition processing units (cumulative calculation result data generating means), and 106 and 206 are switching circuits (calculation result data). Storage means), 107, 207, 208, 209 are storage units (intermediate operation result data storage means), 108, 109, 207, 208, 209 are storage units (first storage means), 108, 109, 207, 208, 209 is a storage unit (second storage unit), 110 and 211 are selection circuits (calculation result data selection unit), and 207, 208, and 20 Is a storage unit (calculation result data storage means), 210 is a first selection circuit (first selection means), 211 is a second selection circuit (second selection means), and 300 is a memory (final calculation result data storage means). .
Claims (3)
前記畳み込み演算手段、前記活性化手段、前記プーリング手段による処理により得られる中間演算結果データを格納する中間演算結果データ格納手段(107,207,208,209)と、
複数の領域に分割された探索窓を設定し、前記中間演算結果データ格納手段に格納されている前記中間演算結果データに対して前記探索窓を移動させながら同一の前記領域に含まれる画像データを単位画像データとして順次読み出す単位画像データ読み出し手段(104,204)と、
前記単位画像データ読み出し手段が順次読み出す前記単位画像データに対して前記畳み込み演算手段による演算処理を実行することにより単位演算結果データを生成する単位演算結果データ生成手段(101,201)と、
前記単位演算結果データ生成手段が順次生成する前記単位演算結果データを累積することにより累積演算結果データを生成する累積演算結果データ生成手段(105,205)と、
前記単位演算結果データ生成手段が生成する前記単位演算結果データおよび前記累積演算結果データ生成手段が生成する前記累積演算結果データを第1記憶手段(108,109、207,208,209)および第2記憶手段(108,109、207,208,209)に交互に切り替えながら格納する演算結果データ格納手段(106,206)と、
前記第1記憶手段または前記第2記憶手段に格納されている前記単位演算結果データを選択して前記累積演算結果データ生成手段に与え、前記第1記憶手段または前記第2記憶手段に格納されている前記累積演算結果データを選択して最終演算結果データとして出力する演算結果データ選択手段(110,211)と、
を備えることを特徴とする演算処理装置。 Arithmetic processing that includes a convolution operation means (101, 201), an activation means (102, 202), and a pooling means (103, 203) for extracting a feature amount included in the input image, and executes an operation by a convolutional neural network A device (100, 200),
Intermediate calculation result data storage means (107, 207, 208, 209) for storing intermediate calculation result data obtained by processing by the convolution calculation means, the activation means, and the pooling means;
A search window divided into a plurality of areas is set, and the image data included in the same area is moved while moving the search window with respect to the intermediate calculation result data stored in the intermediate calculation result data storage means. Unit image data reading means (104, 204) for sequentially reading as unit image data;
Unit calculation result data generation means (101, 201) for generating unit calculation result data by executing calculation processing by the convolution calculation means on the unit image data sequentially read by the unit image data reading means;
Accumulated operation result data generating means (105, 205) for generating accumulated operation result data by accumulating the unit operation result data sequentially generated by the unit operation result data generating means;
The unit calculation result data generated by the unit calculation result data generation means and the cumulative calculation result data generated by the cumulative calculation result data generation means are stored in the first storage means (108, 109, 207, 208, 209) and the second. Calculation result data storage means (106, 206) for alternately switching to storage means (108, 109, 207, 208, 209);
The unit calculation result data stored in the first storage means or the second storage means is selected and given to the cumulative calculation result data generation means, and stored in the first storage means or the second storage means. Calculation result data selection means (110, 211) for selecting the accumulated calculation result data and outputting as final calculation result data;
An arithmetic processing apparatus comprising:
前記演算結果データ格納手段のうち何れか1つを前記前記中間演算結果データ格納手段として選択する第1選択手段(210)と、
前記演算結果データ格納手段のうち残りの2つを前記第1記憶手段および前記第2記憶手段として選択する第2選択手段(211)と、
を備え、
前記第2選択手段は、前記第1記憶手段および前記第2記憶手段として選択した2つの前記演算結果データ格納手段を用いて前記演算結果データ選択手段として動作することを特徴とする請求項1に記載の演算処理装置。 Three calculation result data storage means (207, 208, 209) capable of storing the intermediate calculation result data, the unit calculation result data, and the cumulative calculation result data;
First selection means (210) for selecting any one of the calculation result data storage means as the intermediate calculation result data storage means;
Second selection means (211) for selecting the remaining two of the calculation result data storage means as the first storage means and the second storage means;
With
2. The second selection unit operates as the calculation result data selection unit using the two calculation result data storage units selected as the first storage unit and the second storage unit. The arithmetic processing unit described.
複数の前記中間演算結果データから得られる複数の前記最終演算結果データを前記畳み込み演算手段の1演算サイクルにより処理される画素サイズと同じサイズの格納領域にまとめて格納することを特徴とする請求項1または2に記載の演算処理装置。 A final calculation result data storage unit (300) for storing the final calculation result data output by the calculation result data selection unit;
The plurality of final calculation result data obtained from a plurality of the intermediate calculation result data are collectively stored in a storage area having the same size as a pixel size processed by one calculation cycle of the convolution calculation means. The arithmetic processing apparatus according to 1 or 2.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014234487A JP6365258B2 (en) | 2014-11-19 | 2014-11-19 | Arithmetic processing unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014234487A JP6365258B2 (en) | 2014-11-19 | 2014-11-19 | Arithmetic processing unit |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016099707A true JP2016099707A (en) | 2016-05-30 |
JP6365258B2 JP6365258B2 (en) | 2018-08-01 |
Family
ID=56077109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014234487A Active JP6365258B2 (en) | 2014-11-19 | 2014-11-19 | Arithmetic processing unit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6365258B2 (en) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018034163A1 (en) * | 2016-08-19 | 2018-02-22 | 国立大学法人 九州工業大学 | Multiplier-accumulator |
WO2018135088A1 (en) * | 2017-01-17 | 2018-07-26 | コニカミノルタ株式会社 | Data processing device, convolution operation device, and convolution neural network apparatus |
EP3447682A1 (en) | 2017-08-25 | 2019-02-27 | Renesas Electronics Corporation | Semiconductor device and image recognition system |
CN109886860A (en) * | 2019-01-31 | 2019-06-14 | 西安理工大学 | A kind of neural network structure and accelerating circuit of low resolution cell image |
JP2019197445A (en) * | 2018-05-11 | 2019-11-14 | 日本電信電話株式会社 | Image recognition device, image recognition method, and program |
US10558870B2 (en) | 2016-11-08 | 2020-02-11 | Samsung Electronics Co., Ltd. | Electronic apparatus and control method thereof |
KR20200020813A (en) * | 2017-06-21 | 2020-02-26 | 가부시키가이샤 한도오따이 에네루기 켄큐쇼 | Semiconductor device with neural network |
CN112334915A (en) * | 2018-06-25 | 2021-02-05 | 奥林巴斯株式会社 | Arithmetic processing device |
JP2021099658A (en) * | 2019-12-23 | 2021-07-01 | 三菱電機マイコン機器ソフトウエア株式会社 | Neural network processing device |
US11244027B2 (en) | 2018-05-30 | 2022-02-08 | Samsung Electronics Co., Ltd. | Processor, electronics apparatus and control method thereof |
JP2022106726A (en) * | 2017-01-26 | 2022-07-20 | 株式会社半導体エネルギー研究所 | Electronic apparatus |
US11514614B2 (en) | 2019-07-16 | 2022-11-29 | Canon Kabushiki Kaisha | Image processing apparatus, method of controlling image processing apparatus, and non-transitory computer-readable storage medium |
US11580369B2 (en) | 2017-10-23 | 2023-02-14 | Nec Corporation | Inference apparatus, convolution operation execution method, and program |
US11625224B2 (en) | 2018-04-26 | 2023-04-11 | Canon Kabushiki Kaisha | Apparatus and method using neural network |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7062617B2 (en) | 2019-06-26 | 2022-05-06 | 株式会社東芝 | Arithmetic logic unit and arithmetic method |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003058862A (en) * | 2001-05-31 | 2003-02-28 | Canon Inc | Pulse signal processing circuit, parallel processing circuit, pattern recognition device, and image input device |
-
2014
- 2014-11-19 JP JP2014234487A patent/JP6365258B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003058862A (en) * | 2001-05-31 | 2003-02-28 | Canon Inc | Pulse signal processing circuit, parallel processing circuit, pattern recognition device, and image input device |
Non-Patent Citations (3)
Title |
---|
AYSEGUL DUNDAR ET AL.: "Memory Access Optimized Routing Scheme for Deep Networks on a Mobile Coprocessor", HIGH PERFORMANCE EXTREME COMPUTING CONFERENCE 2014, JPN6018019584, 11 September 2014 (2014-09-11), ISSN: 0003806790 * |
VINAYAK GOKHALE ET AL.: "A 240 G-ops/s Mobile Coprocessor for Deep Neural Networks", COMPUTER VISION AND PATTERN RECOGNITION WORKSHOPS 2014, JPN6018019583, 28 June 2014 (2014-06-28), pages 696 - 701, XP032649702, ISSN: 0003806789, DOI: 10.1109/CVPRW.2014.106 * |
野村 修 外4名: "投射野型積和演算及び荷重基底分解アルゴリズムを用いたConvolutional Neural Net", 電子情報通信学会技術研究報告 VOL.104 NO.472 NLP2004−76〜87 非線形問題, vol. 第104巻 第472号, JPN6018019582, 20 November 2004 (2004-11-20), JP, pages 25 - 29, ISSN: 0003806788 * |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102403307B1 (en) | 2016-08-19 | 2022-05-30 | 소니그룹주식회사 | Multiplier-accumulator |
KR20210142782A (en) * | 2016-08-19 | 2021-11-25 | 소니그룹주식회사 | Multiplier-accumulator |
US11392349B2 (en) | 2016-08-19 | 2022-07-19 | Sony Group Corporation | Multiply-accumulate operation device |
US10831447B2 (en) | 2016-08-19 | 2020-11-10 | Sony Corporation | Multiply-accumulate operation device |
JPWO2018034163A1 (en) * | 2016-08-19 | 2019-10-10 | ソニー株式会社 | Product-sum operation unit |
WO2018034163A1 (en) * | 2016-08-19 | 2018-02-22 | 国立大学法人 九州工業大学 | Multiplier-accumulator |
US10558870B2 (en) | 2016-11-08 | 2020-02-11 | Samsung Electronics Co., Ltd. | Electronic apparatus and control method thereof |
US10878257B2 (en) | 2016-11-08 | 2020-12-29 | Samsung Electronics Co., Ltd. | Electronic apparatus and control method thereof |
WO2018135088A1 (en) * | 2017-01-17 | 2018-07-26 | コニカミノルタ株式会社 | Data processing device, convolution operation device, and convolution neural network apparatus |
JP2022106726A (en) * | 2017-01-26 | 2022-07-20 | 株式会社半導体エネルギー研究所 | Electronic apparatus |
KR20200020813A (en) * | 2017-06-21 | 2020-02-26 | 가부시키가이샤 한도오따이 에네루기 켄큐쇼 | Semiconductor device with neural network |
JPWO2018234919A1 (en) * | 2017-06-21 | 2020-07-16 | 株式会社半導体エネルギー研究所 | Semiconductor device having neural network |
US11568224B2 (en) | 2017-06-21 | 2023-01-31 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device having neural network |
KR102638140B1 (en) | 2017-06-21 | 2024-02-16 | 가부시키가이샤 한도오따이 에네루기 켄큐쇼 | Semiconductor device with neural network |
US11461633B2 (en) | 2017-08-25 | 2022-10-04 | Renesas Electronics Corporation | Semiconductor device and image recognition system |
EP3447682A1 (en) | 2017-08-25 | 2019-02-27 | Renesas Electronics Corporation | Semiconductor device and image recognition system |
US11580369B2 (en) | 2017-10-23 | 2023-02-14 | Nec Corporation | Inference apparatus, convolution operation execution method, and program |
US11625224B2 (en) | 2018-04-26 | 2023-04-11 | Canon Kabushiki Kaisha | Apparatus and method using neural network |
JP2019197445A (en) * | 2018-05-11 | 2019-11-14 | 日本電信電話株式会社 | Image recognition device, image recognition method, and program |
US11244027B2 (en) | 2018-05-30 | 2022-02-08 | Samsung Electronics Co., Ltd. | Processor, electronics apparatus and control method thereof |
CN112334915A (en) * | 2018-06-25 | 2021-02-05 | 奥林巴斯株式会社 | Arithmetic processing device |
CN109886860B (en) * | 2019-01-31 | 2022-11-29 | 西安理工大学 | Neural network structure and accelerating circuit of low-resolution cell image |
CN109886860A (en) * | 2019-01-31 | 2019-06-14 | 西安理工大学 | A kind of neural network structure and accelerating circuit of low resolution cell image |
US11514614B2 (en) | 2019-07-16 | 2022-11-29 | Canon Kabushiki Kaisha | Image processing apparatus, method of controlling image processing apparatus, and non-transitory computer-readable storage medium |
JP2021099658A (en) * | 2019-12-23 | 2021-07-01 | 三菱電機マイコン機器ソフトウエア株式会社 | Neural network processing device |
Also Published As
Publication number | Publication date |
---|---|
JP6365258B2 (en) | 2018-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6365258B2 (en) | Arithmetic processing unit | |
JP6945986B2 (en) | Arithmetic circuit, its control method and program | |
US10824934B2 (en) | Methods and apparatus for matrix processing in a convolutional neural network | |
JP6645252B2 (en) | Arithmetic processing unit | |
US20150331832A1 (en) | Arithmetic processing apparatus | |
JP6414458B2 (en) | Arithmetic processing unit | |
WO2019008951A1 (en) | Convolutional neural network | |
WO2019234794A1 (en) | Arithmetic method | |
JP6532334B2 (en) | Parallel computing device, image processing device and parallel computing method | |
JP7435602B2 (en) | Computing equipment and computing systems | |
WO2019177735A1 (en) | Efficient convolutional engine | |
Ito et al. | Low-latency connected component labeling using an FPGA | |
Huang | RingCNN: Exploiting algebraically-sparse ring tensors for energy-efficient CNN-based computational imaging | |
JP2006154992A (en) | Neuro-processor | |
US11500767B2 (en) | Method and device for determining a global memory size of a global memory size for a neural network | |
JP6740920B2 (en) | Processor | |
Zhang et al. | A generalized 3-D Hilbert scan using look-up tables | |
CN114239814B (en) | Training method of convolution neural network model for image processing | |
JP2017126203A (en) | Arithmetic processing unit | |
US11403731B2 (en) | Image upscaling apparatus using artificial neural network having multiple deconvolution layers and deconvolution layer pluralization method thereof | |
US20220101083A1 (en) | Methods and apparatus for matrix processing in a convolutional neural network | |
JP6747305B2 (en) | Data processing device and neural network system | |
Bevara et al. | VLSI implementation of high throughput parallel pipeline median finder for IoT applications | |
JP2018055570A (en) | Arithmetic processing apparatus, arithmetic processing method, and program | |
JP5570895B2 (en) | Detector configuration apparatus, method, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170421 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180416 |
|
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: 20180605 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180618 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6365258 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |