JP6762352B2 - ニューラルネットワークにおける畳み込み計算のための方法および電子デバイス - Google Patents
ニューラルネットワークにおける畳み込み計算のための方法および電子デバイス Download PDFInfo
- Publication number
- JP6762352B2 JP6762352B2 JP2018236273A JP2018236273A JP6762352B2 JP 6762352 B2 JP6762352 B2 JP 6762352B2 JP 2018236273 A JP2018236273 A JP 2018236273A JP 2018236273 A JP2018236273 A JP 2018236273A JP 6762352 B2 JP6762352 B2 JP 6762352B2
- Authority
- JP
- Japan
- Prior art keywords
- predetermined number
- points
- convolution
- 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/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/08—Learning methods
-
- 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
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)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Neurology (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 (14)
- ニューラルネットワークにおける畳み込み計算のための方法であって、
ダイナミックランダムアクセスメモリ(DRAM)から入力特徴マップ、depthwise畳み込みカーネル、pointwise畳み込みカーネルを読み出すステップと、
前記入力特徴マップ、前記depthwise畳み込みカーネル、および前記pointwise畳み込みカーネルに従ってdepthwise畳み込み計算ユニットおよびpointwise畳み込み計算ユニットによってdepthwise畳み込み計算およびpointwise畳み込み計算を実行して、すべてのpointwise畳み込み出力チャネル上の第1の所定の数p個の点の出力特徴値を取得するステップであって、前記第1の所定の数pは、オンチップメモリ内の利用可能な空間、前記depthwise畳み込み計算ユニットの数、前記入力特徴マップの高さと幅、およびチャネルの数の大きさ、のうちの少なくとも1つに従って決定される、ステップと、
すべてのpointwise畳み込み出力チャネル上で第1の所定の数p個の点の前記出力特徴値をオンチップメモリに記憶するステップと、
上記の演算を繰り返して、すべてのpointwise畳み込み出力チャネル上のすべての点の出力特徴値を取得するステップとを含み、
前記実行するステップは、
前記depthwise畳み込み計算を、前記入力特徴マップおよび前記depthwise畳み込みカーネルに従って実行して、第2の所定の数m個のdepthwise畳み込み出力チャネル上で前記第1の所定の数p個の点の中間特徴値を取得し、各中間特徴値を前記オンチップメモリに記憶するステップであって、前記第2の所定の数mは、前記depthwise畳み込み計算ユニットの数および前記第1の所定の数pに従って決定される、ステップと、
前記第1の所定の数p個の点の前記中間特徴値による前記pointwise畳み込み計算を前記第2の所定の数m個のdepthwise畳み込み出力チャネルおよび前記pointwise畳み込みカーネルに対して実行して、すべての前記pointwise畳み込み出力チャネル上で前記第1の所定の数p個の点の現在のpointwise畳み込み部分和を取得するステップと、
累算計算を、すべてのpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記現在のpointwise畳み込みの部分和と前記第1の所定の数p個の点の前の累算計算結果に対してそれぞれ実行して、前記第1の所定の数p個の点の現在の累算計算結果を生成し、前記第1の所定の数p個の点の前記現在の累算計算結果を前記オンチップメモリに記憶するステップと、
上記の演算を、次の第2の所定の数m個のdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の中間特徴値および前記pointwise畳み込みカーネルに従って前記pointwise畳み込み計算を実行し、それに対応して、その後の演算を、前記pointwise畳み込み計算および累算計算がすべてのdepthwise畳み込み出力チャネル上で前記第1の所定の数p個の点の前記中間特徴値のすべてに対して完了するまで、実行することによって繰り返すステップであって、前記第1の所定の数p個の点の最終的累算計算結果がすべてのpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の出力特徴値である、ステップとを含む、方法。 - 前記depthwise畳み込み計算を、前記入力特徴マップおよび前記depthwise畳み込みカーネルに従って実行して、次の第2の所定の数m個のdepthwise畳み込み出力チャネル上で前記第1の所定の数p個の点の中間特徴値を取得するステップは、
前記入力特徴マップから第2の所定の数m個の入力チャネル上で点の第1の所定の数p個のグループの入力特徴値を読み出すステップと、
前記第2の所定の数m個の入力チャネル上で点の前記第1の所定の数p個のグループの前記入力特徴値に対応する、対応する第2の所定の数m個のdepthwise畳み込みカーネルにおける重み値を読み出すステップと、
前記対応する第2の所定の数m個のdepthwise畳み込みカーネルにおける重み値ととも前記第2の所定の数m個の入力チャネル上の点の前記第1の所定の数p個のグループの前記入力特徴値に対して前記depthwise畳み込み計算をそれぞれ実行して、前記第2の所定の数m個のdepthwise畳み込み出力チャネル上で点の前記第1の所定の数p個のグループにそれぞれ対応する前記第1の所定の数p個の点の中間特徴値を取得するステップとを含む請求項1に記載の方法。 - 前記pointwise畳み込み計算を実行するステップと同時に、前記入力特徴マップから前記第2の所定の数m個の入力チャネル上の点の第1の所定の数p個のグループの前記入力特徴値と、前記対応する重み値とを読み出すステップをさらに含む請求項2に記載の方法。
- 前記入力特徴マップから第2の所定の数m個の入力チャネル上で点の第1の所定の数p個のグループの入力特徴値を読み出すステップは、
前記入力特徴マップから前記第2の所定の数m個の入力チャネル上で点の前記第1の所定の数p個のグループの前記入力特徴値を読み出すステップであって、点の各グループは前記depthwise畳み込みカーネルにおける前記重み値の幅および高さに等しい幅および高さを有し、点の2つの隣接するグループは前記depthwise畳み込み計算のストライドに等しいストライドを有する、ステップを含む請求項2に記載の方法。 - 前記対応する第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個の入力チャネル上の点の前記グループの次の点の入力特徴値、および前記対応する第2の所定の数m個のdepthwise畳み込みカーネルにおける対応する次の1つの重み値に対して乗算計算をそれぞれ実行し、それに対応して、前記第2の所定の数m個の入力チャネル上の点の前記グループのすべての点の前記入力特徴値に対する前記乗算計算および累算計算が完了するまでその後の演算を実行することによって繰り返す演算であって、点の前記グループの前記最終的累算計算結果は前記第2の所定の数m個のdepthwise畳み込み出力チャネル上の点の前記グループに対応する1つの点の中間特徴値である、演算とを実行するステップを含む請求項2に記載の方法。 - 活性化演算および量子化演算のうちの少なくとも一方を各中間特徴値に対して、それを前記オンチップメモリに記憶する前に実行するステップをさらに含む請求項1に記載の方法。
- 前記第1の所定の数p個の点の前記中間特徴値による前記pointwise畳み込み計算を前記第2の所定の数m個のdepthwise畳み込み出力チャネルおよび前記pointwise畳み込みカーネルに対して実行して、すべての前記pointwise畳み込み出力チャネル上で前記第1の所定の数p個の点の現在のpointwise畳み込み部分和を取得するステップは、
それぞれ、すべてのpointwise畳み込みカーネル内の対応する第3の所定の数m'個のpointwise畳み込みチャネル上の重み値とともに第3の所定の数m'個のdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の中間特徴値に従って前記pointwise畳み込み計算を実行して、すべてのpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の現在のpointwise畳み込み下位部分和を取得するステップと、
すべてのpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記現在のpointwise畳み込みの下位部分和および前記第1の所定の数p個の点の前記前の累算計算部分結果に対する累算計算を実行して、前記第1の所定の数p個の点の前記現在の累算計算部分結果を生成するステップと、
上記の演算を、それぞれ、すべてのpointwise畳み込みカーネルにおける対応する次の第3の所定の数m'個のpointwise畳み込みチャネル上の重み値とともに次の第3の所定の数m'個のdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の中間特徴値に従って前記pointwise畳み込み計算を実行し、それに対応して、その後の演算を、前記pointwise畳み込み計算および累算計算が前記第2の所定の数m個のdepthwise畳み込み出力チャネル上で前記第1の所定の数p個の点の中間特徴値のすべてに対して完了するまで実行することによって繰り返すステップであって、前記第1の所定の数p個の点の最終的累算計算部分結果はすべてのpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記現在のpointwise畳み込み部分和である、ステップとを含む請求項1に記載の方法。 - それぞれ、前記pointwise畳み込み計算を、すべてのpointwise畳み込みカーネル内の対応する第3の所定の数m'個のpointwise畳み込みチャネル上の重み値とともに第3の所定の数m'個のdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の中間特徴値に従って実行して、すべてのpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の現在のpointwise畳み込み下位部分和を取得するステップは、
前記pointwise畳み込み計算を、第4の所定の数n個のpointwise畳み込みカーネル内の前記対応する第3の所定の数m'個のpointwise畳み込みチャネル上の重み値とともに前記第3の所定の数m'個のdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記中間特徴値に従って実行して、前記第4の所定の数n個のpointwise畳み込みカーネルに対応する第4の所定の数n個のpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の現在のpointwise畳み込み下位部分和を取得するステップであって、前記第3の所定の数m'および前記第4のプリセットされた数nは、pointwise畳み込み計算ユニットの数および前記第1の所定の数pに従って決定される、ステップと、
上記の演算を、前記pointwise畳み込み計算を、次の第4の所定の数n個のpointwise畳み込みカーネル内の前記対応する第3の所定の数m'個のpointwise畳み込みチャネル上の重み値とともに前記第3の所定の数m'個のdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記中間特徴値に対して実行して、前記次の第4の所定の数n個のpointwise畳み込みカーネルに対応する次の第4の所定の数n個のpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の現在のpointwise畳み込み下位部分和を取得することによって、すべてのpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記現在のpointwise畳み込み下位部分和が取得されるまで繰り返すステップとを含む請求項7に記載の方法。 - 前記pointwise畳み込み計算を、第4の所定の数n個のpointwise畳み込みカーネル内の前記対応する第3の所定の数m'個のpointwise畳み込みチャネル上の重み値とともに前記第3の所定の数m'個のdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記中間特徴値に従って実行して、前記第4の所定の数n個のpointwise畳み込みカーネルに対応する第4の所定の数n個のpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記現在のpointwise畳み込み下位部分和を取得するステップは、
前記第2の所定の数m個のdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記中間特徴値から前記第3の所定の数m'個のdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記中間特徴値を読み出すステップと、
前記第3の所定の数m'個のdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記中間特徴値に対応して前記第4の所定の数n個のpointwise畳み込みカーネル内の前記対応する第3の所定の数m'個のpointwise畳み込みチャネル上の重み値を読み出すステップと、
それぞれ、前記pointwise畳み込み計算を、前記第3の所定の数m'個のdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記中間特徴値および前記第4の所定の数n個のpointwise畳み込みカーネル内の前記対応する第3の所定の数m'個のpointwise畳み込みチャネル上の重み値に対して実行して、前記第4の所定の数n個のpointwise畳み込みカーネルに対応する第4の所定の数n個のpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の現在のpointwise畳み込み下位部分和を取得するステップとを含む請求項8に記載の方法。 - それぞれ、前記pointwise畳み込み計算を、前記第3の所定の数m'個のdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記中間特徴値および前記第4の所定の数n個のpointwise畳み込みカーネル内の前記対応する第3の所定の数m'個のpointwise畳み込みチャネル上の重み値に対して実行して、前記第4の所定の数n個のpointwise畳み込みカーネルに対応する第4の所定の数n個のpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の現在のpointwise畳み込み下位部分和を取得するステップは、
前記第1の所定の数p個の点のうちの各点に対して、
第4の所定の数n個のpointwise畳み込みカーネル内の対応する第3の所定の数m'個のpointwise畳み込みチャネル上の重み値とともに第3の所定の数m'個のdepthwise畳み込み出力チャネル上の点の中間特徴値に対して乗算計算をそれぞれ実行して、結果の第4の所定の数n個のグループを取得する演算であって、その各グループが第3の所定の数m'個の乗算計算結果を含む、演算と、
それぞれ、結果の前記第4の所定の数n個のグループ内に結果の各グループの前記第3の所定の数m'個の乗算計算結果を加算して、前記第4の所定の数n個のpointwise畳み込みカーネルに対応する前記第4の所定の数n個のpointwise畳み込み出力チャネル上の前記点の現在のpointwise畳み込み下位部分和を取得する演算とを実行するステップを含む請求項9に記載の方法。 - 前記現在の累算計算部分結果を生成した後に、前記第1の所定の数p個の点の前記現在の累算計算部分結果を前記オンチップメモリに記憶し、前記第1の所定の数p個の点の前記前の累算計算部分結果をカバーするステップをさらに含む請求項7に記載の方法。
- 活性化演算および量子化演算のうちの少なくとも一方を、前記第1の所定の数p個の点の前記最終的累算計算結果をすべてのpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の出力特徴値として前記オンチップメモリに記憶する前に、各出力特徴値に対して実行するステップをさらに含む請求項1に記載の方法。
- 電子デバイスであって、
プロセッサと、
コンピュータプログラム命令が記憶されているメモリであって、前記命令は、前記プロセッサによって実行されたときに、ニューラルネットワークにおける畳み込み計算の方法を前記プロセッサに実行させ、前記命令は
ダイナミックランダムアクセスメモリ(DRAM)から入力特徴マップ、depthwise畳み込みカーネル、pointwise畳み込みカーネルを読み出すステップと、
前記入力特徴マップ、前記depthwise畳み込みカーネル、および前記pointwise畳み込みカーネルに従ってdepthwise畳み込み計算ユニットおよびpointwise畳み込み計算ユニットによってdepthwise畳み込み計算およびpointwise畳み込み計算を実行して、すべてのpointwise畳み込み出力チャネル上の第1の所定の数p個の点の出力特徴値を取得するステップと、
すべてのpointwise畳み込み出力チャネル上で第1の所定の数p個の点の前記出力特徴値をオンチップメモリに記憶するステップと、
上記の演算を繰り返して、すべてのpointwise畳み込み出力チャネル上のすべての点の出力特徴値を取得するステップとを含み、
前記実行するステップは、
前記depthwise畳み込み計算を、前記入力特徴マップおよび前記depthwise畳み込みカーネルに従って実行して、第2の所定の数m個のdepthwise畳み込み出力チャネル上で前記第1の所定の数p個の点の中間特徴値を取得し、各中間特徴値を前記オンチップメモリに記憶するステップであって、前記第2の所定の数mは、前記depthwise畳み込み計算ユニットの数および前記第1の所定の数pに従って決定される、ステップと、
前記第1の所定の数p個の点の前記中間特徴値による前記pointwise畳み込み計算を前記第2の所定の数m個のdepthwise畳み込み出力チャネルおよび前記pointwise畳み込みカーネルに対して実行して、すべての前記pointwise畳み込み出力チャネル上で前記第1の所定の数p個の点の現在のpointwise畳み込み部分和を取得するステップと、
累算計算を、すべてのpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記現在のpointwise畳み込みの部分和と前記第1の所定の数p個の点の前の累算計算結果に対してそれぞれ実行して、前記第1の所定の数p個の点の現在の累算計算結果を生成し、前記第1の所定の数p個の点の前記現在の累算計算結果を前記オンチップメモリに記憶するステップと、
上記の演算を、次の第2の所定の数m個のdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の中間特徴値および前記pointwise畳み込みカーネルに従って前記pointwise畳み込み計算を実行し、それに対応して、その後の演算を、前記pointwise畳み込み計算および累算計算がすべてのdepthwise畳み込み出力チャネル上で前記第1の所定の数p個の点の前記中間特徴値のすべてに対して完了するまで、実行することによって繰り返すステップであって、前記第1の所定の数p個の点の最終的累算計算結果がすべてのpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の出力特徴値である、ステップとを含む、メモリとを備える電子デバイス。 - コンピュータプログラム命令が記憶されているコンピュータ可読記憶媒体であって、前記命令は、プロセッサによって実行されたときに、ニューラルネットワークにおける畳み込み計算の方法をプロセッサに実行させ、前記命令は
ダイナミックランダムアクセスメモリ(DRAM)から入力特徴マップ、depthwise畳み込みカーネル、pointwise畳み込みカーネルを読み出すステップと、
前記入力特徴マップ、前記depthwise畳み込みカーネル、および前記pointwise畳み込みカーネルに従ってdepthwise畳み込み計算ユニットおよびpointwise畳み込み計算ユニットによってdepthwise畳み込み計算およびpointwise畳み込み計算を実行して、すべてのpointwise畳み込み出力チャネル上の第1の所定の数p個の点の出力特徴値を取得するステップと、
すべてのpointwise畳み込み出力チャネル上で第1の所定の数p個の点の前記出力特徴値をオンチップメモリに記憶するステップと、
上記の演算を繰り返して、すべてのpointwise畳み込み出力チャネル上のすべての点の出力特徴値を取得するステップとを含み、
前記実行するステップは、
前記depthwise畳み込み計算を、前記入力特徴マップおよび前記depthwise畳み込みカーネルに従って実行して、第2の所定の数m個のdepthwise畳み込み出力チャネル上で前記第1の所定の数p個の点の中間特徴値を取得し、各中間特徴値を前記オンチップメモリに記憶するステップであって、前記第2の所定の数mは、前記depthwise畳み込み計算ユニットの数および前記第1の所定の数pに従って決定される、ステップと、
前記第1の所定の数p個の点の前記中間特徴値による前記pointwise畳み込み計算を前記第2の所定の数m個のdepthwise畳み込み出力チャネルおよび前記pointwise畳み込みカーネルに対して実行して、すべての前記pointwise畳み込み出力チャネル上で前記第1の所定の数p個の点の現在のpointwise畳み込み部分和を取得するステップと、
累算計算を、すべてのpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の前記現在のpointwise畳み込みの部分和と前記第1の所定の数p個の点の前の累算計算結果に対してそれぞれ実行して、前記第1の所定の数p個の点の現在の累算計算結果を生成し、前記第1の所定の数p個の点の前記現在の累算計算結果を前記オンチップメモリに記憶するステップと、
上記の演算を、次の第2の所定の数m個のdepthwise畳み込み出力チャネル上の前記第1の所定の数p個の点の中間特徴値および前記pointwise畳み込みカーネルに従って前記pointwise畳み込み計算を実行し、それに対応して、その後の演算を、前記pointwise畳み込み計算および累算計算がすべてのdepthwise畳み込み出力チャネル上で前記第1の所定の数p個の点の前記中間特徴値のすべてに対して完了するまで、実行することによって繰り返すステップであって、前記第1の所定の数p個の点の最終的累算計算結果がすべてのpointwise畳み込み出力チャネル上の前記第1の所定の数p個の点の出力特徴値である、ステップとを含む、コンピュータ可読記憶媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711361968.7 | 2017-12-18 | ||
CN201711361968.7A CN107844828B (zh) | 2017-12-18 | 2017-12-18 | 神经网络中的卷积计算方法和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019109896A JP2019109896A (ja) | 2019-07-04 |
JP6762352B2 true JP6762352B2 (ja) | 2020-09-30 |
Family
ID=61663315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018236273A Active JP6762352B2 (ja) | 2017-12-18 | 2018-12-18 | ニューラルネットワークにおける畳み込み計算のための方法および電子デバイス |
Country Status (5)
Country | Link |
---|---|
US (1) | US20190188237A1 (ja) |
EP (1) | EP3499428A1 (ja) |
JP (1) | JP6762352B2 (ja) |
KR (1) | KR102305851B1 (ja) |
CN (1) | CN107844828B (ja) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108520297B (zh) * | 2018-04-02 | 2020-09-04 | 周军 | 可编程深度神经网络处理器 |
CN108549931A (zh) * | 2018-04-25 | 2018-09-18 | 济南浪潮高新科技投资发展有限公司 | 一种卷积神经网络的加速装置及方法 |
CN108710906B (zh) * | 2018-05-11 | 2022-02-11 | 北方民族大学 | 基于轻量级网络LightPointNet的实时点云模型分类方法 |
CN110633785B (zh) * | 2018-06-21 | 2021-01-05 | 清华大学 | 一种卷积神经网络的计算方法及系统 |
CN110766127B (zh) * | 2018-07-25 | 2022-09-23 | 赛灵思电子科技(北京)有限公司 | 神经网络计算专用电路及其相关计算平台与实现方法 |
CN110858323A (zh) * | 2018-08-23 | 2020-03-03 | 北京京东金融科技控股有限公司 | 基于卷积的图像处理方法、装置、介质及电子设备 |
CN109284817B (zh) * | 2018-08-31 | 2022-07-05 | 中国科学院上海高等研究院 | 深度可分离卷积神经网络处理架构/方法/系统及介质 |
US20200090030A1 (en) * | 2018-09-19 | 2020-03-19 | British Cayman Islands Intelligo Technology Inc. | Integrated circuit for convolution calculation in deep neural network and method thereof |
US20220011291A1 (en) * | 2018-11-01 | 2022-01-13 | The Brigham And Women's Hospital, Inc. | Automatic determination of a biological condition of a subject from ferning patterns |
US11449729B2 (en) * | 2018-11-08 | 2022-09-20 | Arm Limited | Efficient convolutional neural networks |
CN109753996B (zh) * | 2018-12-17 | 2022-05-10 | 西北工业大学 | 基于三维轻量化深度网络的高光谱图像分类方法 |
CN109740534B (zh) * | 2018-12-29 | 2021-06-25 | 北京旷视科技有限公司 | 图像处理方法、装置及处理设备 |
CN109976903B (zh) | 2019-02-22 | 2021-06-29 | 华中科技大学 | 一种基于层宽内存分配的深度学习异构计算方法和系统 |
CN110009103B (zh) * | 2019-03-26 | 2021-06-29 | 深兰科技(上海)有限公司 | 一种深度学习卷积计算的方法和装置 |
KR102432254B1 (ko) * | 2019-05-16 | 2022-08-12 | 삼성전자주식회사 | 전자 장치가 뉴럴 네트워크 내의 소정 레이어에서 컨볼루션 연산을 수행하는 방법 및 그 방법을 수행하는 전자 장치 |
CN112183711B (zh) * | 2019-07-01 | 2023-09-12 | 瑞昱半导体股份有限公司 | 使用像素通道置乱的卷积神经网络的演算方法与系统 |
CN110458280B (zh) * | 2019-07-15 | 2022-08-30 | 武汉魅瞳科技有限公司 | 一种适用于移动端的卷积神经网络加速方法及系统 |
CN112308105B (zh) * | 2019-08-02 | 2024-04-12 | 北京图森智途科技有限公司 | 目标检测方法、目标检测器及相关设备 |
US11657282B2 (en) * | 2019-09-16 | 2023-05-23 | Qualcomm Incorporated | Efficient inferencing with fast pointwise convolution |
CN111091181B (zh) * | 2019-12-09 | 2023-09-05 | Oppo广东移动通信有限公司 | 卷积处理单元、神经网络处理器、电子设备及卷积运算方法 |
CN113052291B (zh) * | 2019-12-27 | 2024-04-16 | 上海商汤智能科技有限公司 | 数据处理方法和装置 |
CN111291864B (zh) * | 2020-01-20 | 2023-11-03 | Oppo广东移动通信有限公司 | 运算处理模组、神经网络处理器、电子设备及数据处理方法 |
US11423315B2 (en) * | 2020-02-06 | 2022-08-23 | National Tsing Hua University | Quantization method for partial sums of convolution neural network based on computing-in-memory hardware and system thereof |
CN113361679B (zh) * | 2020-03-05 | 2023-10-17 | 华邦电子股份有限公司 | 存储器装置及其操作方法 |
CN111382712B (zh) * | 2020-03-12 | 2023-06-02 | 厦门熵基科技有限公司 | 一种手掌图像识别方法、系统及设备 |
US20210334072A1 (en) * | 2020-04-22 | 2021-10-28 | Facebook, Inc. | Mapping convolution to connected processing elements using distributed pipelined separable convolution operations |
CN111610963B (zh) * | 2020-06-24 | 2021-08-17 | 上海西井信息科技有限公司 | 芯片结构及其乘加计算引擎 |
CN111985645A (zh) * | 2020-08-28 | 2020-11-24 | 北京市商汤科技开发有限公司 | 一种神经网络的训练方法、装置、电子设备及存储介质 |
CN112200300B (zh) * | 2020-09-15 | 2024-03-01 | 星宸科技股份有限公司 | 卷积神经网络运算方法及装置 |
CN112396165B (zh) * | 2020-11-30 | 2024-06-11 | 珠海零边界集成电路有限公司 | 用于卷积神经网络的运算装置和方法 |
CN112801266B (zh) * | 2020-12-24 | 2023-10-31 | 武汉旷视金智科技有限公司 | 神经网络构建方法、装置、设备及介质 |
CN112862774B (zh) * | 2021-02-02 | 2021-12-07 | 重庆市地理信息和遥感应用中心 | 一种遥感影像建筑物精确分割方法 |
KR20220114890A (ko) * | 2021-02-09 | 2022-08-17 | 한국과학기술정보연구원 | 뉴럴 네트워크 연산 방법 및 이를 위한 장치 |
US11544213B2 (en) * | 2021-03-04 | 2023-01-03 | Samsung Electronics Co., Ltd. | Neural processor |
WO2022195891A1 (ja) * | 2021-03-19 | 2022-09-22 | 三菱電機株式会社 | 構成変換装置、構成変換方法、および構成変換プログラム |
CN113673690B (zh) * | 2021-07-20 | 2024-05-28 | 天津津航计算技术研究所 | 一种水下噪声分类卷积神经网络加速器 |
CN114943635B (zh) * | 2021-09-30 | 2023-08-22 | 太初(无锡)电子科技有限公司 | 一种基于异构协同计算核心的融合算子设计与实现方法 |
CN116306840A (zh) * | 2021-12-03 | 2023-06-23 | 中兴通讯股份有限公司 | 神经网络运算方法、装置、芯片、电子设备和存储介质 |
CN116720563B (zh) * | 2022-09-19 | 2024-03-29 | 荣耀终端有限公司 | 一种提升定点神经网络模型精度的方法、装置及电子设备 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9400955B2 (en) * | 2013-12-13 | 2016-07-26 | Amazon Technologies, Inc. | Reducing dynamic range of low-rank decomposition matrices |
CN107111782B (zh) * | 2014-11-26 | 2021-05-14 | 柯纳睿资本有限责任公司 | 神经网络结构及其方法 |
US10083395B2 (en) * | 2015-05-21 | 2018-09-25 | Google Llc | Batch processing in a neural network processor |
US10438112B2 (en) * | 2015-05-26 | 2019-10-08 | Samsung Electronics Co., Ltd. | Method and apparatus of learning neural network via hierarchical ensemble learning |
KR102592076B1 (ko) * | 2015-12-14 | 2023-10-19 | 삼성전자주식회사 | 딥러닝 기반 영상 처리 장치 및 방법, 학습 장치 |
CN106339753A (zh) * | 2016-08-17 | 2017-01-18 | 中国科学技术大学 | 一种有效提升卷积神经网络稳健性的方法 |
CN106355244B (zh) * | 2016-08-30 | 2019-08-13 | 深圳市诺比邻科技有限公司 | 卷积神经网络的构建方法及系统 |
CN106951962B (zh) * | 2017-03-22 | 2020-09-01 | 南京地平线机器人技术有限公司 | 用于神经网络的复合运算单元、方法和电子设备 |
CN107451654B (zh) * | 2017-07-05 | 2021-05-18 | 深圳市自行科技有限公司 | 卷积神经网络的加速运算方法、服务器及存储介质 |
-
2017
- 2017-12-18 CN CN201711361968.7A patent/CN107844828B/zh active Active
-
2018
- 2018-12-17 US US16/222,699 patent/US20190188237A1/en active Pending
- 2018-12-18 JP JP2018236273A patent/JP6762352B2/ja active Active
- 2018-12-18 KR KR1020180164357A patent/KR102305851B1/ko active IP Right Grant
- 2018-12-18 EP EP18213279.5A patent/EP3499428A1/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP3499428A1 (en) | 2019-06-19 |
JP2019109896A (ja) | 2019-07-04 |
KR20190073303A (ko) | 2019-06-26 |
CN107844828A (zh) | 2018-03-27 |
US20190188237A1 (en) | 2019-06-20 |
CN107844828B (zh) | 2021-07-30 |
KR102305851B1 (ko) | 2021-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6762352B2 (ja) | ニューラルネットワークにおける畳み込み計算のための方法および電子デバイス | |
JP6813561B2 (ja) | ニューラルネットワークにおける畳み込み計算のための方法および電子デバイス | |
CN109919311B (zh) | 生成指令序列的方法、执行神经网络运算的方法和装置 | |
CN106951962B (zh) | 用于神经网络的复合运算单元、方法和电子设备 | |
US20180107630A1 (en) | Processor and method for executing matrix multiplication operation on processor | |
CN112612521A (zh) | 一种用于执行矩阵乘运算的装置和方法 | |
US11934798B2 (en) | Counter-based multiplication using processing in memory | |
EP3093757B1 (en) | Multi-dimensional sliding window operation for a vector processor | |
CN111767986A (zh) | 一种基于神经网络的运算方法及装置 | |
JP2020107338A (ja) | ニューラルネットワークのコンボルーション演算を処理する方法及びその装置 | |
US11120328B1 (en) | Systems and methods for reducing power consumption of convolution operations for artificial neural networks | |
KR20230081697A (ko) | 팽창 컨볼루션 계산 가속화 방법 및 장치 | |
US11748100B2 (en) | Processing in memory methods for convolutional operations | |
EP4374296A1 (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 | |
KR20220114228A (ko) | 프로세서, 프로세서의 동작 방법 및 이를 포함한 전자 장치 | |
CN116997911A (zh) | 加速卷积神经网络执行卷积操作 | |
WO2023004570A1 (en) | Activation buffer architecture for data-reuse in a neural network accelerator | |
CN110750249B (zh) | 一种快速傅里叶变换代码的生成方法及装置 | |
CN117055800A (zh) | 数据存储方法及装置、计算机可读介质和电子设备 | |
US9454345B1 (en) | Apparatus for faster division | |
WO2023004374A1 (en) | Hybrid machine learning architecture with neural processing unit and compute-in-memory processing elements | |
KR20240025827A (ko) | Imc(in memory computing) 프로세서 및 imc 프로세서의 동작 방법 | |
CN114943332A (zh) | 轻量级yolo模型的训练方法及相关设备 | |
KR20240038721A (ko) | 디지털 컴퓨트 인 메모리 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190213 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20191126 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20191216 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200316 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200406 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200706 |
|
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: 20200811 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200908 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6762352 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |