主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

Convolution2Dlayer.

说明

2次元畳み込み层は,入力にスライディング畳み込みフィルターを适用します。この层では,入力に沿って垂直方向および水平方向にフィルターを移动させ,重みと入力のドット积を计算し,バイアス项を加算することによって,入力を畳み込みます。

作作者

说明

= convolution2dLayer(filterSizenumFiltersは,2次元畳み込み层を作成し,过滤プロパティおよびnumfilters.プロパティを设定します。

= convolution2dLayer(filterSizenumFilters名称,价值は,名前と値のペアを使用して,オプションの步行稀释物料NumChannels.パラメーターと初期化学习率および正则化,および姓名の各プロパティを設定します。入力パディングを指定するには,名前と値のペアの引数“填充”を使用します。たとえば,convolution2dLayer(11,96 '步',4 '填充',1)は,サイズ[11 11]96年の個のフィルター,[4 4]のストライド,层の入力のすべての端に沿ったサイズ1のゼロパディングを持つ,2次元畳み込み层を作成します。复数の名前と値のペアを指定できます。各プロパティ名を一重引用符で囲みます。

入力引数

すべて展開する

名前と値のペアの引数

コンマ区切りの名前と値のペアの引数を使用して,层の入力の端に沿って追加するゼロパディングのサイズを指定するか,步行稀释物料NumChannels.パラメーターと初期化学习率および正则化,および姓名の各プロパティを设定します。名前を一重引用符で囲みます。

例:convolution2dLayer(16日“填充”,“相同”)は,サイズ[3]の16个のフィルターと'相同的'パディングを持つ,2次元畳み込み层を作成します。学习时に,层の出力サイズが入力サイズと同じになるように,ゼロパディングのサイズが计算および设定されます。

入力の端のパディング。“填充”と,次の値のいずれかから成るコンマ区切りのペアとして指定します。

  • '相同的'——ストライドが1である場合,出力サイズが入力サイズと同じになるように,学習時または予測時にサイズが計算されたパディングを追加します。ストライドが1より大きい場合,出力サイズはCEIL(投入/迈出)になります。ここここ,inputSizeは入力の高さまたは幅,步行は対応する次元のストライドです。可能な場合,上下および左右に同じ量のパディングが追加されます。垂直方向に追加しなければならないパディングの値が奇数の場合,余ったパディングは下に追加されます。水平方向に追加しなければならないパディングの値が奇数の場合,余ったパディングは右に追加されます。

  • 非负の整数P.- サイズP.のパディングを入力のすべての端に追加します。

  • 非負の整数のベクトル[A B]- サイズ一种のパディングを入力の上下に追加し,サイズB.のパディングを左右に追加します。

  • 非負の整数のベクトル[T B L R]——サイズがT.B.L.R.のパディングを,それぞれ入力の上,下,左,右に追加します。

例:“填充”,1は,入力の上下に1行のパディングを追加し,入力の左右に1列のパディングを追加します。

例:'填充','同样'は,(ストライドが1の场合)出力サイズが入力サイズと同じになるようにパディングを追加します。

プロパティ

すべて展開する

畳み込み

フィルターの高さと幅。2つの正の整数のベクトル[H W]として指定します。Hは高さ,W.は幅です。过滤は,入力でニューロンが結合する局所領域のサイズを定義します。

层を作成する场合,过滤をスカラーとして指定して,高さと幅に同じ値を使用できます。

例:[5 5]は,高さが5,幅が5のフィルターを指定します。

フィルターの数。正の整数として指定します。この数値は、入力の同じ領域に結合する畳み込み層のニューロンの数に対応します。このパラメーターは、畳み込み層の出力のチャネル (特徴マップ) の数を決定します。

例:96

入力を垂直方向および水平方向に走查するステップサイズ0.2つの正の整数のベクトル[A B]として指定します。一种は垂直方向のステップサイズ,B.は水平方向のステップサイズです。层を作成する场合,步行をスカラーとして指定して,両方のステップサイズに同じ値を使用できます。

例:[2 3]は,垂直方向のステップサイズとして2,水平方向のステップサイズとして3を指定します。

膨張畳み込み(深黑色的畳み込みとも呼ばれる)の係数。2つの正の整数のベクトル[H W]として指定します。Hは垂直方向の膨张,W.は水平方向の膨張です。层を作成する场合,稀释物料をスカラーとして指定して,水平方向と垂直方向の両方の膨张に同じ値を使用できます。

膨张畳み込みを使用して,パラメーターの数や计算量を増やさずに,层の受容野(层で确认できる入力の领域)を増やすことができます。

各フィルター要素间にゼロを插入すると,层のフィルターが拡张されます。膨张系数は,入力のサンプリングのステップサイズ,またはこれと等価であるフィルターのアップサンプリング系数を决定します。これは,有效なフィルターサイズ(过滤器大小 - 1)。*扩张因子+ 1に相当しますたとえば,膨张系数。(2 - 2)の3行3列のフィルターは,要素間にゼロが挿入された5行5列のフィルターと等価です。

例:[2 3]

入力の境界に適用するパディングのサイズ。4つの非負の整数のベクトル[T B L R]として指定します。T.は上に适用されるパディング,B.は下に適用されるパディング,L.は左に适用されるパディング,R.は右に適用されるパディングです。

層の作成時に,名前と値のペアの引数“填充”を使用してパディングのサイズを指定します。

例:[1 1 2 2]は,入力の上下に1行のパディングを追加し,入力の左右に2列のパディングを追加します。

パディングのサイズを決定するメソッド。'手动的'または'相同的'として指定します。

PaddingModeの値は,層の作成時に指定した“填充”値に基づいて自動的に設定されます。

  • “填充”オプションをスカラーまたは非負の整数のベクトルに設定した場合,PaddingMode'手动的'に自动的に设定されます。

  • “填充”オプションを'相同的'に設定した場合,PaddingMode'相同的'に自动的に设定されます。ストライドが1である场合,出力サイズが入力サイズと同じになるように,学习时にパディングのサイズが计算されます。ストライドが1より大きい場合,出力サイズはCEIL(投入/迈出)になります。ここここ,inputSizeは入力の高さまたは幅,步行は対応する次元のストライドです。可能な場合,上下および左右に同じ量のパディングが追加されます。垂直方向に追加しなければならないパディングの値が奇数の場合,余ったパディングは下に追加されます。水平方向に追加しなければならないパディングの値が奇数の場合,余ったパディングは右に追加されます。

メモ

填充プロパティは将来のリリースで削除される予定です。代わりにPaddingSizeを使用してください。层の作成时に,名前と値のペアの引数“填充”を使用してパディングのサイズを指定します。

入力の境界に垂直方向および水平方向に适用するパディングのサイズ0.2つの非负の整数のベクトル[A B]として指定します。一种は入力データの上下に适用されるパディング,B.は左右に适用されるパディングです。

例:[1 1]は,入力の上下に1行のパディングを追加し,入力の左右に1列のパディングを追加します。

各フィルターのチャネルの数。'汽车'または正の整数として指定します。

このパラメーターは,常に畳み込み层への入力のチャネル数に等しくなります。たとえば,入力がカラーイメージの场合,入力のチャネルの数は3です。现在の层の前にある畳み込み层のフィルターの数が16の场合,现在の层のチャネルの数は16です。

NumChannels.'汽车'の场合,学习时にチャネルの数が决定されます。

例:256.

パラメーターと初期化

重みを初期化する关数。次のいずれかに指定します。

  • 'glorot'- Glorot初期化子[4](泽维尔初期化子とも呼ばれる)を使用して重みを初期化します.Glorot初期化子は,平均0,分散2 /(努敏+ numOut)の一様分布から个别にサンプリングを行います。ここで,numIn = FilterSize (1) * FilterSize (2) * NumChannelsおよびnumOut = FilterSize (1) * FilterSize (2) * NumFiltersです。

  • '他'- 他初期化子[5]を使用して重みを初期化します。他初期化子は,平均0,分散2 /努敏の正規分布からサンプリングを行います。ここで,numIn = FilterSize (1) * FilterSize (2) * NumChannelsです。

  • “缩小正常”- 平均0,标准偏差0.01の正规分布から个别にサンプリングを行って,重みを初期化します。

  • 'zeros'- 0で重みを初期化します。

  • “的”- 1で重みを初期化します。

  • 关数ハンドル - カスタム关数で重みを初期化します关数ハンドルを指定する场合,关数は权重= func(sz)という形式でなければなりません。ここで,SZ.は重みのサイズです。例については,カスタム重み初期化関数の指定を参照してください。

この层では,重量プロパティが空の场合にのみ重みが初期化されます。

データ型:字符|细绳|function_handle.

バイアスを初期化する关数。次のいずれかに指定します。

  • 'zeros'- 0でバイアスを初期化します。

  • “的”- 1でバイアスを初期化します。

  • “缩小正常”- 平均0,标准偏差0.01の正规分布から个别にサンプリングを行って,バイアスを初期化します。

  • 关数ハンドル - カスタム关数でバイアスを初期化します关数ハンドルを指定する场合,关数は偏压= FUNC(SZ)という形式でなければなりません。ここで,SZ.はバイアスのサイズです。

この层では,偏见プロパティが空の场合にのみバイアスが初期化されます。

データ型:字符|细绳|function_handle.

畳み込み层の重み数。値配列として指定します。

层の重みは学习可能なパラメーターです。层の重量プロパティを使用して,重みに直接,初期値を指定できます。ネットワークの学习时に,层の重量プロパティが空ではない场合,Trainnetwork.重量プロパティを初期値として使用します。重量プロパティが空の場合,Trainnetwork.は层のWeightsInitializerプロパティによって指定された初期化子を使用します。

学習時、重量FilterSize(1)X过滤(2)XNumChannels.Xnumfilters.の配列です。

データ型:单身的|

畳み込み层のバイアス。数値配列として指定します。

层のバイアスは学习可能なパラメーターです。ネットワークの学习时に,偏见が空ではない场合,Trainnetwork.偏见プロパティを初期値として使用します。偏见が空の场合,Trainnetwork.BiasInitializerによって指定された初期化子を使用します。

学習時、偏见は1×1×numfilters.の配列です。

データ型:单身的|

学习率および正则化

重みの学習率係数。非負のスカラーとして指定します。

この系数にグローバル学习率が乘算されて,この层の重みの学习率が决定されます。たとえば,WeightLearnRateFactorが2の場合,この層の重みの学習率は現在のグローバル学習率の2倍になります。关节培训选项で指定された设定に基づいて,グローバル学习率が决定されます。

例:2

バイアスの学习率系数。非负のスカラーとして指定します。

この係数にグローバル学習率が乗算されて,この層のバイアスの学習率が決定されます。たとえば,Biaslearnratefactor.が2の场合,层のバイアスの学习率は现在のグローバル学习率の2倍になります。关数培训选项で指定された设定に基づいて,グローバル学习率が决定されます。

例:2

重みのL2正则化系数。非负のスカラーとして指定します。

この系数にグローバルL2正则化系数が乘算されて,この层の重みのL2正则化が决定されます。たとえば,WeightL2Factorが2の場合,この層の重みのL2正則化はグローバルL2正則化係数の2倍になります。グローバルL2正則化係数は,関数培训选项を使用して指定できます。

例:2

バイアスのL2正则化系数。非负のスカラーとして指定します。

この係数にグローバルL2正則化係数が乗算されて,この層のバイアスのL2正則化が決定されます。たとえば,BiasL2Factorが2の場合,この層のバイアスのL2正則化はグローバルL2正則化係数の2倍になります。グローバルL2正則化係数は,関数培训选项を使用して指定できます。

例:2

层の名前。文字ベクトルまたは串スカラーとして指定します。层グラフに层を含めるには,空ではない一意の层の名前を指定しなければなりません。この层が含まれる系列ネットワークに学习させて姓名''に设定すると,学习时に层に名前自动的に割り当てられます。

データ型:字符|细绳

層の入力の数。この層は単一の入力のみを受け入れます。

データ型:

层の入力名。この层は単一の入力のみを受け入れます。

データ型:细胞

层の出力の数。この层には単一の出力のみがあります。

データ型:

层の出力名。この层には単一の出力のみがあります。

データ型:细胞

すべて折りたたむ

高さと幅がそれぞれ11のフィルターを96个もつ畳み込み层を作成します。水平方向と垂直方向のストライド(ステップサイズ)に4を使用します。

图层=卷积2dlayer(11,96,'走吧'4)
layer = Convolution2DLayer with properties: Name: " Hyperparameters FilterSize: [11 11] NumChannels: 'auto' NumFilters: 96 Stride: [4 4] DilationFactor: [11] PaddingMode: 'manual' PaddingSize: [0 0 0 0] Learnable Parameters Weights: [] Bias:[]显示所有属性

配列に畳み込み层を含めます。

图层= [ImageInputLayer([28 28 1])卷积2dlayer(5,20)rululayer maxpooling2dlayer(2,'走吧',2)全连接列(10)SoftMaxLayer分类层]
图层= 7x1层阵列,图层:1''图像输入28x28x1图像与'zerocenter'归一化2''卷积20 5x5卷积与步幅[1 1]和填充[0 0 0 0] 3''Relu Relu 4''Max汇集2x2 max汇集步进[2 2]和填充[0 0 0 0] 5''完全连接的10完全连接的第6层''softmax softmax 7''分类输出crossentropyex

重みとバイアスの初期化子关数を指定するには,それぞれWeightsInitializerプロパティとBiasInitializerプロパティを使用します。重みとバイアスを直接指定するには,それぞれ重量プロパティと偏见プロパティを使用します。

初期化关数の指定

32个のフィルターを持ち,各フィルターの高さと幅が5の畳み込み层を作成し,重み初期化子を他初期化子に指定します。

filtersize = 5;numFilters = 32;层= convolution2dLayer(filterSize,numFilters,......'WeightsInitializer''他'
layer = Convolution2DLayer with properties: Name: " Hyperparameters FilterSize: [5 5] NumChannels: 'auto' NumFilters: 32 Stride: [1 1] DilationFactor: [1 1] PaddingMode: 'manual' PaddingSize: [0 0 0 0] Learnable Parameters Weights: [] Bias:[]显示所有属性

重量プロパティおよび偏见プロパティは空になることに注意してください。学习时に,これらのプロパティは指定した初期化关数を使用して初期化されます。

カスタム初期化関数の指定

重みとバイアスの独自の初期化関数を指定するには,関数ハンドルにWeightsInitializerプロパティおよびBiasInitializerプロパティを设定します。これらのプロパティに,重みとバイアスのサイズを入力として取り,初期化値を出力する関数ハンドルを指定します。

32個のフィルターを持ち,各フィルターの高さと幅が5の畳み込み層を作成し,標準偏差0.0001のガウス分布から重みとバイアスをサンプリングする初期化子を指定します。

filtersize = 5;numFilters = 32;层= convolution2dLayer(filterSize,numFilters,......'WeightsInitializer'@(SZ)兰特(SZ)* 0.0001,......'BiasInitializer'@(SZ)兰特(SZ)* 0.0001)
layer = Convolution2DLayer with properties: Name: " Hyperparameters FilterSize: [5 5] NumChannels: 'auto' NumFilters: 32 Stride: [1 1] DilationFactor: [1 1] PaddingMode: 'manual' PaddingSize: [0 0 0 0] Learnable Parameters Weights: [] Bias:[]显示所有属性

ここでも,重量プロパティおよび偏见プロパティは空になります。学習時に,これらのプロパティは指定した初期化関数を使用して初期化されます。

重みおよびバイアスの直接指定

出力サイズが10の全结合层を作成し,MATファイルConv2dWeights.matで重みとバイアスをそれぞれW.B.に设定します。

filtersize = 5;numFilters = 32;加载conv2dweights.层= convolution2dLayer(filterSize,numFilters,......'重量'W,......“偏见”,b)
layer = Convolution2DLayer with properties: Name: " Hyperparameters FilterSize: [5 5] NumChannels: 3 NumFilters: 32 Stride: [1 1] DilationFactor: [1 1] PaddingMode: 'manual' PaddingSize: [0 0 0 0] Learnable Parameters Weights: [5x5x3x32 double] Bias: [1x1x32 double]显示所有属性

ここで,重量プロパティおよび偏见プロパティには指定した値が含まれます。学习时に,これらのプロパティが空ではない场合,指定した値が初期の重みとバイアスとして使用されます。この场合,初期化子关数は使用されません。

入力のサイズが28 28 x 1であるとします。16 個のフィルターを持ち、各フィルターの高さが 6 で幅が 4 の畳み込み層を作成します。水平方向と垂直方向のストライドを 4 に設定します。

畳み込みが入力を完全にカバーすることを确认します。畳み込みが入力を完全にカバーするには,水平方向と垂直方向の両方の出力次元が整数でなければなりません。水平方向の出力次元を整数にするには,イメージの上下に1行のゼロパディングが必要です:(28 - 6+ 2 * 1)/ 4 + 1 = 7,垂直方向の出力次元を整数にするには,ゼロパディングは不要です:(28 - 2 4+ * 0)/ 4 + 1 = 7。

畳み込み层を构筑します。

layer = convolution2dLayer([6 4],16,'走吧'4“填充”1, [0])
layer = Convolution2DLayer with properties: Name: " Hyperparameters FilterSize: [6 4] NumChannels: 'auto' NumFilters: 16 Stride: [4 4] DilationFactor: [1 1] PaddingMode: 'manual' PaddingSize: [1 1 0 0] Learnable Parameters Weights: [] Bias:[]显示所有属性

详细

すべて展開する

互换性の考虑事项

すべて展開する

R2019aでの動作変更

参照

[1] LeCun,Y.,B。宝狮,J.S。骏佳,D.亨德森,R. E.霍华德,W.哈伯德和L. D. Jackel公司。“手写数字识别与反向传播网络。”在神经信息处理系统2的进展(D. Touretzky,编辑)。旧金山:摩根Kaufmann,1990。

[2] Lecun,Y.,L.Pottou,Y.Bengio和P. Haffner。“”基于梯度学习应用于文档识别。'的IEEE学报。卷。86,第11期,1998年,第2278至2324年。

[3] Murphy, K. P.机器学习:概率视角。马萨诸塞州剑桥:麻省理工学院出版社,2012。

[4]格洛洛,泽维尔,还有约书亚·本吉奥。“理解训练深度前馈神经网络的难度。”第13届人工智能与统计国际会议论文集,第249-256页。2010.

[5]他,开明,象屿张,少卿仁和健太阳“深钻研整流器:上imagenet分类超越人类水平的性能。”在计算机视觉的IEEE国际会议,第1026至1034年的诉讼。2015年。

拡張機能

C / c++コード生成
MATLAB®Coder™をを使てcおよびc ++コード生成します。

GPUコード生成
GPU编码器™を使用してNVIDIA GPU®のためのCUDA®コードを生成します。

R2016aで導入

[1]图像信用:卷积运算执照