JP6715900B2 - ニューラルネットワークのパラメータを適応させるための方法および装置 - Google Patents

ニューラルネットワークのパラメータを適応させるための方法および装置 Download PDF

Info

Publication number
JP6715900B2
JP6715900B2 JP2018167990A JP2018167990A JP6715900B2 JP 6715900 B2 JP6715900 B2 JP 6715900B2 JP 2018167990 A JP2018167990 A JP 2018167990A JP 2018167990 A JP2018167990 A JP 2018167990A JP 6715900 B2 JP6715900 B2 JP 6715900B2
Authority
JP
Japan
Prior art keywords
dimension
padding
value
neural network
parameter
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
Application number
JP2018167990A
Other languages
English (en)
Other versions
JP2019061664A (ja
Inventor
凌坤
陳亮
李建軍
李徳林
黄暢
Original Assignee
南京地平綫机器人技術有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 南京地平綫机器人技術有限公司 filed Critical 南京地平綫机器人技術有限公司
Publication of JP2019061664A publication Critical patent/JP2019061664A/ja
Application granted granted Critical
Publication of JP6715900B2 publication Critical patent/JP6715900B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Tires In General (AREA)

Description

本願は、発明の名称が「ニューラルネットワークのパラメータを適応させるための方法および装置」である中国特許出願第201710874198.X号(2017年9月25日付け出願された)基礎として、優先権を主張し、その内容は、参照により本明細書に組み込まれる。
本開示は、人工ニューラルネットワークの技術分野に関し、具体的には、人工ニューラルネットワークのパラメータを適応させるための方法および装置に関する。
人工ニューラルネットワーク(以下「ニューラルネットワーク」という)は、生体ニューラルネットワークの行動特性を模倣して分散並列情報処理を行うアルゴリズム数学モデルである。このようなネットワークは、システムの複雑さに依存し、内部の多くのノード間の相互接続を調整することによって情報処理の目的を達成している。
通常のニューラルネットワークでは、一または複数(以下「一以上」という)のニューロンが互いに接続されて多層構造が形成される。各層における各ニューロンは、該層における各特徴データ(「入力データ」または「特徴マップ」とも称される)に対して、対応する一以上の重みパラメータを用いて、特定の活性化関数に基づいて計算を実行し、活性化値を得て、ニューラルネットワークの出力結果または次の層の特徴データとする。
異なる応用場面に対して、往々にして、異なるニューラルネットワークのアーキテクチャを設計することが要求され、所定種類のコンピューティングアーキテクチャにおいて一連の演算を行うことにより実現する必要がある。従って、ニューラルネットワークが効率的に表現されることが望まれ、かつ低いハードウェアコストによって、ニューラルネットワークにおける演算が効率的に実現することができ、またはシミュレーションによって、ニューラルネットワークにおける演算が、コンピューティングアーキテクチャによってサポートされた演算に効率的にマッピングされることが望まれている。
本開示は、ニューラルネットワークのパラメータを適応させる方法を提供する。該方法は、前記ニューラルネットワークの少なくとも一つの層における層ごとの重みパラメータについて、一または複数の次元を選択するステップと、前記重みパラメータの前記一または複数の次元における次元ごとのディメンション値および対応する目標値を決定するステップと、前記重みパラメータの前記一または複数の次元のうちの少なくとも一つの次元におけるディメンション値(dimension value)が対応する目標値よりも小さい場合、パディング後に得られた重みパラメータの前記一または複数の次元における次元ごとのディメンション値が対応する目標値に等しくなるように、前記少なくとも一つの次元において重みパラメータについてパディングするステップとを含む。
本開示は、ニューラルネットワークのパラメータを適応させる装置をさらに提供する。該装置は、上記方法を実行するように構成される一以上のプロセッサを具備する。
本開示は、ニューラルネットワークのパラメータを適応させる装置をさらに提供する。該装置は、前記ニューラルネットワークの少なくとも一つの層における層ごとの重みパラメータに対して選択された一または複数の次元について、前記重みパラメータの前記一または複数の次元における次元ごとのディメンション値および対応する目標値を決定するように構成された検出器と、前記重みパラメータの前記一または複数の次元のうちの少なくとも一つの次元におけるディメンション値が対応する目標値よりも小さい場合、パディング後に得られた重みパラメータの前記一または複数の次元における次元ごとのディメンション値が対応する目標値に等しくなるように、前記一または複数の次元において前記重みパラメータについてパディングするように構成されたパッダー(padder)とを具備する。
本開示は、上記方法の実行のためのプログラム指令が格納された非一時的記憶媒体をさらに提供する。
本開示は、一以上のプロセッサによって、前記方法が実行されるように構成されるコンピュータプログラムをさらに提供する。
本開示の例示方法及び装置は、規範化された形式を有するニューラルネットワークのパラメータを得ることができ、ニューラルネットワーク及び関連のハードウェアの設計および実装を簡略化することができる。
図1は、本開示の実施形態に係るニューラルネットワークのパラメータを適応させる例示方法を示す。 図2は、本開示の実施形態に係る重みパラメータ及び特徴データの次元の例を示す。 図3は、本開示の実施形態に係る数量の次元において重みパラメータに対してパディングする例を示す。 図4は、本開示の実施形態に係る幅および/または高さの次元において重みパラメータに対してパディングする例を示す。 図5は、本開示の実施形態に係る幅および/または高さの次元において重みパラメータに対してパディングする例を示す。 図6は、本開示の実施形態に係る幅および/または高さの次元において重みパラメータに対してパディングする例を示す。 図7は、本開示の実施形態に係る深さの次元において重みパラメータに対してパディングする例を示す。 図8は、本開示の実施形態に係るニューラルネットワークのパラメータを適応させる例示装置のブロック図を示す。 図9は、本開示の実施形態に係るニューラルネットワークのパラメータを適応させる例示装置のブロック図を示す。
以下の記載において、添付図面を参照しつつ、本開示に係る例示的な実施形態を述べる。
異なる応用場面および処理目標に基づいて、ニューラルネットワークの異なる層の特徴データおよび/または重みパラメータは、異なる形式および/または数量を有することができる。本明細書において、ニューラルネットワークの種類およびニューラルネットワークの層におけるキーとなる演算に依存し、重みパラメータは、該層のキーとなる演算に関連するキーとなるパラメータを含む。例えば、畳み込みニューラルネットワークの畳み込み層の場合、キーとなる演算は畳み込み演算とすることができ、かつ重みパラメータは一以上の畳み込みカーネルを含むことができる。
前記キーとなる演算及び重みパラメータの種類および/または視点または前記特徴に基づいて、一または複数の次元を決定または選択することができる。例えば、対応する重みパラメータが一以上の値である場合、重みパラメータは、少なくとも次のような次元の数量を有することができる。対応する重みパラメータが一以上の一次元データ(例えば、一以上の値を含む一次元配列)である場合、重みパラメータは、少なくとも幅(例えば、一次元配列におけるデータの数量)及び数量(例えば、一次元配列の数量)のような次元を有することができる。対応する重みパラメータが一以上の二次元データ(例えば、行列)である場合、重みパラメータは、少なくとも幅(例えば、行列の列の数)、高さ(例えば、行列の行の数)及び数量のような次元を有することができる。対応する重みパラメータが一以上の三次元データ(例えば、立方体)である場合、重みパラメータは、少なくとも幅、高さ、深さおよび数量の次元を有することができる。同様に、層ごとの特徴データは、一または複数の次元(例えば、幅、高さ、深さおよび数量)を有することができる。また、必要に応じて、ニューラルネットワークの所定の層の特徴データおよび/または重みパラメータについて、他の種類および数量の次元を考慮してもよいが、上記の例示に限定されることはない。
例えば、設計の複雑さおよびコストなどへの考慮から、ニューラルネットワークにおける演算をサポートするためのハードウェア(専用アクセラレータ、アキュムレータ、およびアキュムレータとの間の配線など)は、所定の形式および/または数量しか直接処理できない重みパラメータおよび/または特徴データであってもよく、または所定の形式および/または数量の重みパラメータおよび/または特徴データの場合にのみ、比較的良好な処理性能を有するとしてもよい。したがって、特徴データおよび/または重みパラメータに対してパディングして、規範化された形式および/または数量の特徴データおよび/または重みパラメータを得ることは、ハードウェア設計を簡素化し、コストを節約し、処理効率を向上させるなどのために有利である。
図1は、本開示の実施形態に係るニューラルネットワークのパラメータを適合させるための例示方法100を示す。
図1に示すように、ニューラルネットワークの少なくとも一の層における未処理層の重みパラメータに対し、ステップ110において、一または複数の次元を選択する。
ステップ120において、該重みパラメータの選択された一または複数の次元における次元ごとのディメンション値および対応する目標値を決定する。
ステップ130において、各次元に対して、該重みパラメータの該次元におけるディメンション値および対応する目標値を比較する。該重みパラメータの少なくとも一つの次元におけるディメンション値が対応する目標値より小さい場合、方法100はステップ140に進む。そうでなければ、方法100はステップ110に返し、次の未処理層の重みパラメータの処理を続行する。
ステップ140において、パディング後に得られた重みパラメータが選択された一または複数の次元における次元ごとのディメンション値がいずれも対応する目標値に等しくなるように、ステップ130における比較結果に基づいて決定された各次元において、重みパラメータに対してパディングする。次に、方法100はステップ110に返し、次の未処理層の重みパラメータの処理を続行する。
以下の記載において、畳み込みニューラルネットワークを例として、本開示に係る実施形態による方法をより詳細に説明する。ただし、本開示の原理は、畳み込みニューラルネットワークに限定されることはなく、他の種類のニューラルネットワークにも適用することができる。
図2に畳み込みニューラルネットワークにおける特徴データおよび重みパラメータの次元の例を示す。図2に示すように、特徴データは、少なくとも幅、高さ、深さ(またはチャネル数)、および数量(図示せず)などのような次元を有してもよい。図2に示すように、重みパラメータは、同じ形状およびサイズを有する一以上の畳み込みカーネルであってもよく、かつ少なくとも幅(畳み込みカーネルごとの幅)、高さ(畳み込みカーネルごとの高さ)、深さの次元(畳み込みカーネルごとの深度またはチャネルの数)および数量(畳み込みカーネルごとの数)のような次元を有してもよい。
図2に示す重みパラメータの一例について、例えば、例示方法100は、ステップ110において、幅、高さ、深さ、および数量のうちの一つまたは複数を、さらなる処理をする次元として選択することができる。
一実施形態において、例示方法100のステップ110において選択された一または複数の次元における部分または全部の対応する目標値は、独立して決定してもよい。
例えば、ニューラルネットワークにおける乗算、加算の演算をサポートするハードウェア回路において、一以上のグループの乗算器および加算器の配置を含んでもよく、各グループの乗算器および加算器の配置において、一以上の乗算器および一以上の加算器を含むことができる。各グループの乗算器および加算器の配置に基づいて、重みパラメータの深さ値がAである場合、乗算器および加算器の使用率が最も高い(または比較的に高い)と判定し、例えば、選択/イネーブル装置(enabling appliance)の設計/配置を省略することができる場合、重みパラメータの深さにおける目標値を、Aの所定の倍数と決定してもよく、該倍数は重みパラメータの深さのディメンション値より大きいまたはそれに等しい。
例えば、A=3とする場合、現在のニューラルネットワークについて、重みパラメータの深さにおける目標値の候補値の集合は、{x|x=n×A、nは正の整数}である。現在の層の重みパラメータの深さのディメンション値が5とする場合、該重みパラメータの深さにおける目標値を、前記候補値の集合における5以上の所定値と決定し、例えば、6、9または12などと決定してもよい。例えば、候補値の集合のサブセット{x|x=n×A、nは5以上の正の整数である}から最小値(すなわち、6)を目標値として選択してもよい。
別の実施形態において、ニューラルネットワークに基づくアーキテクチャおよび/またはニューラルネットワークをサポートするハードウェアの設計に基づいて、重みパラメータの深さにおける目標値は、集合{3,5,7,9,12,256,1024,……}のうちの所定の値になるべきと決定し、例えば、重みパラメータの深さが集合における所定の値である場合、余分の処理を低減することができ、またはハードウェアの処理性能がより良好になる場合、重みパラメータの深さにおける目標値を、該集合における5より大きいまたは5である所定の値、例えば、5,7,9,12,256,1024などと決定してもよい。
例えば、これらの候補値から最も小さい値である5を目標値として選択してもよく、この場合、ディメンション値は目標値に等しいので、深さにおいて該重みパラメータに対してパディングする必要はない。別の実施形態において、例えば、7を目標値として選択してもよく、この場合、ディメンション値が目標値よりも小さいので、深さにおいて該重みパラメータに対してパディングする必要がある。
別の実施形態において、各グループの乗算器および加算器の配置またはニューラルネットワークのアーキテクチャの設計などに基づいて、重みパラメータの数量がBである場合、乗算器および加算器の使用率が最も高く(または比較的高く)、例えば、選択/イネーブル装置(enabling appliance)の設計/配置を省略することができる場合、重みパラメータの数量の目標値を、Bの所定の倍数として決定することができ、該倍数は重みパラメータの数量におけるディメンション値より大きいまたはそれに等しい。
例えば、B=5とする場合、現在のニューラルネットワークについて、重みパラメータの数量における目標値の候補値の集合は、{y|y=n×B、nは正の整数}である。現在の層の重みパラメータの数量におけるディメンション値が8とすると、該重みパラメータの数量における目標値を、前記候補値の集合のうち8以上(8であるまたは8より大きい)の所定の値、例えば、10、15または20などと決定することができる。
例えば、候補値の集合のサブセット{y|y=n×B、nは5以上の正の整数である}から最小値10を目標値として選択してもよい。
別の実施形態において、ニューラルネットワークの積和演算をサポートするハードウェア回路において、一以上のグループの乗算器および加算器の配置を含んでもよく、各グループの乗算器および加算器の配置(例えば、最後のステップの加算の演算を実行するための加算器の数)及びグループ数に基づいて、第1のパラメータC及び第2のパラメータDを決定してもよい。このような場合、重みパラメータの深さまたは数量における目標値の候補値の集合は、C及びDの公倍数の集合と決定してもよい。
別の実施形態において、ハードウェアが直接処理することができる重みパラメータの形状またはニューラルネットワークのアーキテクチャの設計などに基づいて、重みパラメータの幅における目標値は、集合{3,5,6,7,9,11}のうちの一つの値になるべきである。
現在の層の重みパラメータの幅が4であるとすると、該重みパラメータの幅における目標値は、前記集合のサブセット{5,6,7,9,11}のうちの一つの値と決定してもよい。例えば、目標値をサブセットにおける最小値5と決定してもよい。
別の実施形態において、例えば、例示方法100のステップ110で選択された一または複数の次元において、部分または全部の次元における対応する目標値は互いに関連付けて決定してもよい。
例えば、ハードウェアが直接処理することができる重みパラメータの幅と高さとの組み合わせが、集合{(3,3),(3,6),(4,7),(5,5),(7,7)}のうちの所定の組み合わせであると決定してもよく、該集合を重みパラメータの幅と高さにおける目標値の候補値配列の集合としてもよい。
現在の層の重みパラメータの幅および高さがそれぞれ4および4であるとする場合、重みパラメータの幅および高さにおける対応する目標値を決定するために、前記例示の集合のサブセット{(4,7),(5,5),(7,7)}から一つの候補値配列を選択することができる。ここで、該サブセットにおける各候補値配列によって決定された幅および高さにおける対応する目標値が、いずれもそれぞれ該重みパラメータの幅および高さにおけるディメンション値より大きいまたはそれに等しい。
例えば、幅を主要参照次元として選択することができ、上記サブセットから最小幅値を含む候補値配列(4,7)を選択することができ、該候補値配列に基づいて、該重みパラメータの幅および高さにおける対応する目標値を、4及び7とそれぞれ決定してもよい。
別の実施形態において、上記サブセットから候補値配列におけるすべての成分の積が最小である候補値配列(5,5)(ここで、4×7=28、5×5=25、7×7=49、候補値配列(5,5)におけるすべての成分の積が最小である)を選択することができ、該候補値配列に基づいて、該重みパラメータの幅および高さにおける対応する目標値を、それぞれ5及び5と決定する。これは、パディングされた重みパラメータの幅および高さの二次元における「面積」が最小になり、かつ元の重みパラメータを完全に「カバー」することができることに相当する。
別の実施形態において、ニューラルネットワークベースのアーキテクチャの設計および/またはハードウェアパラメータに基づいて、重みパラメータの幅、高さ、および深さにおける目標値の組み合わせが、集合{(3,3,3)、(3,6,6),(4,7,6),(5,5,5),(7,7,7)}のうちの所定の組み合わせであると決定する。現在の層の重みパラメータの幅、高さおよび深さがそれぞれ4,4および4であるとする場合、重みパラメータの幅、高さ、および深さにおける対応する目標値を決定するために、上記例示のサブセット{(4,7,6),(5,5,5),(7,7,7)}から一つの候補値配列を選択することができる。ここで、該サブセットにおける各候補値配列に基づいて決定された重みパラメータの幅、高さ、および深さにおける対応する目標値が、いずれも、ぞれぞれ、該重みパラメータの幅、高さ、および深さにおけるディメンション値より大きいまたはそれに等しい。
例えば、幅を主要参照次元として選択することができ、上記サブセットから最小幅値を含む候補値配列(4,7,6)を選択することができ、該候補値配列に基づいて、該重みパラメータの幅、高さおよび深さにおける対応する目標値を、4、7及び6とそれぞれ決定することができる。
別の実施形態において、上記サブセットから候補値配列におけるすべての成分の積が最小である候補値配列(5,5,5)(ここで、4×7×6=168,5×5×5=125,7×7×7=343、候補値配列(5,5,5)におけるすべての成分の積が最小である)を選択することができ、該候補値配列に基づいて、該重みパラメータの幅、高さおよび深さにおける対応する目標値を、それぞれ5、5及び5と決定する。これはパディングされた重みパラメータの幅、高さおよび深さの三次元における「体積」が最小になり、かつ元の重みパラメータを完全に「囲い込む」ことができることに相当する。
別の実施形態によると、例えば、例示方法100のステップ110において選択された一または複数の次元において、部分次元における対応する目標値は互いに対応付けて決定してもよく、他の部分次元の各次元における対応する目標値は独立して決定してもよい。
一実施形態によれると、方法100は、ステップ110で選択された一または複数の次元の次元のそれぞれについて、またはステップ130で決定された少なくとも一つの次元のそれぞれについて、該次元に対応するパディングモードを決定することをさらに含むことができる。ここで、決定されたパディングモードは、該次元における重みパラメータに対してパディングする一以上のパディング位置、パディング量及びパディン値を設定する規則のうちの少なくとも一つを示す。
例えば、幅に対応するパディングモードによって示される情報は、幅方向の左側及び/又は右側及び/又は中央を含む一以上の位置に一列または複数列パディングする。対応して、パディング量は、それぞれ、示された一以上の位置にパディングする列の数とすることができる。
例えば、高さに対応するパディングモードによって示される情報は、高さ方向の上方及び/又は下方及び/又は中央を含む一以上の位置に一行または複数行パディングする。対応して、パディング量は、それぞれ、示された一以上の位置にパディングする行の数とすることができる。
例えば、深さに対応するパディングモードによって示される情報は、深さ方向の前方及び/又は後方及び/又は中央を含む一以上の位置に一行または複数行パディングする。対応して、パディング量は、それぞれ、示された一以上の位置にパディングする行の数とすることができる。
例えば、数量に対応するパディングモードによって示される情報は、重みパレメータの系列の前及び/又は後及び/又は中央を含む一以上の位置に一以上のパディング値をパディングする。対応して、パディング量は、それぞれ、示された一以上の位置にパディングするパディング値の数量とすることができる。
一の実施形態によると、ゼロ値を用いて重みパラメータに対してパディングしてもよい。異なる実施形態によると、パディング値を設定する規則も、予め定義された非ゼロ値を用いてパディングし、パディングする位置に隣接する位置の値を用いてパディングすることなどを含むことができるが、これらには限定されない。
本明細書において、ゼロ値は、数値的にゼロに等しい値、またはすべての成分の値がいずれも0の配列、タプル、行列、立方体など、またはゼロに等しいとみなすことができる他の形式の値であってもよい。対応して、非ゼロ値は、数値的にゼロに等しくない値、または部分若しくは全部の成分の値が0ではない配列、タプル、行列、立方体など、またはゼロに等しいとみなすことができない他の形式の値であってもよい。
一の実施形態によると、ニューラルネットワークの所定の層における重みパラメータのサイズおよび形状が、パディングの後に変更または重みパラメータのサイズおよび形状の変更が発生することが特定できる場合、方法100は、例えば、幅および/または高さおよび/または深さなどのような重みパラメータのサイズおよび形状を変更させる次元において重みパラメータに対してパディングした後、または重みパラメータに対して、幅および/または高さおよび/または深さなどのような重みパラメータのサイズおよび形状を変更させる次元において重みパラメータに対してパディングすると決定した場合、該層の特徴データに対して、重みパラメータのサイズおよび形状を変更させる次元(例えば、幅及び/又は高さ及び/又は深さ)において、パディングすることをさらに含むことができる。
例えば、重みパラメータが幅においてパディングされた場合、対応する特徴データも幅においてパディングしてもよい。
一の実施形態において、特徴データがパディングされる各次元におけるパディング位置及びパディング量は、重みパラメータの対応する次元におけるパディング位置及びパディング量とそれぞれ同じにすることができ、または重みパラメータに対して決定されるパディングモードを用いて、特徴データに対してパディングしてもよい。
異なる実施形態によると、特徴データのパディング値を設定する規則は、ゼロ値を用いてパディングし、予め定義された非ゼロ値を用いてパディングし、パディングされる位置に隣接する位置の値を用いてパディングし、乱数または任意値を用いてパディングするなどを含むことができるが、これらには限定されない。
しかし、図1に示す方法100も単なる例示である。別の実施形態において、ステップ110において、次元ごとの対応する目標値を決定してもよく、または目標値の決定を単独のステップとしてもよい。例えば、パディングモードを決定する任意のステップは、重みパラメータおよび/または特徴データをパディングする前の任意の段階に配置してもよい。例えば、特徴データに対するパディングおよび重みパラメータのパディングは、並行して実行してもよい。
図3は、本開示の実施形態に係る方法を使用して、畳み込みニューラルネットワークにおける重みパラメータの数量の次元におけるパディングの例を示す。
図3に示す実施形態において、ニューラルネットワークの設計アーキテクチャ(例えば、ニューラルネットワークのアルゴリズム設計者によって特定のアプリケーションおよび目標に基づいて予め定義されている)に基づいて、所定の層における特徴データ300に対して、予め3つの畳み込みカーネルを設定する。すなわち、畳み込みカーネル301、畳み込みカーネル302、及び畳み込みカーネル303。したがって、図3に示された実施形態において、重みパラメータの数量における次元のディメンション値は3である。
例えば、ニューラルネットワークの計算をサポートするハードウェア関連のパラメータに基づいて、例えば5つの畳み込みカーネルを設計した場合、ソフトウェアおよび/またはハードウェアのコストおよび性能は比較的良好であると判断され、例えば、加算器の選択/イネーブル装置の設計を省略することができる場合、または比較的良好な処理の並列性を取得できる場合、または次の所定の層でプーリング処理を行うと決定してハードウェアが対応するプーリング層(pooling layer)における特徴データのチャネル数が5である場合に最良または比較的良好な処理性(例えば、並行度)を得ることができると判断された場合である。したがって、重みパラメータの数量における次元の目標値は5と決定してもよい。
重みパラメータの数量における次元のディメンション値(すなわち、3)は、対応する目標値(すなわち、5)より小さいため、重みパラメータに対して数量においてパディングすることができる。
図3に示された実施形態において、畳み込みカーネル301、畳み込みカーネル302、及び畳み込みカーネル303に基づいて、畳み込みカーネル301〜303のそれぞれと同じサイズおよび形状(すなわち、幅、高さ及び深さにおいて、それぞれ完全に同じ)を有する2つの畳み込みカーネルを追加することができ、すなわち、畳み込みカーネル304及び畳み込みカーネル305(図3の点線で示される)を追加することができる。これにより、パディング後の畳み込みカーネルの総数が5になり、決定された目標値と同じになる。
一の実施形態において、パディング用の畳み込みカーネル304と畳み込みカーネル305とは同じであってもよい。言い換えると、一以上の同じ畳み込みカーネルを用いて、数量の次元におけるパディングをしてもよい。
別の実施形態において、必要に応じて、異なる値を含む一以上の畳み込みカーネルを選択して、数量の次元におけるパディングをすることができ、選択されたすべてのパディング用畳み込みカーネル(例えば、図3における畳み込みカーネル304及び305)を、オリジナル設定された畳み込みカーネル(例えば、図3の畳み込みカーネル301,302、及び303)と同じ形状およびサイズにすることができ、すなわち、すべての畳み込みカーネル(図3における畳み込みカーネル301〜305を含む)が、少なくとも同じ幅、同じ高さおよび同じ深さを有する。
一の実施形態において、パディングのための畳み込みカーネル304及び畳み込みカーネル305は、いずれもゼロ値に相当する畳み込みカーネルであってもよい。すなわち、畳み込みカーネル304及び305に含まれたすべての成分の値がいずれもゼロである。
別の実施形態において、畳み込みカーネル304及び畳み込みカーネル305は、予め定義された(例えば、ニューラルネットワークの設計段階で設計者によって予め定義された)一セットのテンプレートデータ(ゼロ値および/または非ゼロを含めてもよい)から選択することができ、または予め定義されたパディング用畳み込みカーネルの生成規則に基づいて、例えば、一以上の所定の定義された値(非ゼロ値であってもよい)を用いて生成することができる。
図3に示された実施形態について、畳み込みカーネル304及び305は、畳み込みカーネル303の下方にパディングされ、または畳み込みカーネル304及び305が、畳み込みカーネル301、畳み込みカーネル302、及び畳み込みカーネル303を含む順番付けられたシーケンスの尾部にパディングされてもよい。
一の実施形態において、必要に応じて、一以上の別のパディング位置を選択することができる。例えば、畳み込みカーネル304及び305を、畳み込みカーネル301、畳み込みカーネル302、および畳み込みカーネル303を含む順番付けられたシーケンスの先頭にパディングしてもよく、または畳み込みカーネル304を、シーケンスの先頭(すなわち、図3に示す実施形態の畳み込みカーネル301の上方)にパディングして畳み込みカーネル305が畳み込みカーネル302と303との間にパディングしてもよく、または畳み込みカーネル304を、畳み込みカーネル301と302との間にパディングして畳み込みカーネル305を畳み込みカーネル302と303との間にパディングしてもよく、または畳み込みカーネル304と305の両方を畳み込みカーネル301と302との間にパディングしてもよい。
上述の通り、デフォルトまたは決定されたパディングモードに基づいて数量の次元におけるパディング位置、パディング量及びパディング値を設定する規則を決定することができる。
図4は、本開示に係る実施形態による方法を使用して、畳み込みニューラルネットワークにおける所定の層の重みパラメータを、幅と高さの二次元においてパディングする一例を示す。図4において、各畳み込みカーネルにおける番号1,2、……、12などは、畳み込みカーネルの数値(または重み値)の相対位置を例示するためだけに用いられるものであり、実際の値を表すものではない。分かりやすくするために、図4には、畳み込み及び特徴データの深さ(チャネル)を示していない。
図4に示す実施形態において、例えば、ニューラルネットワークの設計アーキテクチャに基づいて、特徴データ400に対して予め設定された畳み込みカーネルごとの(例えば、図4における畳み込みカーネル401、畳み込みカーネル402、及び畳み込みカーネル403)幅と高さはそれぞれ4と3である。
例えば、ニューラルネットワークの計算をサポートするハードウェア関連パラメータに基づいて、ハードウェア(例えば、ニューラルネットワークの専用アクセラレータ)が直接処理できる畳み込みカーネルの幅および高さは、それぞれ5及び5であると決定される。したがって、重みパラメータの数量の幅および高さにおける目標値は、それぞれ5及び5と決定してもよい。
重みパラメータの幅と高さの二つの次元におけるディメンション値はそれぞれ対応する目標値よりも小さいので、重みパラメータに対して、幅と高さの二つの次元においてパディングすることができる。
図4に示された実施形態において、畳み込みカーネル401,402、及び403のそれぞれについて、左側に一列パディングし、下方に2行パディングし(図4において、Pを用いてパディングされた行および列を示す)、パディング後に得られた畳み込みカーネル401’、402’及び403’のそれぞれの幅と高さは、それぞれ5と5であり、これで決定された対応する目標値と同じになる。
一の実施形態において、まず、幅にパディングすることができ、すなわち、左側で一列パディングし、得られた幅及び高さがそれぞれ5と3の中間結果で、それから、高さにおいて幅と高さにそれぞれ5と3の中間結果に対してパディングし、すなわち、下方に二行パディングすることによって、最終に幅と高さがそれぞれ5と5であるパディング後の畳み込みカーネルを得る。
別の実施形態において、まず高さでパディングしてから、幅でパディングすることも可能である。
別の実施形態において、幅と高さにおいて同時にパディングすることも可能である。
重みパラメータの幅および/または高さに対してパディングする場合、重みパラメータ(畳み込みカーネルごと)の形状が変更する。
対応して、対応する特徴データ400について、幅および/または高さにおいて対応するパディングを行うことができ、パディング後の特徴データ400’が、パディング後の畳み込みカーネル401’、402’及び403’にマッチするようにすることで、ニューラルネットワークが、パディング後の特徴データ400’を使用し及びパディング後の畳み込みカーネル401’、402’及び403’を使用した場合に、得ることができる最終結果と、オリジナル特徴データ400を使用し及びオリジナル畳み込みカーネル401、402及び403を使用した場合に得ることができる最終結果と同じになることを確保する。
図4に示された実施形態において、畳み込みカーネル401,402,403のそれぞれについて、左側に一列パディングして下方に二行パディングし、かつ、対応して、特徴データ400に対し、その左側に一列パディングして下方に二行パディングし、これによってパディング後の畳み込みカーネル401’、402’及び403’及びパディング後の特徴データ400’が得られる。
一実施形態において、ゼロ値を用いて畳み込みカーネルおよび特徴データの幅および高さにおいてパディングすることができる。例えば、図4に示す例示において、各畳み込みカーネルおよび特徴データの各パディング位置Pにおけるパディング値はゼロ値であってもよい。
別の実施形態において、特徴データに対して、一以上の非ゼロ値を用い、または特徴データにおけるパディングされる位置(たとえば、図4の特徴データ400の最も左の一列及び最下方の一行)に隣接する位置の値を複製してパディングする。
図5に、例えば、図4における特徴データ400に対して、複製によって得られたパッディング後の特徴データ500’の実施形態を示す。ここで、パッディングビットA、B、C、D及びEはそれぞれ特徴データ400における位置A、B、C、D及びEにおける値をパディング値とする。別の実施形態において、必要に応じて、畳み込みカーネルに対して、他の値(例えば、乱数や任意の値)を使用してパディングすることができる。
図4及び図5に示された実施形態において、畳み込みカーネルおよび/または特徴データごとの左側および下方にパディングを実行する。別の実施形態において、畳み込みカーネルおよび/または特徴データの右側および下方にパディングすることを選択することができ、または畳み込みカーネルおよび/または特徴データの左側または右側および上方にパディングすることを選択することができ、または畳み込みカーネルおよび/または特徴データの左側または右側に一列パディングし、かつ畳み込みカーネルおよび/または特徴データの上方または下方に一行パディングすることを選択することができる。
一実施形態において、畳み込みカーネルに対するパディング方法を、特徴データに対するパディング方法と同じにすることができる。例えば、畳み込みカーネルの右側に一列パディングして上方および下方に一行パディングする場合、特徴データの右側にも一列パディングして上方および下方にも一行パディングする。
上述の通り、デフォルトまたは決定されたパディングモードに基づいて、幅および/または高さの次元におけるパディング位置、パディング量及びパディング値を設定する規則などを決定し、特徴データに対する幅および/または高さの次元におけるパディング位置、パディング量は、重みパラメータの幅および/または高さの次元におけるパディング位置、パディング量とそれぞれ同じであってもよい。
明確のために、図4及び図5には畳み込みおよび/または特徴データの深さ(チャネル)を示していない。実際では、図4及び図5の実施形態は、重みパラメータおよび/または特徴データの各チャネル(または深さ)におけるパディング処理の例示とみなすことができる。
深さを考慮する場合、重量パラメータおよび/または特徴データに対するすべてのチャネル(または深さ)に対し、同じ位置で、同じパディング値を設定する規則に従って、同じパディング量でパディングすることができる。図6は、幅、高さ、深さがそれぞれ3、2及び2である例示の畳み込みカーネルになるように、幅、高さ、深さがいずれも2である例示の畳み込みカーネルを右側に一列パディングする例を示す。
図4及び図5は、幅及び高さの二つの次元において、重量パラメータおよび/または特徴データに対して同時にパディングすること示しているが、図6に示すように、畳み込みカーネルの形状とサイズ、および幅および/または高さにおける対応する目標値との比較結果に基づいて、幅および高さのうちの一つに次元において重量パラメータおよび/または特徴データに対してパディングしてもよい。
図7は、本開示に係る実施形態による方法を使用して、畳み込みニューラルネットワークにおいて所定の層の重みパラメータの深さ(チャネル)におけるパディングの実施形態を示す。
図7に示す実施形態において、ニューラルネットワークの設計アーキテクチャに基づいて、ニューラルネットワークの所定の層チャネル数(深さ)が3である特性データ700に対し、深さ(またはチャネル)が3であるいくつかの畳み込みカーネル701,702及び703を予め設定する。
例えば、ニューラルネットワークの計算をサポートするハードウェアに関連するパラメータに基づいて、例えば、深さが5である畳み込みカーネルを設計する場合、ハードウェアのコストと性能とが比較的良好であると判定され、例えば、加算器の選択/イネーブル回路の設計が省略でき、または処理において比較的良好な並列性を得ることができ、ハードウェアによって直接処理をすることができるような場合である。したがって、重みパラメータの深さの次元における目標値を5と決定してもよい。
重みパラメータの深さにおけるディメンション値が対応する目標値よりも小さいので、畳み込みカーネルに対して深さにおけるパディングを行うことができる。
図7に示されるように、畳み込みカーネル701、702及び703のそれぞれに対し、二行(図7において、破線で示す。)パディングし、パディング後の得られた畳み込みカーネル701’、702’及び703’のそれぞれの深さがいずれも5にすることにより、決定された対応する目標値と同じになる。
深さにおいて重みパラメータに対してパディングする場合、畳み込みカーネル701,702,703の形状が変わる。対応して、深さにおいて、該層の特徴データ700に対してパディングし、パディング後の特徴データ700’が、パディング後の畳み込みカーネル701’、702’及び703’にマッチできるようにし、ニューラルネットワークがパディング後の特徴データ700’及びパディング後の畳み込みカーネル701’、702’及び703’を使用する場合に得られる最終結果が、オリジナル特徴データおよびオリジナル畳み込みカーネル701、702及び703を使用する場合に得られる最終結果と同じであることが確保される。
図7示された実施形態において、畳み込みカーネル701、702及び703のそれぞれに対して、後方に二行(パディング後の畳み込みカーネルがそれぞれ深さにおいて同じ幅と高さを有する)パディングする。対応して、特徴データ700の後方に二行(パディング後の特徴データ700’がそれぞれ深さにおいて同じ幅と高さを有する)パディングしてもよい。これにより、パディング後の畳み込みカーネル701’、702’及び703’及びパディング後の特徴データ700’を得る。
一の実施形態において、ゼロ値を用いて畳み込みカーネルに対し、深さにおいてパディングすることができる。例えば、図7の畳み込みカーネル701’、702’、及び703’のそれぞれの後方にパディングされた二行のデータはすべてゼロであってもよい。別の実施形態において、必要に応じて、他の値を用いて、畳み込みカーネルに対し、深さにおいてパディングしてもよい。同様に、ゼロ値または他の値を用いて特徴データに対して深さにおいてパディングしてもよい。
図7に示された実施形態において、畳み込みカーネルおよび特徴データごとの後方にパディングする。別の実施形態において、前方に二行パディングすることを選択することができ、または所定の二つの連続するチャネルの間に二行パディングすることができ、またはチャネル1とチャネル2との間に一行パディングしてチャネル2とチャネル3との間に一行パディングすることができ、または所定の二つの連続するチャネルの間に一行パディングして前方または後方に一行パディングしてもよい。
一の実施形態において、畳み込みカーネルに対するパディング方法は、特徴データに対するパディング方法と同じにすることができる。例えば、畳み込みカーネルの前方に一行パディングしてチャネル2とチャネル3との間に一行パディングする場合、特徴データに対しても前方に一行パディングしてチャネル2とチャネル3との間に一行パディングする。
上述したように、デフォルトまたは決定されたパディングモードに基づいて、深さの次元においてパディング位置、パディング量、パディング値を設定する規則などを決定してもよく、特徴データに対する深さの次元におけるパディング位置およびパディング量は、重みパラメータに対して対応する次元におけるパディング位置およびパディング量とそれぞれ同じにしてもよい。
また、特徴データをパディングためのパディング値は、重みパラメータをパディングするためのパディング値によって決定してもよく、または独立して決定してもよい。
図3〜図7に本開示に係る実施形態による方法を使用し、重みパラメータおよび/または特徴データに対して、数量、幅、高さ、および深さなどの次元においてパディングする例を示す。図2〜図7で使用される特徴データおよび重みパラメータの表現は異なっているかもしれないが、これらの特徴データおよび/または重みパラメータの実際の形式が異なることを意味するものではない。
しかし、異なる形式で特徴データおよび/または重みパラメータを示すことは、便宜上および/または強調の目的のためにすぎない。
また、本開示の実施形態に係る方法は、図3〜図7に示される実施形態に限定されるものではなく、畳み込みニューラルネットワークや他の種類のニューラルネットワークにおける所定の層の重みパラメータや特徴データに対して、必要に応じて、重みパラメータおよび/または特徴データは実際に一以上の次元を有することを考慮し、または一以上の次元から重みパラメータおよび/または特徴データを観察し、必要に応じて、本開示の実施形態に係る方法を用いて重みパラメータおよび/または特徴データに対してパディングし、規範化された形式を有する重みパラメータおよび/または特徴データを得る。
例えば、畳み込みニューラルネットワークにおいて存在し得るプーリング層(pooling layer)について、特徴データに対してプーリングカーネル(pooling kernel)(受容野(receptive field)とも呼ばれる)を設けることができ、これまたはこれらのプーリングカーネルを使用し、特徴データの各チャネルに対してそれぞれプーリング処理をする。
対応して、プーリングカーネルを深さのような次元を有するとみなし、かつその深さ値は特徴データのチャネル数(または深さ値)に等しく、かつ必要に応じて、該プーリング層のプーリングカーネルおよび/または特徴データに対し、例えば、深さにおいてパディングしてもよく、例えば、深さにおいてプーリングカーネルおよび/または特徴データを複製してパディングする。
本開示の実施形態に係る方法を使用し、重みパラメータおよび/または特徴データに対してパディングすることによって、規範化された形式の重みパラメータおよび/または特徴データを得ることができ、ニューラルネットワークのアーキテクチャの設計及びニューラルネットワークの演算をサポートする(例えば、専用アクセラレータ、アキュムレータ等)の設計を簡略化することができ、異なる形式の重みパラメータを処理するための余計な処理及び起こり得る誤りを回避することができ、ハードウェアおよび/またはソフトウェアの処理性能(例えば、処理の並列性またはハードウェアの使用率など)などを向上させることができる。
本開示に係る実施形態による方法(例えば、図1に示された例示方法100)は、ニューラルネットワークの一以上の層における特徴データおよび重みパラメータの前処理のために使用されてもよい。例えば、ニューラルネットワークのアーキテクチャにおけるコンパイラ層(compiler layer)によってハードウェア層にデータおよび指令を提出する前に、ニューラルネットワークの一以上の層における特徴データおよび重みパラメータに対して、本開示に係る実施形態による方法を使用して、チェック及びパディングしてもよい。
ニューラルネットワークにおける一以上の層の層ごとの演算の前に、本開示に係る実施形態による方法を使用して、該層の特徴データ及び重みパラメータに対してチェック及びパディングすることができる。
以上の記載では、畳み込みニューラルネットワークを例示として、本開示に係るニューラルネットワークのパラメータを適応させる方法の原理を述べたが、本開示の原理は、他の種類のニューラルネットワークにも適用することができる。
例えば、重みパラメータが一以上の単一値データである場合、図1に示された例示方法100を使用することができ、かつ図3に示された実施形態を参照して、数量において重みパラメータに対してパディングしてもよい。
例えば、重みパラメータが一つまたは複数の二次元データである場合、図1に示された例示方法100を使用することができ、図4及び図5に示された実施形態を参照して、二次元データの二つの次元において重みパラメータに対してパディングする。対応して、必要に応じて及びニューラルネットワークの種類に応じて、重みパラメータの対応する次元における目標値の決定方法およびパディング方法を決定してもよい。
図8は、本開示に係る実施形態によるニューラルネットワークのパラメータを適応させるために使用することができる装置のブロック図を示す。
図8に示すように、例示装置800は、一以上のプロセッサ810を含むことができる。プロセッサ810は、汎用CPU、GPU、専用ニューラルネットワークプロセッサまたはアクセラレータなどのようなデータ処理能力および/または指令の実行能力を有する任意の形態の処理手段であってもよい。
例えば、プロセッサ810は、本開示に係る実施形態によりニューラルネットワークのパラメータを適応させる方法を実行することができる。さらに、プロセッサ810は、デバイス810における他の部品を制御して、所望の機能を実行させることもできる。
プロセッサ810は、バスシステムおよび/または他の形態の接続機構(図示せず)を介して、メモリ830およびI/Oインターフェイス830に接続することができる。
メモリ830は、例えば、揮発性メモリおよび/または不揮発性メモリなどの様々なコンピュータ読み書き可能な記憶媒体を含むことができる。揮発性メモリは、ランダムアクセスメモリ(RAM)及び/又はキャッシュメモリ(キャッシュ)などを含むことができる。不揮発性メモリは、例えば、読み取り専用メモリ(ROM)、ハードディスク、フラッシュメモリ等を含むことができる。
読み書き可能な記憶媒体は、例えば、電気、磁気、光、電磁気、赤外線、または半導体のシステム、装置、またはデバイス、またはそれらの任意の組み合わせを含むことができるがこれらに限らない。
例えば、ニューラルネットワーク専用プロセッサに合わせて使用する場合、メモリ820は、専用プロセッサが搭載されるチップ上のRAMであってもよい。メモリ820は、本開示に係る実施形態によるニューラルネットワークのパラメータを適応させる方法のプログラム指令を実行させるための指示手段800を含むことができる。
I/Oインターフェイス830は、プロセッサ810にパラメータまたはデータを提供し、かつプロセッサ810によって処理された結果データの出力のために用いることができる。
図9は、本開示に係る別の実施形態によるニューラルネットワークのパラメータを適応させるために使用することができる装置のブロック図を示す。
図9に示されたように、例示装置900は、検出器910及びパッダー920を含むことができる。検出器910は、ニューラルネットワークの少なくとも一つの層における層ごとの重みパラメータによって選択された一以上の次元に対して、該重みパラメータの各次元におけるディメンション値及び対応する目標値を決定するように構成することができる。
パッダー920は、重みパラメータの各次元におけるディメンション値が対応する目標値よりも小さい場合、パディング後に得られた重みパラメータの各次元におけるディメンション値が対応する目標値に等しくなるように、前記重みパラメータに対してパディングする。
例示装置900は、プロセッサ930(例えば、汎用CPU、GPU、ニューラルネットワークの専用プロセッサまたはアクセラレータ)を含むことができ、パダー920からの出力データを受信してニューラルネットワークに関する演算を行う。
しかし、図8及び図9に示された装置800および900は単なる例示であって限定的なものではない。必要に応じて、本開示に係る実施形態によるニューラルネットワークのパラメータを適応させることができる装置は、その他の部材および/または構造を有することができる。
前後文から明確に別途の要求がある場合を除き、明細書および特許請求の範囲全体において、用語「comprise」(有する)、「include」(含む)などは、排他性または限界性(exhaustive)の意味の逆である包括的な意味として解釈すべきであり、つまり、「を含むが、これに限定されない」の意味として解釈すべきである。
また、用語「本明細書中」、「以上の記載に」、「以下の記載に」及び似たような意味の用語が本開示において使用される場合に、本開示の具体的な部分ではなく、本開示全体を指すとすべきである。前後文が許される場合、単数形または複数形を使用する以上の記載における用語も、それぞれ複数または単数を含むことができる。二つまたは複数の項目のリストを言及する場合の用語「または」について、該用語は該用語の以下の解釈における全部をカバーする。すなわち、リストにおける任意の項目、リストにおけるすべての項目、及びリストにおける項目の任意の組み合わせである。
本開示に係る実施形態の以上の詳細な説明は、制限的または本発明を以上の記載によって開示された適切な形式に限定することを意図するものではない。説明のために、本開示に係る具体的な実施形態及び例示を述べたが、当該分野における技術者が認識しているように本発明の技術的範囲内である限り、各種の均等の範囲における変更は可能である。
例えば、処理またはブロックが所定の順序で示したが、代替の実施形態において、これらのステップの処理または異なる順序でこれらのブロックのシステムを使用することができ、かついくつかの処理またはブロックは、削除、移動、追加、細分化、結合、および/または変更が可能である。これらの処理またはブロックのそれぞれは異なる方法で実施することができる。また、処理またはブロックは直列的に実行されるが、代わりに、これらの処理及びブロックは並列的に実行され、または異なる時間で実行されることも可能である。
本明細書で提供される本発明の教示は、必ずしも上記のシステムである必要はなく、他のシステムにも適用することができる。上述のそれぞれの実施形態の部品及び動作を組み合わせることにより、別の実施形態を提供することができる。
本開示に係るいくつかの実施形態について説明したが、これらの実施形態は、例示として提示するものであり、本開示の範囲を限定するものではない。実際、本明細書に記載された新規の方法およびシステムは、様々なその他の形態で実施することができる。また、本発明の範囲から逸脱しなければ、本明細書に記載された方法およびシステムの形式に種々の省略、置換および変更をすることが可能である。
100 例示方法
810 プロセッサ
820 メモリ
830 I/Oインターフェイス
900 例示装置
910 検出器
920 パッダー
930 プロセッサ

Claims (16)

  1. ニューラルネットワークのパラメータを適応させる方法であって、
    前記ニューラルネットワークの少なくとも一つの層における層ごとの重みパラメータについて、一または複数の次元を選択するステップと、
    前記重みパラメータの前記一または複数の次元における次元ごとのディメンション値を決定するステップと、
    前記ニューラルネットワークの演算をサポートするハードウェアのパラメータに基づいて次元ごとに対応目標値を決定するステップと、
    前記重みパラメータの前記一または複数の次元のうちの少なくとも一つの次元におけるディメンション値が前記応目標値よりも小さい場合、パディング後に得られた重みパラメータの前記一または複数の次元における次元ごとのディメンション値が前記応目標値に等しくなるように、前記少なくとも一つの次元において重みパラメータに対してパディングするステップと
    を含み、
    前記対応目標値を決定するステップは、
    次元ごとの前記対応目標値のための候補値の集合を、前記ニューラルネットワークの演算をサポートするハードウェアの使用率に基づいて決定することと、
    次元ごとの前記対応目標値を、前記ニューラルネットワークの演算をサポートするハードウェアによって処理することができる前記重みパラメータの形式および/または数量に基づいて決定することと
    を含み、
    前記重みパラメータの、次元ごとの前記対応目標値は、次元ごとの前記対応目標値のための候補値の集合における最小値であり、前記重みパラメータの対応する次元におけるディメンション値より大きいまたはそれに等しい、方法。
  2. 前記一または複数の次元は、幅、高さ、深さ、および数量のうちの少なくとも一つを含む請求項1に記載の方法。
  3. 前記一または複数の次元は第1次元を含み、
    前記重みパラメータの前記第1次元における前記応目標値は、前記第1次元に関連付けられた候補値の集合のサブセットに基づいて決定され、
    前記サブセットにおける候補値のそれぞれは、前記重みパラメータの第1次元のディメンション値より大きいまたはそれに等しい請求項1に記載の方法。
  4. 前記重みパラメータの前記第1次元における前記応目標値は、前記サブセットにおける最小の候補値である請求項3に記載の方法。
  5. 前記第1次元は深さまたは数量を含み、
    前記集合は第1パラメータと第2パラメータとの一以上の公倍数を含み、
    前記第1パラメータと前記第2パラメータはハードウェアパラメータに基づいて予め定められている請求項に記載の方法。
  6. 前記一または複数の次元は、第1次元と、少なくとも一つの第2次元とを含み、
    前記重みパラメータの前記第1次元と前記少なくとも一つの第2次元における前記応目標値は、候補値配列の集合のサブセットに基づいて決定され、
    前記集合における前記候補値配列のぞれぞれは、前記第1次元に対応する第1候補値と、前記少なくとも一つの第2次元にそれぞれ対応する少なくとも一つの第2候補値とを含み、
    前記サブセットにおける各候補値配列のうちの候補値のそれぞれは、前記重みパラメータの対応する次元におけるディメンション値より大きいまたはそれに等しい請求項1に記載の方法。
  7. 前記重みパラメータの前記第1次元における前記応目標値は、前記サブセットに基づいて定められた最小の第1候補値である請求項に記載の方法。
  8. 前記重みパラメータの前記第1次元と前記少なくとも一つの第2次元における前記応目標値は、それぞれ、前記サブセットの第1候補値配列における対応する候補値であり、前記第1候補値配列のすべての候補値の積は、前記サブセットにおける他の候補値配列のうちのすべての候補値の積より小さい請求項に記載の方法。
  9. 前記第1次元は、幅、または高さ、または深さを含み、
    ハードウェアパラメータに基づいて予め定められた、前記重みパラメータの前記第1次元の前記少なくとも一つの第2次元における前記応目標値のそれぞれの組み合わせに対し、前記集合は一以上の対応する候補値配列を含む請求項に記載の方法。
  10. 前記少なくとも一つの次元における次元のそれぞれに対して、前記次元に対応するパディングモードを決定し、
    前記パディングモードは、前記次元において、前記重みパラメータに対してパディングする一以上のパディング位置、パディングの量及びパディングの値を設定する規則のうちの少なくとも一つを示す請求項に記載の方法。
  11. 前記一または複数の次元は、幅、高さ、深さ及び数量のうちの少なくとも一つを含み、
    前記幅に対応するパディングモードが示す情報は、幅の方向の左側及び/または右側及び/または中央の一以上の位置において、一列または複数列パディングすることを含み、
    前記高さに対応するパディングモードが示す情報は、高さの方向の上方及び/または下方及び/または中央の一以上の位置において、一行または複数行パディングすることを含み、
    前記深さに対応するパディングモードが示す情報は、深さの方向の前方及び/または後方及び/または中央の一つまたは複数の位置において、一行または複数行パディングすることを含み、
    前記数量に対応するパディングモードが示す情報は、前記重みパラメータのシーケンスの方向の前及び/または後及び/または中央の一以上の位置において、一以上のパディング値をパディングすることを含む請求項10に記載の方法。
  12. 前記少なくとも一つの次元が幅および/または高さおよび/または深さを含む場合、前記重みパラメータの属する層の特徴データに対して、対応する幅および/または高さおよび/または深さにおいてパディングすることを含む請求項に記載の方法。
  13. 前記特徴データがパディングされる次元ごとのパディング位置およびパディング量は、前記重みパラメータの対応する次元におけるパディング位置およびパディング量とそれぞれ同じである請求項12に記載の方法。
  14. 前記ニューラルネットワークは畳み込みニューラルネットワークである請求項に記載の方法。
  15. ニューラルネットワークのパラメータを適応させるための装置であって、
    前記ニューラルネットワークの少なくとも一つの層における層ごとの重みパラメータに対して選択された一または複数の次元について、前記重みパラメータの前記一または複数の次元における次元ごとのディメンション値を決定することと、前記ニューラルネットワークの演算をサポートするハードウェアのパラメータに基づいて次元ごとに対応目標値を決定することとを行うように構成された検出器と、
    前記重みパラメータの前記一または複数の次元のうちの少なくとも一つの次元におけるディメンション値が前記応目標値よりも小さい場合、パディング後に得られた重みパラメータの前記一または複数の次元における次元ごとのディメンション値が前記応目標値に等しくなるように、前記一または複数の次元において前記重みパラメータについてパディングするように構成されたパッダーと
    含み、
    前記対応目標値を決定することは、
    次元ごとの前記対応目標値のための候補値の集合を、前記ニューラルネットワークの演算をサポートするハードウェアの使用率に基づいて決定することと、
    次元ごとの前記対応目標値を、前記ニューラルネットワークの演算をサポートするハードウェアによって処理することができる前記重みパラメータの形式および/または数量に基づいて決定することと
    を含み、
    前記重みパラメータの、次元ごとの前記対応目標値は、次元ごとの前記対応目標値のための候補値の集合における最小値であり、前記重みパラメータの対応する次元におけるディメンション値より大きいまたはそれに等しい、装置。
  16. 一以上のプロセッサによって、前記請求項1乃至14のいずれか一項に記載の方法が実行されるように構成されるコンピュータプログラム。
JP2018167990A 2017-09-25 2018-09-07 ニューラルネットワークのパラメータを適応させるための方法および装置 Active JP6715900B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710874198.XA CN107633295B (zh) 2017-09-25 2017-09-25 用于适配神经网络的参数的方法和装置
CN201710874198.X 2017-09-25

Publications (2)

Publication Number Publication Date
JP2019061664A JP2019061664A (ja) 2019-04-18
JP6715900B2 true JP6715900B2 (ja) 2020-07-01

Family

ID=61102463

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018167990A Active JP6715900B2 (ja) 2017-09-25 2018-09-07 ニューラルネットワークのパラメータを適応させるための方法および装置

Country Status (5)

Country Link
US (1) US11461632B2 (ja)
EP (1) EP3460725A1 (ja)
JP (1) JP6715900B2 (ja)
KR (1) KR102217761B1 (ja)
CN (1) CN107633295B (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102548718B1 (ko) * 2017-06-07 2023-06-28 삼성전자주식회사 전자 장치 및 그 제어 방법
CN107633295B (zh) * 2017-09-25 2020-04-28 南京地平线机器人技术有限公司 用于适配神经网络的参数的方法和装置
CN109190758B (zh) * 2018-09-04 2021-06-15 地平线(上海)人工智能技术有限公司 用于展开卷积神经网络的张量数据的方法和装置
CN111079890A (zh) * 2018-10-19 2020-04-28 中兴通讯股份有限公司 一种数据处理方法及装置、计算机可读存储介质
CN111832585B (zh) * 2019-04-16 2023-04-18 杭州海康威视数字技术股份有限公司 图像处理的方法和装置
CN110188865B (zh) * 2019-05-21 2022-04-26 深圳市商汤科技有限公司 信息处理方法及装置、电子设备和存储介质
CN110515626B (zh) * 2019-08-20 2023-04-18 Oppo广东移动通信有限公司 深度学习计算框架的代码编译方法及相关产品
CN110598855B (zh) * 2019-09-23 2023-06-09 Oppo广东移动通信有限公司 深度学习模型生成方法、装置、设备及存储介质
CN111610963B (zh) * 2020-06-24 2021-08-17 上海西井信息科技有限公司 芯片结构及其乘加计算引擎
CN113919405B (zh) * 2020-07-07 2024-01-19 华为技术有限公司 数据处理方法、装置与相关设备
KR102427737B1 (ko) * 2020-09-18 2022-08-01 네이버 주식회사 표현적 병목 현상이 최소화된 인공 신경망을 기반으로 하는 전자 장치 및 그의 동작 방법
TWI752713B (zh) 2020-11-04 2022-01-11 臺灣發展軟體科技股份有限公司 資料處理電路及故障減輕方法
CN112270376A (zh) * 2020-11-10 2021-01-26 北京百度网讯科技有限公司 模型训练方法、装置、电子设备、存储介质和开发系统

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4918742A (en) 1988-04-22 1990-04-17 The Boeing Company Image processing using multi-pass convolution with small kernels
US4918472A (en) * 1989-06-21 1990-04-17 Reed Thomas T Waterproof camera window
US20050157939A1 (en) * 2004-01-16 2005-07-21 Mark Arsenault Processes, products and systems for enhancing images of blood vessels
JP5527340B2 (ja) 2012-02-27 2014-06-18 日本電気株式会社 ベクトル処理装置およびベクトル処理方法
JP6598479B2 (ja) * 2014-03-31 2019-10-30 キヤノン株式会社 画像処理装置、その制御方法、および制御プログラム
US11016742B2 (en) * 2015-06-24 2021-05-25 Altera Corporation Channel sizing for inter-kernel communication
US10796220B2 (en) * 2016-05-24 2020-10-06 Marvell Asia Pte, Ltd. Systems and methods for vectorized FFT for multi-dimensional convolution operations
US20170344876A1 (en) 2016-05-31 2017-11-30 Samsung Electronics Co., Ltd. Efficient sparse parallel winograd-based convolution scheme
RU2016138608A (ru) * 2016-09-29 2018-03-30 Мэджик Лип, Инк. Нейронная сеть для сегментации изображения глаза и оценки качества изображения
CN106650922B (zh) * 2016-09-29 2019-05-03 清华大学 硬件神经网络转换方法、计算装置、软硬件协作系统
US10037490B2 (en) * 2016-12-13 2018-07-31 Google Llc Performing average pooling in hardware
CN107103113B (zh) * 2017-03-23 2019-01-11 中国科学院计算技术研究所 面向神经网络处理器的自动化设计方法、装置及优化方法
US11347964B2 (en) * 2017-08-07 2022-05-31 Renesas Electronics Corporation Hardware circuit
WO2019053835A1 (ja) * 2017-09-14 2019-03-21 三菱電機株式会社 演算回路、演算方法、およびプログラム
CN107633295B (zh) 2017-09-25 2020-04-28 南京地平线机器人技术有限公司 用于适配神经网络的参数的方法和装置
CN107832839B (zh) * 2017-10-31 2020-02-14 南京地平线机器人技术有限公司 执行卷积神经网络中的运算的方法和装置

Also Published As

Publication number Publication date
EP3460725A1 (en) 2019-03-27
US20190095790A1 (en) 2019-03-28
US11461632B2 (en) 2022-10-04
JP2019061664A (ja) 2019-04-18
KR102217761B1 (ko) 2021-02-18
CN107633295B (zh) 2020-04-28
CN107633295A (zh) 2018-01-26
KR20190035556A (ko) 2019-04-03

Similar Documents

Publication Publication Date Title
JP6715900B2 (ja) ニューラルネットワークのパラメータを適応させるための方法および装置
JP7271667B2 (ja) 行列の空間局所性変換
US20230195831A1 (en) Methods and systems for implementing a convolution transpose layer of a neural network
CN108229655B (zh) 卷积神经网络(cnn)处理方法和设备
JP7035080B2 (ja) 代替ループ限界値
US10802956B2 (en) Accessing prologue and epilogue data
EP3891663A1 (en) Neural network processor
TWI740274B (zh) 用於在使用加法器之多維張量中存取資料之系統、電腦實施方法及設備
CN109564585B (zh) 基于点积的处理元件
Chen et al. Zara: A novel zero-free dataflow accelerator for generative adversarial networks in 3d reram
Gu et al. DLUX: A LUT-based near-bank accelerator for data center deep learning training workloads
Yang et al. AUTO-PRUNE: Automated DNN pruning and mapping for ReRAM-based accelerator
CN114792124A (zh) 在硬件中实施扩张卷积
CN113344172A (zh) 将卷积映射到通道卷积引擎
JP2022181161A (ja) ハードウェアにおけるスパース行列乗算
Arora et al. CoMeFa: Deploying Compute-in-Memory on FPGAs for Deep Learning Acceleration
Yang et al. APQ: Automated DNN pruning and quantization for ReRAM-based accelerators
CN115115023A (zh) 用于生成关于卷积层权重的损失函数的梯度的方法和系统
JP2023518717A (ja) 機械学習アクセラレータの電力削減
CN114595811A (zh) 用于执行深度学习操作的方法和设备
CN117492838A (zh) 访问序言和结尾数据
TWI841631B (zh) 用於矩陣的空間地域轉換之方法及處理器電路
US20240126617A1 (en) Deep fusion of kernel execution
TWI841632B (zh) 用於矩陣的空間地域轉換之方法及系統
CN110163352B (zh) 电路规划结果产生方法与系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200409

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: 20200526

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200609

R150 Certificate of patent or registration of utility model

Ref document number: 6715900

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250