JP6813561B2 - ニューラルネットワークにおける畳み込み計算のための方法および電子デバイス - Google Patents
ニューラルネットワークにおける畳み込み計算のための方法および電子デバイス Download PDFInfo
- Publication number
- JP6813561B2 JP6813561B2 JP2018236272A JP2018236272A JP6813561B2 JP 6813561 B2 JP6813561 B2 JP 6813561B2 JP 2018236272 A JP2018236272 A JP 2018236272A JP 2018236272 A JP2018236272 A JP 2018236272A JP 6813561 B2 JP6813561 B2 JP 6813561B2
- Authority
- JP
- Japan
- Prior art keywords
- predetermined number
- convolution
- points
- pointwise
- depthwise
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
- G06F17/153—Multidimensional correlation or convolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Neurology (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Complex Calculations (AREA)
- Image Analysis (AREA)
Description
畳み込みニューラルネットワークは、一般的に、複数の畳み込み層を含み得る。各畳み込み層において、層の入力特徴マップ(入力特徴データまたは入力特徴値とも呼ばれる)に対して畳み込み演算を実行して層の出力特徴マップ(出力特徴データまたは出力特徴値とも呼ばれる)を取得するために層の畳み込みカーネルが使用される。畳み込みニューラルネットワークの各層において、入力特徴マップは、特定の幅および高さを有するものとしてよく、特定の数のチャネル(深さとも呼ばれる)を有し得る。各畳み込みカーネルは、入力特徴マップの幅および高さより小さい(または等しい)、同じ(または異なる)幅および高さを有するものとしてよく、入力特徴マップのチャネルの数に等しい、同じ数のチャネルを有し得る。
図3は、本開示の一実施形態による畳み込み計算のための方法を示すフローチャートである。
本開示の第1の実施形態において、すべてのpointwise畳み込み出力チャネル上で第1の所定の数p個の点の出力特徴値を取得するために、(1)depthwise畳み込み演算を実行してすべてのdepthwise畳み込み出力チャネル上で第1の所定の数p個の点の中間特徴値を取得する演算と、(2)中間特徴値に基づきpointwise畳み込み演算を実行し、1つまたは複数のpointwise畳み込み出力チャネル上でp個の点の出力特徴値を取得する演算と、(3)上記の演算(2)を繰り返して、すべてのpointwise畳み込み出力チャネル上でp個の点の出力特徴値を取得する演算が実行され得る。
一例において、ステップS221は以下のステップを含み得る。
本開示の第2の実施形態において、すべてのpointwise畳み込み出力チャネル上で第1の所定の数p個の点の出力特徴値を取得するために、1)depthwise畳み込み演算を実行してすべてのdepthwise畳み込み出力チャネル上で第1の所定の数p個の点の中間特徴値を取得する演算、2)中間特徴値に従ってpointwise畳み込み演算を実行してpointwise畳み込み出力チャネルのすべての上でp個の点に対する現在のpointwise畳み込み部分和を取得する演算、(3)現在のpointwise畳み込み部分和および前の累算計算結果に対して累算を実行して、現在の累算計算結果を生成する演算、(4)上記の演算(2)および(3)を繰り返して、すべてのpointwise畳み込み出力チャネル上でp個の点の出力特徴値を取得する演算が実行され得る。
本開示の第3の実施形態において、すべてのpointwise畳み込み出力チャネル上で第1の所定の数p個の点の出力特徴値を取得するために、(1)depthwise畳み込み演算を実行して第2の所定の数m個のdepthwise畳み込み出力チャネル上で第1の所定の数p個の点の中間特徴値を取得する演算、(2)中間特徴値に従ってpointwise畳み込み演算を実行してdepthwise畳み込み出力チャネルのすべての上でp個の点の現在のpointwise畳み込み部分和を取得する演算、(3)現在のpointwise畳み込み部分和および前の累算計算結果に対して累算を実行して、現在の累算計算結果を生成する演算、(4)上記の演算(1)および(3)を繰り返して、すべてのpointwise畳み込み出力チャネル上でp個の点の出力特徴値を取得する演算が実行され得る。
これ以降、本開示の一実施形態による電子デバイスが、図15を参照しつつ説明される。
上で説明されている方法および装置に加えて、本開示の実施形態は、また、コンピュータプログラム命令を含むコンピュータプログラム製品であってよく、前記コンピュータプログラム命令は、プロセッサによって実行されたときに、プロセッサに、本開示の上述の「例示的な方法」部分で説明されているように本開示の様々な実施形態によりニューラルネットワークのための複合演算方法におけるステップを実行させる。
11 プロセッサ
12 メモリ
13 入力デバイス
14 出力デバイス
Claims (16)
- ニューラルネットワークにおける畳み込み計算のための方法であって、
ダイナミックランダムアクセスメモリ(DRAM)から入力特徴マップ、depthwise畳み込みカーネル、pointwise畳み込みカーネルを読み出すステップと、
depthwise畳み込み計算およびpointwise畳み込み計算を、前記入力特徴マップ、前記depthwise畳み込みカーネル、前記pointwise畳み込みカーネルに従って実行して、すべてのpointwise畳み込み出力チャネル上で第1の所定の数p個の点の出力特徴値を取得するステップであって、前記第1の所定の数pは、オンチップメモリ内の利用可能な空間、前記depthwise畳み込み計算ユニットの数、前記入力特徴マップの高さと幅、およびチャネルの数の大きさ、のうちの少なくとも1つに従って決定される、ステップと、
すべてのpointwise畳み込み出力チャネル上で前記第1の所定の数p個の点の前記出力特徴値を前記オンチップメモリに記憶するステップと、
上記のすべてのステップを行う演算を繰り返して、すべてのpointwise畳み込み出力チャネル上ですべての点の出力特徴値を取得するステップとを含む方法。 - 前記実行するステップは、
前記depthwise畳み込み計算を、前記入力特徴マップおよび前記depthwise畳み込みカーネルに従って実行して、すべてのdepthwise畳み込み出力チャネル上で前記第1の所定の数p個の点の中間特徴値を取得するステップと、
前記pointwise畳み込み計算を、すべてのdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記中間特徴値、および前記pointwise畳み込みカーネルに従って実行して、すべてのpointwise畳み込み出力チャネル上で前記第1の所定の数p個の点の前記出力特徴値を取得するステップとを含む請求項1に記載の方法。 - 前記depthwise畳み込み計算を、前記入力特徴マップおよび前記depthwise畳み込みカーネルに従って実行して、すべてのdepthwise畳み込み出力チャネル上で前記第1の所定の数p個の点の中間特徴値を取得するステップは、
前記depthwise畳み込み計算を、前記入力特徴マップおよび前記depthwise畳み込みカーネルに従って実行して、第2の所定の数m個のdepthwise畳み込み出力チャネル上で前記第1の所定の数p個の点の中間特徴値を取得し、各中間特徴値を前記オンチップメモリに記憶するステップであって、前記第2の所定の数mは、depthwise畳み込み計算ユニットの数および前記第1の所定の数pに従って決定される、ステップと、
上記の演算を、前記入力特徴マップおよび前記depthwise畳み込みカーネルに従って前記depthwise畳み込み計算を実行して、次の第2の所定の数m個のdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の中間特徴値を取得し、それに対応して、すべてのdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記中間特徴値が得られるまでその後の演算を実行することによって繰り返すステップとを含む請求項2に記載の方法。 - 前記depthwise畳み込み計算を、前記入力特徴マップおよび前記depthwise畳み込みカーネルに従って実行して、第2の所定の数m個のdepthwise畳み込み出力チャネル上で前記第1の所定の数p個の点の中間特徴値を取得するステップは、
前記入力特徴マップから前記第2の所定の数m個の入力チャネル上で点の前記第1の所定の数p個のグループの入力特徴値を読み出すステップであって、点の各グループは前記depthwise畳み込みカーネルにおける重み値の幅および高さに等しい幅および高さを有し、点の2つの隣接するグループは前記depthwise畳み込み計算のストライドに等しいストライドを有する、ステップと、
前記第2の所定の数m個の入力チャネル上で点の前記第1の所定の数p個のグループの前記入力特徴値に対応する、対応する第2の所定の数m個のdepthwise畳み込みカーネルにおける重み値を読み出すステップと、
前記対応する第2の所定の数m個のdepthwise畳み込みカーネルにおける前記重み値とともに前記第2の所定の数m個の入力チャネル上の点の前記第1の所定の数p個のグループの前記入力特徴値上で前記depthwise畳み込み計算をそれぞれ実行して、前記第2の所定の数m個のdepthwise畳み込み出力チャネル上で点の前記第1の所定の数p個のグループにそれぞれ対応する前記第1の所定の数p個の点の前記中間特徴値を取得するステップとを含む請求項3に記載の方法。 - 前記pointwise畳み込み計算を実行するステップと同時に、前記入力特徴マップから前記第2の所定の数m個の入力チャネル上の点の前記第1の所定の数p個のグループの前記入力特徴値と、前記対応する重み値とを読み出すステップをさらに含む請求項4に記載の方法。
- 前記対応する第2の所定の数m個のdepthwise畳み込みカーネルにおける前記重み値とともに前記第2の所定の数m個の入力チャネル上の点の前記第1の所定の数p個のグループの前記入力特徴値に対して前記depthwise畳み込み計算をそれぞれ実行して、前記第2の所定の数m個のdepthwise畳み込み出力チャネル上で点の前記第1の所定の数p個のグループにそれぞれ対応する前記第1の所定の数p個の点の中間特徴値を取得するステップは、
点の前記第1の所定の数p個のグループ内の点の各グループに対して、
前記第2の所定の数m個の入力チャネル上の点の前記グループ内の1つの点の入力特徴値、および前記対応する第2の所定の数m個のdepthwise畳み込みカーネルにおける対応する重み値に対して乗算計算をそれぞれ実行して、点の前記グループの現在の乗算計算結果を取得する演算と、
点の前記グループの前記現在の乗算計算結果および点の前記グループの前の乗算計算結果に対して累算計算をそれぞれ実行する演算であって、前記前の乗算計算結果は前記第2の所定の数m個の入力チャネル上の点の前記グループ内の前の1つの点の前記入力特徴値、および前記対応する第2の所定の数m個のdepthwise畳み込みカーネルにおける対応する前の重み値に対して乗算計算をそれぞれ実行することによって取得される、演算と、
上記演算を、前記第2の所定の数m個の入力チャネル上の点の前記グループ内の次の点の入力特徴値、および前記対応する第2の所定の数m個のdepthwise畳み込みカーネルにおける対応する次の重み値に対して乗算計算をそれぞれ実行し、それに対応して、前記第2の所定の数m個の入力チャネル上の点の前記グループ内のすべての点の前記入力特徴値に対する前記乗算および累算演算が完了するまでその後の演算を実行することによって繰り返す演算であって、点の前記グループの最終的累算計算結果は前記第2の所定の数m個のdepthwise畳み込み出力チャネル上の点の前記グループに対応する1つの点の前記中間特徴値である、演算とを実行するステップを含む請求項4に記載の方法。 - 活性化演算および量子化演算のうちの少なくとも一方を各中間特徴値に対して、それを前記オンチップメモリに記憶する前に実行するステップをさらに含む請求項3に記載の方法。
- 前記pointwise畳み込み計算を、すべてのdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の中間特徴値、および前記pointwise畳み込みカーネルに従って実行して、すべてのpointwise畳み込み出力チャネル上で前記第1の所定の数p個の点の出力特徴値を取得するステップは、
前記pointwise畳み込み計算を、それぞれ、すべてのdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記中間特徴値、および第4の所定の数n個のpointwise畳み込みカーネル内のすべてのpointwise畳み込みチャネル上の重み値に従って実行して、前記第4の所定の数n個のpointwise畳み込みカーネルに対応する第4の所定の数n個のpointwise畳み込み出力チャネル上で前記第1の所定の数p個の点の出力特徴値を取得するステップと、
上記の演算を、すべてのpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の出力特徴値を取得するまで、前記pointwise畳み込み計算を、それぞれ、すべてのdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記中間特徴値およびすべてのpointwise畳み込みチャネル上の次の第4の所定の数n個のpointwise畳み込みカーネルの重み値に従って実行することによって繰り返すステップとを含む請求項2に記載の方法。 - 前記pointwise畳み込み計算を、それぞれ、すべてのdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記中間特徴値およびすべてのpointwise畳み込みチャネル上の第4の所定の数n個のpointwise畳み込みカーネルの重み値に従って実行して、前記第4の所定の数n個のpointwise畳み込みカーネルに対応する第4の所定の数n個のpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の出力特徴値を取得するステップは、
すべてのdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記中間特徴値から第3の所定の数m'個のdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の中間特徴値を読み出すステップと、
前記第3の所定の数m'個のdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記中間特徴値に対応する、対応する第3の所定の数m'個のpointwise畳み込みチャネル上の第4の所定の数n個のpointwise畳み込みカーネルの重み値を読み出すステップと、
前記pointwise畳み込み計算を、前記第4の所定の数n個のpointwise畳み込みカーネル内の前記対応する第3の所定の数m'個のpointwise畳み込みチャネル上の前記重み値とともに前記第3の所定の数m'個のdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記中間特徴値に対してそれぞれ実行して、前記第4の所定の数n個のpointwise畳み込みカーネルに対応する前記第4の所定の数n個のpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の現在のpointwise畳み込み部分和を取得するステップと、
前記第4の所定の数n個のpointwise畳み込みカーネルに対応する前記第4の所定の数n個のpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記現在のpointwise畳み込み部分和と、前記第1の所定の数p個の点の前の累算計算結果とに対して累算計算をそれぞれ実行して、前記第1の所定の数p個の点の現在の累算計算結果を生成し、前記現在の累算計算結果を前記オンチップメモリに、前記第1の所定の数p個の点の前記前の累算計算結果をカバーするように記憶するステップであって、前記第3の所定の数m'および前記第4のプリセットされた数nは、pointwise畳み込み計算ユニットの数および前記第1の所定の数pに従って決定される、ステップと、
上記の演算を、次の第3の所定の数m'個のdepthwise畳み込み出力チャネル上で前記第1の所定の数p個の点の中間特徴値を読み出し、対応する次の第3の所定の数m'個のpointwise畳み込みチャネル上の前記第4の所定の数n個のpointwise畳み込みカーネルの重み値を読み出し、それに対応して、その後の演算を、前記pointwise畳み込み計算および累算計算がすべてのdepthwise畳み込み出力チャネル上で前記第1の所定の数p個の点の前記中間特徴値に対して完了するまで実行し、前記第1の所定の数p個の点の最終的累算計算結果が前記第4の所定の数n個のpointwise畳み込みカーネルに対応する前記第4の所定の数n個のpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記出力特徴値である、ステップとを含む請求項8に記載の方法。 - 前記pointwise畳み込み計算を、前記第4の所定の数n個のpointwise畳み込みカーネル内の前記対応する第3の所定の数m'個のpointwise畳み込みチャネル上の前記重み値とともに前記第3の所定の数m'個のdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記中間特徴値に対して実行して、前記第4の所定の数n個のpointwise畳み込みカーネルに対応する前記第4の所定の数n個のpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の現在のpointwise畳み込み部分和を取得するステップは、
前記第1の所定の数p個の点のうちの各点に対して、
それぞれ、乗算計算を、前記第4の所定の数n個のpointwise畳み込みカーネル内の前記対応する第3の所定の数m'個のpointwise畳み込みチャネル上の前記重み値とともに前記第3の所定の数m'個のdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点のうちの前記点の前記中間特徴値に対して実行して、結果の第4の所定の数n個のグループを取得し、その各グループは第3の所定の数m'個の乗算計算結果を含む、演算と、
それぞれ、結果の前記第4の所定の数n個のグループから結果の各グループの前記第3の所定の数m'個の乗算計算結果を加算して、前記第4の所定の数n個のpointwise畳み込みカーネルに対応する前記第4の所定の数n個のpointwise畳み込み出力チャネル上の前記点の現在のpointwise畳み込み部分和を取得する演算とを実行するステップを含む請求項9に記載の方法。 - 活性化演算および量子化演算のうちの少なくとも一方を、前記第1の所定の数p個の点の前記最終的累算計算結果を前記出力特徴値として前記オンチップメモリに記憶する前に、前記第4の所定の数n個のpointwise畳み込みカーネルに対応する前記第4の所定の数n個のpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の各出力特徴値に対して実行するステップをさらに含む請求項9に記載の方法。
- 前記pointwise畳み込み計算を、すべてのdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記中間特徴値、および前記pointwise畳み込みカーネルに従って実行して、すべてのpointwise畳み込み出力チャネル上で前記第1の所定の数p個の点の前記出力特徴値を取得するステップは、
それぞれ、前記pointwise畳み込み計算を、第3の所定の数m'個のdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の中間特徴値、および対応する第3の所定の数m'個のpointwise畳み込みチャネル上のすべてのpointwise畳み込みカーネルの重み値に従って実行して、すべてのpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の現在のpointwise畳み込み部分和を取得するステップと、
累算計算を、すべてのpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記現在のpointwise畳み込みの部分和と前記第1の所定の数p個の点の前の累算計算結果に対してそれぞれ実行して、前記第1の所定の数p個の点の現在の累算計算結果を生成し、前記第1の所定の数p個の点の前記現在の累算計算結果を前記オンチップメモリに記憶し、前記第1の所定の数p個の点の前記前の累算計算結果をカバーするステップと、
上記の演算を、それぞれ次の第3の所定の数m'個のdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の中間特徴値、および対応する次の第3の所定の数m'個のpointwise畳み込みチャネル上のすべてのpointwise畳み込みカーネルの重み値に従って前記pointwise畳み込み計算を実行し、それに対応して、その後の演算を、すべてのdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記中間特徴値のすべてがpointwise畳み込み計算および累算計算を完了するまで実行するステップであって、前記第1の所定の数p個の点の最終的累算計算結果がすべてのpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記出力特徴値である、ステップとを含む請求項2に記載の方法。 - それぞれ、前記pointwise畳み込み計算を、第3の所定の数m'個のdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の中間特徴値、および対応する第3の所定の数m'個のpointwise畳み込みチャネル上のすべてのpointwise畳み込みカーネル内の重み値に従って実行して、すべてのpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の現在のpointwise畳み込み部分和を取得するステップは、
前記pointwise畳み込み計算を、前記第3の所定の数m'個のdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記中間特徴値、および対応する第3の所定の数m'個のpointwise畳み込みチャネル上の第4の所定の数n個のpointwise畳み込みカーネルの重み値に従って実行して、前記第4の所定の数n個のpointwise畳み込みカーネルに対応する第4の所定の数n個のpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の現在のpointwise畳み込み部分和を取得するステップと、
前記pointwise畳み込み計算を、前記第3の所定の数m'個のdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記中間特徴値および前記対応する第3の所定の数m'個のpointwise畳み込みチャネル上の次の第4の所定の数n個のpointwise畳み込みカーネルの重み値に対して実行して、次の第4の所定の数n個のpointwise畳み込みカーネルに対応する次の第4の所定の数n個のpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の現在のpointwise畳み込み部分和を取得することによって、すべてのpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の現在のpointwise畳み込み部分和を取得するまで上記の演算を繰り返すステップとを請求項12に記載の方法。 - それぞれ、前記pointwise畳み込み計算を、前記第3の所定の数m'個のdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記中間特徴値および前記対応する第3の所定の数m'個のpointwise畳み込みチャネル上のすべてのpointwise畳み込みカーネルの重み値に従って実行して、すべてのpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の現在のpointwise畳み込み部分和を取得するステップは、
すべてのdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記中間特徴値から前記第3の所定の数m'個のdepthwise畳み込み出力チャネル上の第1の所定の数p個の点の前記中間特徴値を読み出すステップと、
前記第3の所定の数m'個のdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の中間特徴値に対応して前記対応する第3の所定の数m'個のpointwise畳み込みチャネル上の第4の所定の数n個のpointwise畳み込みカーネルの重み値を読み出すステップと、
前記pointwise畳み込み計算を、前記対応する第3の所定の数m'個のpointwise畳み込みチャネル上の前記第4の所定の数n個のpointwise畳み込みカーネル内の重み値とともに前記第3の所定の数m'個のdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記中間特徴値に対して実行して、前記第4の所定の数n個のpointwise畳み込みカーネルに対応する前記第4の所定の数n個のpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の現在のpointwise畳み込み部分和を取得するステップを含む請求項13に記載の方法。 - 活性化演算および量子化演算のうちの少なくとも一方を、前記第1の所定の数p個の点の前記最終的累算計算結果を前記出力特徴値として前記オンチップメモリに記憶する前に、すべてのpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の各出力特徴値に対して実行するステップをさらに含む請求項12に記載の方法。
- 電子デバイスであって、
プロセッサと、
コンピュータプログラム命令が記憶されているメモリであって、前記命令は、前記プロセッサによって実行されたときに、ニューラルネットワークにおける畳み込み計算法の方法を前記プロセッサに実行させ、前記命令は
ダイナミックランダムアクセスメモリ(DRAM)から入力特徴マップ、depthwise畳み込みカーネル、pointwise畳み込みカーネルを読み出すステップと、
depthwise畳み込み計算およびpointwise畳み込み計算を、前記入力特徴マップ、前記depthwise畳み込みカーネル、前記pointwise畳み込みカーネルに従って実行して、すべてのpointwise畳み込み出力チャネル上で第1の所定の数p個の点の出力特徴値を取得するステップであって、前記第1の所定の数pは、オンチップメモリ内の利用可能な空間、前記depthwise畳み込み計算ユニットの数、ならびに前記入力特徴マップの幅、高さ、およびチャネルの大きさ、のうちの少なくとも1つに従って決定される、ステップと、
すべてのpointwise畳み込み出力チャネル上で前記第1の所定の数p個の点の前記出力特徴値を前記オンチップメモリに記憶するステップと、
上記のすべてのステップを行う演算を繰り返して、すべてのpointwise畳み込み出力チャネル上ですべての点の出力特徴値を取得するステップとを含む、メモリとを備える電子デバイス。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711361938.6 | 2017-12-18 | ||
CN201711361938.6A CN108108811B (zh) | 2017-12-18 | 2017-12-18 | 神经网络中的卷积计算方法和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019109895A JP2019109895A (ja) | 2019-07-04 |
JP6813561B2 true JP6813561B2 (ja) | 2021-01-13 |
Family
ID=62209744
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018236272A Active JP6813561B2 (ja) | 2017-12-18 | 2018-12-18 | ニューラルネットワークにおける畳み込み計算のための方法および電子デバイス |
Country Status (5)
Country | Link |
---|---|
US (1) | US11574031B2 (ja) |
EP (1) | EP3499427A1 (ja) |
JP (1) | JP6813561B2 (ja) |
KR (1) | KR102285965B1 (ja) |
CN (1) | CN108108811B (ja) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110050267B (zh) | 2016-12-09 | 2023-05-26 | 北京地平线信息技术有限公司 | 用于数据管理的系统和方法 |
CN108108811B (zh) | 2017-12-18 | 2021-07-30 | 南京地平线机器人技术有限公司 | 神经网络中的卷积计算方法和电子设备 |
US11676371B2 (en) * | 2018-08-17 | 2023-06-13 | Fotonation Limited | Apparatus for processing a neural network |
CN109102070B (zh) * | 2018-08-22 | 2020-11-24 | 地平线(上海)人工智能技术有限公司 | 卷积神经网络数据的预处理方法和装置 |
WO2020051776A1 (en) * | 2018-09-11 | 2020-03-19 | Intel Corporation | Method and system of deep supervision object detection for reducing resource usage |
CN109359574B (zh) * | 2018-09-30 | 2021-05-14 | 宁波工程学院 | 基于信道级联的广域视场行人检测方法 |
US11449729B2 (en) * | 2018-11-08 | 2022-09-20 | Arm Limited | Efficient convolutional neural networks |
CN109740534B (zh) * | 2018-12-29 | 2021-06-25 | 北京旷视科技有限公司 | 图像处理方法、装置及处理设备 |
US11551082B2 (en) * | 2019-01-10 | 2023-01-10 | Koninklijke Philips N.V. | Parallel sequence reductions with recursive neural networks |
CN110009103B (zh) * | 2019-03-26 | 2021-06-29 | 深兰科技(上海)有限公司 | 一种深度学习卷积计算的方法和装置 |
CN112085175B (zh) * | 2019-06-14 | 2024-05-03 | 华为技术有限公司 | 基于神经网络计算的数据处理方法和装置 |
US11726679B2 (en) * | 2019-11-05 | 2023-08-15 | Western Digital Technologies, Inc. | Applying endurance groups to zoned namespaces |
CN110782396B (zh) * | 2019-11-25 | 2023-03-28 | 武汉大学 | 一种轻量化的图像超分辨率重建网络和重建方法 |
KR102361029B1 (ko) * | 2019-11-29 | 2022-02-10 | 주식회사 모아이스 | 골프에 관한 콘텐츠를 추천하기 위한 방법, 디바이스 및 비일시성의 컴퓨터 판독 가능한 기록 매체 |
CN111341306B (zh) * | 2020-02-14 | 2022-06-17 | 东南大学 | 基于语音特征复用的关键词唤醒cnn的存储和计算压缩方法 |
KR102494565B1 (ko) * | 2020-05-20 | 2023-01-31 | 연세대학교 산학협력단 | 콘볼루션 신경망의 하드웨어 구조 최적화 방법 |
CN111610963B (zh) * | 2020-06-24 | 2021-08-17 | 上海西井信息科技有限公司 | 芯片结构及其乘加计算引擎 |
US11276470B2 (en) | 2020-07-17 | 2022-03-15 | Micron Technology, Inc. | Bitline driver isolation from page buffer circuitry in memory device |
KR20220028899A (ko) | 2020-08-31 | 2022-03-08 | 삼성전자주식회사 | 가속기, 가속기의 동작 방법 및 이를 포함한 전자 장치 |
CN112508137B (zh) * | 2021-02-09 | 2021-07-06 | 南方电网数字电网研究院有限公司 | 变压器异常检测方法、装置、计算机设备和存储介质 |
CN113313056A (zh) * | 2021-06-16 | 2021-08-27 | 中国科学技术大学 | 基于紧致3d卷积的唇语识别方法、系统、设备及存储介质 |
CN113239899B (zh) * | 2021-06-17 | 2024-05-28 | 阿波罗智联(北京)科技有限公司 | 用于处理图像和生成卷积核的方法、路侧设备和云控平台 |
CN113344200B (zh) * | 2021-06-17 | 2024-05-28 | 阿波罗智联(北京)科技有限公司 | 用于训练可分离卷积网络的方法、路侧设备及云控平台 |
TWI828185B (zh) * | 2022-06-09 | 2024-01-01 | 大陸商星宸科技股份有限公司 | 三維卷積運算裝置與三維卷積運算方法 |
WO2024104879A1 (en) * | 2022-11-14 | 2024-05-23 | Nokia Solutions And Networks Oy | Apparatus and method for performing a depthwise convolution operation |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10083395B2 (en) * | 2015-05-21 | 2018-09-25 | Google Llc | Batch processing in a neural network processor |
US10831444B2 (en) * | 2016-04-04 | 2020-11-10 | Technion Research & Development Foundation Limited | Quantized neural network training and inference |
GB201607713D0 (en) * | 2016-05-03 | 2016-06-15 | Imagination Tech Ltd | Convolutional neural network |
US10733505B2 (en) * | 2016-11-10 | 2020-08-04 | Google Llc | Performing kernel striding in hardware |
US11157814B2 (en) * | 2016-11-15 | 2021-10-26 | Google Llc | Efficient convolutional neural networks and techniques to reduce associated computational costs |
CN106709565A (zh) * | 2016-11-16 | 2017-05-24 | 广州视源电子科技股份有限公司 | 一种神经网络的优化方法及装置 |
CN107153873B (zh) * | 2017-05-08 | 2018-06-01 | 中国科学院计算技术研究所 | 一种二值卷积神经网络处理器及其使用方法 |
CN107798382B (zh) * | 2017-11-21 | 2020-09-01 | 南京地平线机器人技术有限公司 | 用于适配卷积神经网络中的特征数据的方法和装置 |
CN108108811B (zh) | 2017-12-18 | 2021-07-30 | 南京地平线机器人技术有限公司 | 神经网络中的卷积计算方法和电子设备 |
-
2017
- 2017-12-18 CN CN201711361938.6A patent/CN108108811B/zh active Active
-
2018
- 2018-12-17 US US16/222,693 patent/US11574031B2/en active Active
- 2018-12-18 KR KR1020180164347A patent/KR102285965B1/ko active IP Right Grant
- 2018-12-18 EP EP18213271.2A patent/EP3499427A1/en not_active Withdrawn
- 2018-12-18 JP JP2018236272A patent/JP6813561B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
EP3499427A1 (en) | 2019-06-19 |
JP2019109895A (ja) | 2019-07-04 |
KR102285965B1 (ko) | 2021-08-03 |
US20190197083A1 (en) | 2019-06-27 |
US11574031B2 (en) | 2023-02-07 |
CN108108811A (zh) | 2018-06-01 |
KR20190073302A (ko) | 2019-06-26 |
CN108108811B (zh) | 2021-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6813561B2 (ja) | ニューラルネットワークにおける畳み込み計算のための方法および電子デバイス | |
JP6762352B2 (ja) | ニューラルネットワークにおける畳み込み計算のための方法および電子デバイス | |
CN109919311B (zh) | 生成指令序列的方法、执行神经网络运算的方法和装置 | |
CN106951962B (zh) | 用于神经网络的复合运算单元、方法和电子设备 | |
US11934798B2 (en) | Counter-based multiplication using processing in memory | |
CN112612521A (zh) | 一种用于执行矩阵乘运算的装置和方法 | |
EP3093757B1 (en) | Multi-dimensional sliding window operation for a vector processor | |
CN111767986A (zh) | 一种基于神经网络的运算方法及装置 | |
JP2020107338A (ja) | ニューラルネットワークのコンボルーション演算を処理する方法及びその装置 | |
CN111126559A (zh) | 神经网络处理器及其卷积操作方法 | |
US11748100B2 (en) | Processing in memory methods for convolutional operations | |
KR20230081697A (ko) | 팽창 컨볼루션 계산 가속화 방법 및 장치 | |
US20230025068A1 (en) | Hybrid machine learning architecture with neural processing unit and compute-in-memory processing elements | |
US20230047364A1 (en) | Partial sum management and reconfigurable systolic flow architectures for in-memory computation | |
JP2019523503A (ja) | 区分線形近似のためのシステムおよび方法 | |
KR20220114228A (ko) | 프로세서, 프로세서의 동작 방법 및 이를 포함한 전자 장치 | |
CN116997911A (zh) | 加速卷积神经网络执行卷积操作 | |
WO2023004570A1 (en) | Activation buffer architecture for data-reuse in a neural network accelerator | |
KR102361249B1 (ko) | 브로드캐스팅 멀티플라이 최적화 방법 및 이를 이용한 하드웨어 가속기, 이를 이용한 컴퓨팅 장치 | |
CN110750249B (zh) | 一种快速傅里叶变换代码的生成方法及装置 | |
CN112308217B (zh) | 一种卷积神经网络加速方法及系统 | |
US9311272B1 (en) | System and method for faster division | |
US9454345B1 (en) | Apparatus for faster division | |
WO2023004374A1 (en) | Hybrid machine learning architecture with neural processing unit and compute-in-memory processing elements | |
CN117055800A (zh) | 数据存储方法及装置、计算机可读介质和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190214 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200225 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200316 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200616 |
|
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: 20201124 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201217 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6813561 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |