レイヤーリファレンス

各レイヤーのプロパティや、レイヤー内で行われる処理に関して詳細な情報を掲載しています。
Neural Network Consoleではレイヤーを示すカラーバーを自由に配置・つなぎ合わせて多層のニューラルネットワークを直感的に作成することができます。

各レイヤーの色分け

  • IO

    データの入出力を行います。

  • Basic

    人工ニューロンの演算を行います。
    * 2値化ニューラルネットワークを記述するにはBinaryレイヤーを用います。

  • Activation

    入力値に非線形な変換を施す活性化処理を行います
    * 2値化ニューラルネットワークを記述するにはBinaryレイヤーを用います。

  • Pooling

    Pooling処理を行います。

  • Parameter

    最適化対象のパラメータです。

  • LoopControl

    繰り返し処理を記述するために用います。

  • Quantize, Unit, Math, Loss, Others, Others (Pre Process), Setting

    テンソル要素への算術演算, データの前処理, など様々な用途に用います。

  • Arithmetic (Scalar, 2 Inputs), Logical, Validation

    算術演算, 論理演算, 精度算出などに用います。

 

入出力レイヤー

 

Input

ニューラルネットワークの入力層です。

Size 入力のサイズを指定します

画像データの場合「色数,高さ,幅」のフォーマットで指定します。例えばRGBカラー画像でWidthが32、Heightが24の場合「3,24,32」とします。モノクロ画像でWidthが64、Heightが48の場合「1,48,64」とします

CSVデータの場合「行数,列数」のフォーマットで指定します。例えば行のみで16行1列の場合「16,1」とします。12行3列の行列の場合「12,3」とします

Dataset データセットに含まれる変数のうち、このInputレイヤーに入力する変数の変数名を指定します
Generator このInputレイヤーに使用するGeneratorを指定します。GeneratorプロパティがNone以外の場合、最適化時Datasetで指定した変数の代わりにGeneratorにより生成するデータを用います。

None:データ生成を行いません

Uniform:-1.0~1.0の一様乱数を生成します

Normal:平均0.0、分散1.0であるガウス乱数を生成します

Constant:全ての要素が一定値(1.0)であるデータを生成します

GeneratorMultiplier Generatorにより生成した値に対して掛ける係数を指定します

 

ロスレイヤー

 

SquaredError

データセットの変数との二乗誤差を最小化するニューラルネットワークの出力層です。ニューラルネットワークにより回帰問題を解く際(連続値を出力するニューラルネットワークを最適化する際)に使用します。

T.Dataset データセットに含まれる変数のうち、このSquaredErrorレイヤーの出力として期待する変数の変数名を指定します
T.Generator データセットの代わりに用いるGeneratorを指定します。GeneratorプロパティがNone以外の場合、最適化時T.Datasetで指定した変数の代わりにGeneratorにより生成するデータを用います

None:データ生成を行いません

Uniform:-1.0~1.0の一様乱数を生成します

Normal:平均0.0、分散1.0であるガウス乱数を生成します

Constant:全ての要素が一定値(1.0)であるデータを生成します

T.GeneratorMultiplier Generatorにより生成した値に対して掛ける係数を指定します

 

HuberLoss

データセットの変数とのHuber Lossを最小化するニューラルネットワークの出力層です。Squared Error同様ニューラルネットワークにより回帰問題を解く際に使用します。Squared Errorの代わりに使用することにより学習を安定させる効果があります。

$$L\ =\ 12i2 for i≦δ\\
δ2i- 12δ otherwise.$$
(iはデータセットと入力値との差分を示す)

Delta ロスを線形に増加させる閾値となるδを指定します

 

その他のプロパティはSquaredErrorと共通です。

 

AbsoluteError

データセットの変数との絶対誤差を最小化するニューラルネットワークの出力層です。ニューラルネットワークにより回帰問題を解く際(連続値を出力するニューラルネットワークを最適化する際)に使用します。プロパティはSquaredErrorと共通です。

 

EpsilonInsensitiveLoss

Epsilonで指定する範囲を超えたデータセットの変数との絶対誤差を最小化するニューラルネットワークの出力層です。ニューラルネットワークにより回帰問題を解く際(連続値を出力するニューラルネットワークを最適化する際)に使用します。

$$y_i= \begin{cases}
0 & (|d| < \epsilon) \
|d| – \epsilon & ({\rm otherwise})
\end{cases}$$

where
$$d = x^{(0)}_i – x^{(1)}_i$$

Epsilon εの値を指定します

その他のプロパティはSquaredErrorと共通です。

 

BinaryCrossEntropy

データセットの変数との交差エントロピーを最小化するニューラルネットワークの出力層です。2値分類問題(0 or 1)を解く際に使用します。BinaryCrossEntropyの入力値は0.0~1.0(確率値)、データセットの変数は0もしくは1である必要があります。プロパティはSquaredErrorと共通です。

 

SigmoidCrossEntropy

データセットの変数との交差エントロピーを最小化するニューラルネットワークの出力層です。学習時、SigmoidCrossEntropyはSigmoid+BinaryCrossEntropyと等価ですが、まとめて演算することにより演算誤差を抑える効果があります。プロパティはSquaredErrorと共通です。

ご参考

Sigmoid+BinaryCrossEntropyの代わりにSigmoidCrossEntropyを用いた場合、評価実行結果としてはSigmoid処理が行われていない連続値がそのまま出力されることになります。

 

CategoricalCrossEntropy

カテゴリIndexで与えられるデータセットの変数との交差エントロピーを最小化するニューラルネットワークの出力層です。プロパティはSquaredErrorと共通です。

 

SoftmaxCrossEntropy

カテゴリIndexで与えられるデータセットの変数との交差エントロピーを最小化するニューラルネットワークの出力層です。学習時、SoftmaxCrossEntropyはSoftmax+CategoricalCrossEntropyと等価ですが、まとめて演算することにより演算誤差を抑える効果があります。プロパティはSquaredErrorと共通です。

ご参考

Softmax+CategoricalCrossEntropyの代わりにSoftmaxCrossEntropyを用いた場合、評価実行結果としてはSoftmax処理が行われていない連続値がそのまま出力されることになります。

 

KLMultinomial

多項分布である入力の確率分布(p)と、データセットの変数(q)とのKullback Leibler距離を最小化するニューラルネットワークの出力層です。プロパティはSquaredErrorと共通です。

 

パラメータレイヤー

 

Parameter

ニューラルネットワークのパラメータです。

Size パラメータのサイズを指定します
File プリトレーニングされたパラメータを用いる場合に、パラメータの書かれたファイルを絶対パスで指定します
Fileが指定されておりパラメータをファイルから読み込む場合、Initializerによる初期化は無効になります
Initializer パラメータの初期化方法を指定します
Uniform:-1.0~1.0の一様乱数で初期化します
UniformAffineGlorot:一様乱数にXavier Glorot提案の 係数をかけて初期化します
UniformConvolutionGlorot:一様乱数にXavier Glorot提案の 係数をかけて初期化します
Normal:平均0.0、分散1.0であるガウス乱数で初期化します(デフォルト)
NormalAffineHeForward:ガウス乱数にKaiming He提案の係数をかけて初期化します(Forward Case)
NormalAffineHeBackward:ガウス乱数にKaiming He提案の係数をかけて初期化します(Backward Case)
NormalAffineGlorot:ガウス乱数にXavier Glorot提案の 係数をかけて初期化します
NormalConvolutionHeForward:ガウス乱数にKaiming He提案の係数をかけて初期化します(Forward Case)
NormalConvolutionHeBackward:ガウス乱数にKaiming He提案の係数をかけて初期化します(Backward Case)
NormalConvolutionGlorot:ガウス乱数にXavier Glorot提案の 係数をかけて初期化します
Constant:全ての要素を一定値(1.0)で初期化します
InitializerMultiplier Initializerにより生成した値に対して掛ける係数を指定します
LRateMultiplier コンフィグタブで指定したLearning Rateに対し、パラメータの更新に用いるLearning Rateの倍率を指定します

 
ご参考
Parameterレイヤーで定義したパラメータは、AffineやConvolutionのW、bサイドコネクタに接続するなどして利用することができます。

 

WorkingMemory

演算結果を一次的に格納することができるバッファです。WorkingMemoryに入力されたデータは、WorkingMemoryに格納されます。WorkingMemoryに格納されたデータは、別のネットワークに設置した同名のWorkingMemoryの出力から取り出すことができます。

Size バッファのサイズを指定します
File 予めバッファの内容を指定する場合に、データの書かれたファイルを絶対パスで指定します
Fileが指定されておりデータをファイルから読み込む場合、Initializerによる初期化は無効になります
Initializer パラメータの初期化方法を指定します
Uniform:-1.0~1.0の一様乱数で初期化します
Normal:平均0.0、分散1.0であるガウス乱数で初期化します(デフォルト)
Constant:全ての要素を一定値(1.0)で初期化します
InitializerMultiplier Initializerにより生成した値に対して掛ける係数を指定します

 

基本(Basic)レイヤー

 

Affine

全ての入力値から、OutShapeプロパティで指定する全ての出力ニューロンへの結合を持つ全結合層です。

o = Wi+b

(iは入力、oは出力、Wは重み、bはバイアス項を示す)

OutShape Affineレイヤーの出力ニューロン数を指定します
WithBias バイアス項(b)の有無を指定します
ParameterScope このレイヤーで用いるパラメータの名前を指定します

同じParameterScopeの指定されたレイヤーの間ではパラメータが共有されます

W.File プリトレーニングされた重みWを用いる場合に、Wの書かれたファイルを絶対パスで指定します

Fileが指定されており重みWをファイルから読み込む場合、Initializerによる初期化は無効になります

W.Initializer 重みWの初期化方法を指定します

Uniform:-1.0~1.0の一様乱数で初期化します

UniformAffineGlorot:一様乱数にXavier Glorot提案の 係数をかけて初期化します

Normal:平均0.0、分散1.0であるガウス乱数で初期化します

NormalAffineHeForward:ガウス乱数にKaiming He提案の係数をかけて初期化します(Forward Case)

NormalAffineHeBackward:ガウス乱数にKaiming He提案の係数をかけて初期化します(Backward Case)

NormalAffineGlorot:ガウス乱数にXavier Glorot提案の 係数をかけて初期化します(デフォルト)

Constant:全ての要素を一定値(1.0)で初期化します

W.InitializerMultiplier Initializerにより生成した値に対して掛ける係数を指定します
W.LRateMultiplier コンフィグタブで指定したLearning Rateに対し、重みWの更新に用いるLearning Rateの倍率を指定します

例えばコンフィグタブで指定したLearning Rateが0.01の状態でW.LRateMultiplierを2とした場合、重みWはLearning Rate0.02で更新されます

b.* バイアスbに関する設定を行います。プロパティは重みWと共通です

 

Convolution

入力値に対して畳み込み演算を行うレイヤーです。

Ox,m = Σ_i,n Wi,n,m Ix+i,n + bm(1次元Convolutionの場合)

Ox,y,m = Σ_i,j,n Wi,j,n,m Ix+i,y+j,n + bm(2次元Convolutionの場合)

(Oは出力、Iは入力、i,jはカーネルサイズ、x,y,nは入力のIndex、mは出力マップ(OutMapsプロパティ)、Wはカーネルの重み、bは各カーネルのバイアス項を示す)

KernelShape 畳み込むカーネルのサイズを指定します

例えば画像に3(Height)x5(Width)の2次元のカーネルを畳み込む場合「3,5」とします

例えば1次元の時系列信号に7 tapのフィルタを畳み込む場合は「7」とします

WithBias バイアス項(b)の有無を指定します
OutMaps 畳み込むカーネルの数(=出力データ数)を指定します

例えば入力に対して16種類のフィルタを畳み込む場合は「16」とします

BorderMode 畳み込みを行う範囲を指定します

valid:各軸の入力データサイズに対して、Kernel Shape分の畳み込みが可能な範囲で畳み込みを行います

この場合出力するデータの各軸のサイズは入力サイズ-Kernel Shape+1になります

full:各軸の入力データに対して、1サンプルでも畳み込みが可能な範囲で畳み込みを行います

足りない範囲のデータ(上下左右それぞれKernel Shape – 1)には0がPaddingされます

この場合出力するデータの各軸のサイズは入力サイズ+Kernel Shape-1になります

same:入力データと出力データのサイズが同じになるような範囲で畳み込みを行います

足りない範囲のデータ(上下左右それぞれKernel Shape/2 – 1)には0がPaddingされます

Padding 畳み込み処理前に配列の端にゼロを追加するサイズを指定します。例えば画像の上下方向に3ピクセル、左右に2ピクセルを挿入するには「3,2」とします。

*ConvolutionPaddingSize:PaddingにBorderModeから算出される値を用います

Strides カーネルの畳み込みを何サンプル毎に行うかを指定します

1以外のStrideを指定した軸の出力サイズは、指定した値でダウンサンプリングされます

例えば画像のX軸方向には2毎サンプル毎、Y軸方向には3サンプル毎に畳み込みを行う場合は「3,2」とします

Dilation カーネルを広げる倍率をカーネルに対するStrideの値で指定します。例えば3(Height)x5(Width)の2次元のカーネルをHeight3倍、Width2倍に広げ、7×9の範囲に対してConvolutionを行う場合は「3,2」とします
Group OutMapsをグルーピングする単位を指定します。
ChannelLast 入力の最後の次元を入力マップとして扱います。
ParameterScope このレイヤーで用いるパラメータの名前を指定します

同じParameterScopeの指定されたレイヤーの間ではパラメータが共有されます

W.File プリトレーニングされた重みWを用いる場合に、Wの書かれたファイルを絶対パスで指定します

Fileが指定されており重みWをファイルから読み込む場合、Initializerによる初期化は無効になります

W.Initializer 重みWの初期化方法を指定します

Uniform:-1.0~1.0の一様乱数で初期化します

UniformConvolutionGlorot:一様乱数にXavier Glorot提案の 係数をかけて初期化します

Normal:平均0.0、分散1.0であるガウス乱数で初期化します

NormalConvolutionHeForward:ガウス乱数にKaiming He提案の係数をかけて初期化します(Forward Case)

NormalConvolutionHeBackward:ガウス乱数にKaiming He提案の係数をかけて初期化します(Backward Case)

NormalConvolutionGlorot:ガウス乱数にXavier Glorot提案の 係数をかけて初期化します(デフォルト)

Constant:全ての要素を一定値(1.0)で初期化します

W.InitializerMultiplier Initializerにより生成した値に対して掛ける係数を指定します
W.LRateMultiplier コンフィグタブで指定したLearning Rateに対し、重みWの更新に用いるLearning Rateの倍率を指定します

例えばコンフィグタブで指定したLearning Rateが0.01の状態でW.LRateMultiplierを2とした場合、重みWはLearning Rate0.02で更新されます

b.* バイアスbに関する設定を行います。プロパティは重みWと共通です

 

DepthwiseConvolution

入力値に対して、Map毎に畳み込み演算を行うレイヤーです。DepthwiseConvolutionの動作は、Groupの値が入力Map数およびOutMapsの値と同一であるConvolutionの動作と等価です。

Ox,y,n = Σ_i,j Wi,j Ix+i,y+j,n + bn(2次元Convolution、Multiplier=1の場合)

(Oは出力、Iは入力、i,jはカーネルサイズ、x,y,nは入力のIndex、Wはカーネルの重み、bは各カーネルのバイアス項を示す)

KernelShape 畳み込むカーネルのサイズを指定します

例えば画像に3(Height)x5(Width)の2次元のカーネルを畳み込む場合「3,5」とします

例えば1次元の時系列信号に7 tapのフィルタを畳み込む場合は「7」とします

WithBias バイアス項(b)の有無を指定します
BorderMode 畳み込みを行う範囲を指定します

valid:各軸の入力データサイズに対して、Kernel Shape分の畳み込みが可能な範囲で畳み込みを行います

この場合出力するデータの各軸のサイズは入力サイズ-Kernel Shape+1になります

full:各軸の入力データに対して、1サンプルでも畳み込みが可能な範囲で畳み込みを行います

足りない範囲のデータ(上下左右それぞれKernel Shape – 1)には0がPaddingされます

この場合出力するデータの各軸のサイズは入力サイズ+Kernel Shape-1になります

same:入力データと出力データのサイズが同じになるような範囲で畳み込みを行います

足りない範囲のデータ(上下左右それぞれKernel Shape/2 – 1)には0がPaddingされます

Padding 畳み込み処理前に配列の端にゼロを追加するサイズを指定します。例えば画像の上下方向に3ピクセル、左右に2ピクセルを挿入するには「3,2」とします。

*ConvolutionPaddingSize:PaddingにBorderModeから算出される値を用います

Strides カーネルの畳み込みを何サンプル毎に行うかを指定します

1以外のStrideを指定した軸の出力サイズは、指定した値でダウンサンプリングされます

例えば画像のX軸方向には2毎サンプル毎、Y軸方向には3サンプル毎に畳み込みを行う場合は「3,2」とします

Dilation カーネルを広げる倍率をカーネルに対するStrideの値で指定します。例えば3(Height)x5(Width)の2次元のカーネルをHeight3倍、Width2倍に広げ、7×9の範囲に対してConvolutionを行う場合は「3,2」とします
Multiplier 入力画像数に対する出力画像の枚数の倍率を指定します。
ParameterScope このレイヤーで用いるパラメータの名前を指定します

同じParameterScopeの指定されたレイヤーの間ではパラメータが共有されます

W.File プリトレーニングされた重みWを用いる場合に、Wの書かれたファイルを絶対パスで指定します

Fileが指定されており重みWをファイルから読み込む場合、Initializerによる初期化は無効になります

W.Initializer 重みWの初期化方法を指定します

Uniform:-1.0~1.0の一様乱数で初期化します

UniformConvolutionGlorot:一様乱数にXavier Glorot提案の 係数をかけて初期化します

Normal:平均0.0、分散1.0であるガウス乱数で初期化します

NormalConvolutionHeForward:ガウス乱数にKaiming He提案の係数をかけて初期化します(Forward Case)

NormalConvolutionHeBackward:ガウス乱数にKaiming He提案の係数をかけて初期化します(Backward Case)

NormalConvolutionGlorot:ガウス乱数にXavier Glorot提案の 係数をかけて初期化します(デフォルト)

Constant:全ての要素を一定値(1.0)で初期化します

W.InitializerMultiplier Initializerにより生成した値に対して掛ける係数を指定します
W.LRateMultiplier コンフィグタブで指定したLearning Rateに対し、重みWの更新に用いるLearning Rateの倍率を指定します

例えばコンフィグタブで指定したLearning Rateが0.01の状態でW.LRateMultiplierを2とした場合、重みWはLearning Rate0.02で更新されます

b.* バイアスbに関する設定を行います。プロパティは重みWと共通です

 

Deconvolution

入力値に対して逆畳み込み演算を行うレイヤーです。DeconvolutionのプロパティはConvolutionと共通です。

 

DepthwiseDeconvolution

入力値に対して、Map毎に逆畳み込み演算を行うレイヤーです。DepthwiseDeconvolutionの動作は、Groupの値が入力Map数およびOutMapsの値と同一であるDeconvolutionの動作と等価です。

 

Embed

入力値を0~N-1(Nはクラス数)の整数値で表される離散シンボルであると仮定し、各シンボルに指定サイズの配列を割り当てます。例えば入力値が単語Indexであり、ネットワークの冒頭で各単語をベクトル化する場合などに使用します。出力サイズは入力サイズ×配列サイズになります。

NumClass クラス数Nを指定します
Shape 1つのシンボルに割り当てる配列のサイズを指定します
ParameterScope このレイヤーで用いるパラメータの名前を指定します

同じParameterScopeの指定されたレイヤーの間ではパラメータが共有されます

W.File プリトレーニングされた重みWを用いる場合に、Wの書かれたファイルを絶対パスで指定します

Fileが指定されており重みWをファイルから読み込む場合、Initializerによる初期化は無効になります

W.Initializer 重みWの初期化方法を指定します

Uniform:-1.0~1.0の一様乱数で初期化します

Normal:平均0.0、分散1.0であるガウス乱数で初期化します

Constant:全ての要素を一定値(1.0)で初期化します

W.InitializerMultiplier Initializerにより生成した値に対して掛ける係数を指定します
W.LRateMultiplier コンフィグタブで指定したLearning Rateに対し、重みWの更新に用いるLearning Rateの倍率を指定します

例えばコンフィグタブで指定したLearning Rateが0.01の状態でW.LRateMultiplierを2とした場合、重みWはLearning Rate0.02で更新されます

 

Poolingレイヤー

 

MaxPooling

近傍の入力値の最大値を出力します。

KernelShape 最大値を取る近傍のサイズを指定します

例えば3(Height)x5(Width)の範囲の最大値を出力する場合は「3,5」とします

Strides 最大値を何サンプル毎に求めるかを指定します

各軸の出力サイズは、指定した値でダウンサンプリングされます

例えば画像のX軸方向には2毎サンプル毎、Y軸方向には3サンプル毎に最大値を取る場合は「3,2」とします

*KernelShape:StridesにKernelShapeと同じ値を用います

IgnoreBorder 境界の処理方法を指定します

True:KernelShapeで指定した最大値を取る範囲のサンプルが確保できる範囲で処理を行い、KernelShape分のサンプルが確保できない境界付近のサンプルは無視します

False:境界付近のサンプルを捨てず、1サンプルでも入力がある範囲で処理を行います

Padding Pooling処理前に配列の端にゼロを追加するサイズを指定します

例えば画像の上下各2ピクセル、左右各1ピクセル分のゼロを追加する場合は「2,1」とします

 

AveragePooling

近傍の入力値の平均値を出力します。プロパティはMaxPoolingと共通です。

 

GlobalAveragePooling

配列の最後の2次元全体の平均値を出力します。GlobalAveragePoolingは、PoolShapeおよびStridesに入力配列の最後の2次元のサンプル数を指定したAveragePoolingと等価です。

 

SumPooling

近傍の入力値の加算値を出力します。プロパティはMaxPoolingと共通です。

 

Unpooling

1つの入力値を複数にコピーして、入力データよりサイズの大きいデータを生成します。

KernelShape データをコピーするサイズを指定します

例えば1つのデータを縦方向に2回ずつ、横方向に3回ずつコピーする(縦方向2倍、横方向に3倍の大きさのデータを出力する)場合は、「2,3」とします

 

Activationレイヤー

 

Tanh

入力値のTanhによる処理結果を出力します。

y=tanh(x)

(yは出力、xは入力を示す)


 

Sigmoid

入力値のSigmoidによる処理結果を出力します。確率など0.0~1.0の出力値を得たい場合に使用します。

y=sigmoid(x)

(yは出力、xは入力を示す)

 

ReLU

入力値のReLU(Rectified Linear Unit)による処理結果を出力します。

y=max(0, x)

(yは出力、xは入力を示す)

InPlace Trueの場合、入力バッファと出力バッファを共有することにより学習に要するメモリを節約します
InPlace可能な場合に自動でInPlaceするには、*AutoInPlaceOnceを指定します

 

CReLU

入力信号と、入力信号の符号を反転したものに対してそれぞれRelu処理を行い、それぞれの結果をAxisプロパティの示す軸で結合して出力します(Concatenated ReLU)。

 

LeakyReLU

ReLUが0以下の入力に対して常に0を出力するのに対し、0以下の入力に対しても一定値をかけて出力するようにしたものです。

y=max(0, x) + a min(0, x)

(yは出力、xは入力を示す)

Alpha 負の勾配aの値を指定します
InPlace Trueの場合、入力バッファと出力バッファを共有することにより学習に要するメモリを節約します
InPlace可能な場合に自動でInPlaceするには、*AutoInPlaceOnceを指定します

 

PReLU

ReLUが0以下の入力に対して常に0を出力するのに対し、0以下の入力に対しても一定値をかけて出力するようにしたものです(Parametric ReLU)。0以下の勾配であるaの値は学習により獲得されます。

y=max(0, x) + a min(0, x)

(yは出力、xは入力を示す)

BaseAxis Inputのうち、個別のaを学習する軸のIndex(0から開始)を指定します。例えばInputが4,3,5である入力に対し、最初の次元(要素4)に対しそれぞれ個別のaを学習するには、BaseAxisを0とします
ParameterScope このレイヤーで用いるパラメータの名前を指定します

同じParameterScopeの指定されたレイヤーの間ではパラメータが共有されます

slope.File プリトレーニングされた勾配 aを用いる場合に、aの書かれたファイルを絶対パスで指定します

Fileが指定されており重みslopeをファイルから読み込む場合、Initializerによる初期化は無効になります

slope.Initializer 勾配 aの初期化方法を指定します

Uniform:-1.0~1.0の一様乱数で初期化します

Normal:平均0.0、分散1.0であるガウス乱数で初期化します

Constant:全ての要素を一定値(1.0)で初期化します

slope.InitializerMultiplier Initializerにより生成した値に対して掛ける係数を指定します
slope.LRateMultiplier コンフィグタブで指定したLearning Rateに対し、勾配 aの更新に用いるLearning Rateの倍率を指定します

例えばコンフィグタブで指定したLearning Rateが0.01の状態でslope.LRateMultiplierを2とした場合、勾配 aはLearning Rate0.02で更新されます

 

ELU

入力値のELU(Exponential Linear Unit)による処理結果を出力します。

y=max(0, x) + alpha(exp(min(0, x)) – 1)

(yは出力、xは入力を示す)

Alpha 負の出力の係数alphaを指定します

 

CELU

入力信号と、入力信号の符号を反転したものに対してそれぞれELU処理を行い、それぞれの結果をAxisプロパティの示す軸で結合して出力します(Concatenated ELU)。

 

SELU

入力値のSELU(Scaled Exponential Linear Unit)による処理結果を出力します。

y=lambda{max(0, x) + alpha(exp(min(0, x)) – 1)}

(yは出力、xは入力を示す)

Scale 全体のスケールlambdaを指定します
Alpha 負の出力の係数alphaを指定します

 

Swish

入力値のSwishによる処理結果を出力します。

y=x/(1+exp(-x))

(yは出力、xは入力を示す)

 

Abs

入力値の絶対値を出力します。

y=abs(x)

(yは出力、xは入力を示す)

 

Softmax

入力値のSoftmax値を出力します。カテゴリ分類問題における確率など、0.0~1.0かつ合計が1.0となる出力値を得たい場合に使用します。

yx=exp(xi) / Σ_jexp(xj)

(yは出力、xは入力、iはデータのIndexを示す)

 

Loop Controlレイヤー

Residual Networks、Recurrent Neural Networksなどループ構造を持つネットワークを構成するためのレイヤーです。

 

RepeatStart

繰り返しの開始位置を示すレイヤーです。RepeatStart、RepeatEndの間に配置されたレイヤーは、RepeatStartのTimesプロパティの示す回数繰り返し作成されます。

ご注意

Repeat StartとRepeatEndの配列サイズは同一である必要があります。繰り返しの度に配列のサイズが異なるような構造は記述できません。

 

RepeatEnd

繰り返し終了位置を示すレイヤーです。

 

RecurrentInput

Recurrent Neural Networkの時間ループ開始位置を示すレイヤーです。Axisプロパティで指定する軸が時間軸として扱われます。時間ループの長さは入力データのAxisプロパティで指定する軸の要素数です。

 

RecurrentOutput

Recurrent Neural Networkの時間ループ終了位置を示すレイヤーです。

 

Delay

RecurrentNeuralNetworkにおける時間遅れ信号を示すレイヤーです。

Size 時間遅れ信号のサイズを指定します
Initial.Dataset データセットに含まれる変数のうち、時間遅れ信号の初期値として使用する値の変数名を指定します
Initial.Generator データセットの代わりに用いるGeneratorを指定します。GeneratorプロパティがNone以外の場合、最適化時T.Datasetで指定した変数の代わりにGeneratorにより生成するデータを用います。

None:データ生成を行いません

Uniform:-1.0~1.0の一様乱数を生成します

Normal:平均0.0、分散1.0であるガウス乱数を生成します

Constant:全ての要素が一定値(1.0)であるデータを生成します

Initial.GeneratorMultiplier Generatorにより生成した値に対して掛ける係数を指定します

 

量子化レイヤー

重み係数やデータの量子化を行うレイヤーです。

FixedPointQuantize

線形量子化を行います。

Sign 符号の有無を指定します
Falseの場合、量子化後の値は全て正になります
N 量子化ビット数を指定します
Delta 量子化のステップサイズを指定します
STEFineGrained Backward時の勾配の計算方法を指定します
True:勾配は常に1
False:量子化で表現可能な最大値、最小値の範囲のみ勾配1、その他は0

 

Pow2Quantize

2べきの量子化を行います。

Sign 符号の有無を指定します
Falseの場合、量子化後の値は全て正になります
WithZero ゼロの有無を指定します
Falseの場合、量子化後の値はゼロを含みません
N 量子化ビット数を指定します
M 量子化後の最大値を2^Mで指定します
STEFineGrained Backward時の勾配の計算方法を指定します
True:勾配は常に1
False:量子化で表現可能な最大値、最小値の範囲のみ勾配1、その他は0

 

BinaryConnectAffine

-1、+1にバイナリ化されたWを用いるAffineレイヤーです。

o = sign(W)i+b

(iは入力、oは出力、Wは重み、bはバイアス項を示す)

Wb.* バイナリ化後の重みWbに関する設定を行います。プロパティはAffineレイヤーの重みWと共通です

その他のプロパティについてはAffineレイヤーをご参照ください。

 

BinaryConnectConvolution

-1、+1にバイナリ化されたWを用いるConvolutionレイヤーです。

Ox,y,m = Σ_i,j,n sign(Wi,j,n,m) Ix+i,y+j,n + bm(2次元Convolutionの場合)

(Oは出力、Iは入力、i,jはカーネルサイズ、x,y,nは入力のIndex、mは出力マップ(OutMapsプロパティ)、Wはカーネルの重み、bは各カーネルのバイアス項を示す)

Wb.* バイナリ化後の重みWbに関する設定を行います。プロパティはConvolutionレイヤーの重みWと共通です

その他のプロパティについてはConvolutionレイヤーをご参照ください。

 

BinaryWeightAffine

-1、+1にバイナリ化されたWを用いた上でScalingを行うことで通常のAffineレイヤーの出力に近づけたAffineレイヤーです。

o = a sign(W)i +b

(iは入力、oは出力、Wは重み、aはスケール、bはバイアス項を示す)

 

BinaryWeightConvolution

-1、+1にバイナリ化されたWを用いた上でScalingを行うことで通常のConvolutionレイヤーの出力に近づけたConvolutionレイヤーです。

Ox,y,m = Σ_i,j,n sign(Wi,j,n,m) Ix+i,y+j,n * a+ bm(2次元Convolutionの場合)

(Oは出力、Iは入力、i,jはカーネルサイズ、x,y,nは入力のIndex、mは出力マップ(OutMapsプロパティ)、Wはカーネルの重み、aはスケール、bは各カーネルのバイアス項を示す)

 

BinaryTanh

0以下の入力に対し-1を、0より大きい入力に対し+1を出力します。

 

BinarySigmoid

0以下の入力に対し0を、0より大きい入力に対し+1を出力します。

 

Unitレイヤー

ネットワークの途中に、他のネットワークを挿入する機能を提供するレイヤーです。Unitレイヤーを用いることで、ネットワークとして定義したレイヤーの集合を、別のネットワークの途中に挿入することができます。

Unitレイヤーを用いて他のネットワークを挿入するネットワークを「呼び出し元ネットワーク」、Unitレイヤーを用いて他のネットワークに挿入されるネットワークを「ユニットネットワーク」と呼びます。

 

Unit

現在の呼び出し元ネットワークにユニットネットワークを挿入します。

Network 挿入するユニットネットワークのネットワーク名を指定します
ParameterScope このユニットで用いるパラメータの名前を指定します
同じParameterScopeの指定されたユニットの間ではパラメータが共有されます
(その他のプロパティ) 挿入するユニットネットワークのプロパティを指定します

 

Argument

ユニットネットワークにおいて、呼び出し元ネットワークからUnitのプロパティとして編集可能にする引数を設定します。Argumentレイヤーの値は、ユニットネットワーク内の他のレイヤーのプロパティにArgumentレイヤーの名前を指定することで、ユニットネットワーク内の他のレイヤーから利用可能です。設置したArgumentレイヤーの値は、呼び出し元ネットワークに設置されたUnitのプロパティで指定可能になります。

Value 引数のデフォルト値を指定します
Type 引数の型を指定します
Boolean:True or False
Int:整数
IntArray:整数の配列
PInt:1以上の整数
PIntArray:1以上の整数の配列
PIntArrays:1以上の整数の配列の配列
UInt:符号なし整数
UIntArray:符号なし整数の配列
Float:浮動小数点数
FloatArray:浮動小数点数の配列
FloatArrays:浮動小数点数の配列の配列
Text:文字列
File:ファイル名
Search 呼び出し元ネットワークにおいて、引数が構造自動探索の対象にするかどうかを指定します

 

スペクトルレイヤー

 

FFT

複素数入力、複素数出力のフーリエ変換を行います。入力配列の最後の次元は要素2(実部と虚部)の複素数である必要があります。

SignalNDim フーリエ変換を行う信号の次元数を指定します

例えば1次元フーリエ変換の場合は1を、2次元フーリエ変換を行う場合は2を指定します

Normalized フーリエ変換結果を以下の式で示す定数倍して出力します$$\sqrt{\frac{1}{\prod_{i=1}^{d}N_i}}$$

IFFT

複素数入力、複素数出力の逆フーリエ変換を行います。

 

SignalNDim 逆フーリエ変換を行う信号の次元数を指定します

例えば1次元逆フーリエ変換の場合は1を、2次元逆フーリエ変換を行う場合は2を指定します

Normalized 逆フーリエ変換結果に乗算する定数を指定します

True:$$\sqrt{\frac{1}{\prod_{i=1}^{d}N_i}}$$

False:$$\frac{1}{\prod_{i=1}^{d}N_i}$$

 

LSTM

LSTMユニットは試験的に実装されているレイヤーです。現時点ではLSTMユニットを利用する代わりにLSTMの構造を直接記述することをおすすめします。
参考:tutorial.recurrent_neural_networks.long_short_term_memory(LSTM)
 

数値演算レイヤー

 

Sum

指定次元の値の合計を求めます。

Axis 値を合計する軸のIndex(0から開始)を指定します
KeepDims 値を合計した軸を保持するかどうかを指定します

 

Mean

指定次元の値の平均を求めます。

Axis 値を平均する軸のIndex(0から開始)を指定します
KeepDims 値を平均した軸を保持するかどうかを指定します

 

Prod

指定次元の値の積を求めます。

Axis 値を掛け合わせる軸のIndex(0から開始)を指定します
KeepDims 値を掛け合わせた軸を保持するかどうかを指定します

 

Max

指定次元の値の最大値を求めます。

Axis 最大値を求める軸のIndex(0から開始)を指定します
KeepDims 最大値を求めた軸を保持するかどうかを指定します
OnlyIndex Maxの出力の種類を指定します
True:最大値を持つIndexを出力します
False:最大値を出力します

 

Min

指定次元の値の最小値を求めます。

Axis 最小値を求める軸のIndex(0から開始)を指定します
KeepDims 最小値を求めた軸を保持するかどうかを指定します
OnlyIndex Minの出力の種類を指定します
True:最小値を持つIndexを出力します
False:最小値を出力します

 

Log

eを底とする自然対数を計算します。

 

Exp

eを底とする指数関数を計算します。

 

Sign

負の入力に対し-1を、正の入力に対し+1,、0に対しalphaを出力します。

Alpha 入力値0に対応する出力値を指定します

 

ご参考

BinaryTanhと比較するとForward演算時の動作はほぼ(入力値が0の場合の挙動を除き)同じですが、Backward計算時の動作が異なります。BinaryTanhは入力データの絶対値が1以上の場合微分を0とするのに対し、Back propagationされた微分をそのまま自身の微分としてスルーします。

 

BatchMatmul

入力(A)と、コネクタRの入力(B)の最後の2次元で表される行列の行列積を計算します。Aの行列がL×N、Bの行列がN×Mである場合、出力行列はL×Mになります。

 

Round

入力値を四捨五入します。

 

Ceil

入力値の小数点以下を切り上げます。

 

Floor

入力値の小数点以下を切り捨てます。

 

三角関数レイヤー(Trigonometric)

要素毎に三角関数を計算します。

 

レイヤー名 数式
Sin y=sin(x)
Cos y=cos(x)
Tan y=tan(x)
Sinh y=sinh(x)
Cosh y=cosh(x)
ASin y=arcsin(x)
ACos y=arccos(x)
ATan y=arctan(x)
ATan2 y=arctan2(x1,x2)
ASinh y=asinh(x)
ACosh y=asinh(x)
ATanh y=atanh(x)

(x、x1、x2は入力、yは出力を示す)

 

スカラ算術演算レイヤー(Arithmetic(Scalar))

Valueプロパティで指定する実数値を用いた要素毎の各種算術演算を行います。

レイヤー名 数式
AddScalar y=x+value
MulScalar y=x*value
RSubScalar y=value-x
RDivScalar y=value/x
PowScalar y=x value
RPowScalar y=value x
MaximumScalar y=max (x,value)
MinimumScalar y=min(x,value)

(xは入力、yは出力、valueは実数値を示す)

 

2入力算術演算レイヤー(Arithmetic(2 Inputs))

2つの入力を用いた要素毎の各種算術演算を行います。

レイヤー 数式
Add2 y=x1+x2
Sub2 y=x1-x2
Mul2 y=x1*x2
Div2 y=x1/x2

右辺i2に用いる入力はコネクタRに接続します

Pow2 y=x1x2

右辺i2に用いる入力はコネクタRに接続します

Maxmum2 o=max(x1,x2)
Minimum2 o=min(x1,x2)

(x1、x2は入力、yは出力を示す)

 

論理演算レイヤー

2つの入力もしくは1つの入力とValueプロパティで指定する値を用いた要素毎の論理演算を行います。論理演算の出力は0もしくは1となります。

レイヤー名 処理
LogicalAnd y= x1 and x2
LogicalOr y= x1 or x2
LogicalXor y= x1 xor x2
Equal y= x1 == x2
NotEqual y= x1 != x2
GreaterEqual y= x1 >= x2
Greater y= x1 > x2
LessEqual y= x1 <= x2
Less y= x1 < x2
LogicalAndScalar y= x and value
LogicalOrScalar y= x or value
LogicalXorScalar y= x xor value
EqualScalar y= x == value
NotEqualScalar y= x != value
GreaterEqualScalar y= x >= value
GreaterScalar y= x > value
LessEqualScalar y= x <= value
LessScalar y= x < value
LogicalNot y= !x

(x、x1、x2は入力、yは出力を示す)
ご注意

論理演算レイヤーはBack-propagation演算に対応していません。

 

評価用レイヤー

 

BinaryError

入力データと、正解を示すデータセットの変数Tそれぞれについて、0.5以上であるかどうかを基準に0または1へのバイナリ化を行い、バイナリの不一致をデータ毎に評価します。入力データと正解のバイナリが一致している場合は0を、一致していない場合は1を出力します。

T.Dataset データセットに含まれる変数のうち、このレイヤーの出力として期待する変数の変数名を指定します
T.Generator データセットの代わりに用いるGeneratorを指定します。GeneratorプロパティがNone以外の場合、最適化時T.Datasetで指定した変数の代わりにGeneratorにより生成するデータを用います

None:データ生成を行いません

Uniform:-1.0~1.0の一様乱数を生成します

Normal:平均0.0、分散1.0であるガウス乱数を生成します

Constant:全ての要素が一定値(1.0)であるデータを生成します

T.GeneratorMultiplier Generatorにより生成した値に対して掛ける係数を指定します

 

TopNError

各カテゴリの確率もしくはスコアを示す入力データと、正解カテゴリのIndexを示すデータセットの変数Tを元に、正解カテゴリの確率もしくはスコアが全カテゴリ中でTop N位以内に入っているかどうかをデータ毎に評価します。正解カテゴリの確率もしくはスコアがTop N位以内に入っている場合は0を、Top N位以内に入っていない場合は1を出力します。

Axis カテゴリを示す軸のIndexを指定します
N 正解として許容する順位Nを指定します。

例えば正解カテゴリの確率もしくはスコアが最大であるもののみ正解とする場合は「1」とします。正解カテゴリの確率もしくはスコアが上位5位以内に入っているものを正解とする場合は「5」とします

T.Dataset データセットに含まれる変数のうち、このレイヤーの出力として期待する変数の変数名を指定します
T.Generator データセットの代わりに用いるGeneratorを指定します。GeneratorプロパティがNone以外の場合、最適化時T.Datasetで指定した変数の代わりにGeneratorにより生成するデータを用います

None:データ生成を行いません

Uniform:-1.0~1.0の一様乱数を生成します

Normal:平均0.0、分散1.0であるガウス乱数を生成します

Constant:全ての要素が一定値(1.0)であるデータを生成します

T.GeneratorMultiplier Generatorにより生成した値に対して掛ける係数を指定します

 

その他のレイヤー

 

BatchNormalization

入力値を平均0分散1に正規化します。ConvolutionやAffineの後に挿入することで精度向上、および収束を早める効果があります。

yi=(xi-meanx) *gammai/sigmax +betai

(yは出力、xは入力、iはデータのIndexを示す)

Axes Inputのうち、個別の正規化を行う軸のIndex(0から開始)を指定します。例えばInputが4,3,5である入力に対し、最初の次元(要素4)に対しそれぞれ個別の正規化を行うには、Axisを0とします。2番目と3番目の次元(要素3,5)に対しそれぞれ個別の正規化を行うには、Axesを1,2とします
DecayRate 学習時に入力データの平均と標準偏差を更新する際の減衰率を指定します(0.0~1.0)。値が1.0に近いほど過去のデータから求めた平均と標準偏差を維持します
Epsilon 正規化計算時のゼロ除算を防ぐため、分母(入力データの標準偏差)に加算する値を指定します
BatchStat Batch NormalizationにMini-batch毎に算出した平均分散を用いるかどうかを指定します

True:Mini Batch毎に算出した平均分散を用います
False:BatchStat=Trueの際に計算された移動平均と移動分散を用います

ParameterScope このレイヤーで用いるパラメータの名前を指定します

同じParameterScopeの指定されたレイヤーの間ではパラメータが共有されます

beta.File プリトレーニングされたbetaを用いる場合に、betaの書かれたファイルを絶対パスで指定します

betaが指定されておりファイルから読み込む場合、Initializerによる初期化は無効になります

beta.Initializer betaの初期化方法を指定します

Uniform:-1.0~1.0の一様乱数で初期化します

Normal:平均0.0、分散1.0であるガウス乱数で初期化します

Constant:全ての要素を一定値(1.0)で初期化します

beta.InitializerMultiplier Initializerにより生成した値に対して掛ける係数を指定します
beta.LRateMultiplier コンフィグタブで指定したLearning Rateに対し、重みWの更新に用いるLearning Rateの倍率を指定します

例えばコンフィグタブで指定したLearning Rateが0.01の状態でW.LRateMultiplierを2とした場合、重みWはLearning Rate0.02で更新されます

gamma.* 正規化後の標準偏差を指定します
mean.* 入力データの平均値を指定します
var.* 入力データの標準偏差を指定します

 

Dropout

入力の要素を指定した確率で0にします。

P 要素を0にする確率を0.0~1.0の範囲で指定します

 

Concatenate

二つ以上の配列を既存の軸で結合します。

Axis 配列を結合する軸を指定します

軸のIndexは左から0,1,2…の値を取ります

例えば「3,28,28」と「5,28,28」の2つの入力を、最初(一番左)の軸で結合する場合は「0」とします。この場合出力サイズは「8,28,28」になります

 

Reshape

配列の形を指定した形に変換します。

OutShape 変更後の配列の形を指定します

例えば入力が「2,5,5」である配列を「10,5」として出力する場合は「10,5」とします

入力と出力の配列の要素数は同一である必要があります

 

Broadcast

データをコピーすることで、要素数が1である配列の次元を指定したサイズに変換します。

OutShape 例えば入力が「3,1,2」である配列の2番目の次元の要素数を10にする場合は「3,10,2」とします

 

BroadcastTo

このレイヤーはNeural Network Librariesとの互換性を保つために用意されています。
 

Pad

配列の各次元に指定サイズの要素を追加します。

PadWidth 追加する要素数を指定します

例えば、「10,12」である配列の、最初の次元の先頭に1要素、最後に2要素、2番目の次元の先頭に3要素、最後に4要素を追加する場合は、「1,2,3,4」とします

要素の追加は入力配列の最後からlen(PadWidth)/2の軸に対して行われます。従って、PadWidthの長さは2の倍数、かつ入力配列の次元数×2以下である必要があります

Mode 要素の追加方法を指定します

constant:ConstantValueで指定する定数を追加します

replicate:各軸の最初の値と最後の値を追加します

reflect:各軸の最初と最後で反転させた値を追加します

ConstantValue Modeにconstantを選択した場合に、追加する定数の値を指定します

 

ご注意

現在PadのModeはconstantのみに対応しています。

Flip

配列のうち、指定した次元の要素の順序を反転します。

Axes 要素の順序を反転する次元のIndexを指定します

軸のIndexは左から0,1,2…の値を取ります

例えば32(W)x24(H)のRGB画像「3,24,32」を上下左右反転する場合は「1,2」とします

 

Shift

配列の要素を指定分シフトします。

Shift 要素をシフトする量を指定します

例えば画像データを右に2pixel、上に3ピクセルシフトするには「-3,2」とします

BorderMode シフト処理によって値が未定となる配列の端の処理方法を指定します

nearest:元の配列の端のデータをコピーして使用します

reflect:元の配列の端を起点に元のデータを反転させたものを使用します

 

Transpose

データの次元の入れ替えを行います。

Axes 入力データの各次元について、出力データ上での軸のIndexを指定します

軸のIndexは左から0,1,2…の値を取ります

例えばサイズが「3,20,10」の入力データの2番目の次元と3番目の次元を入れ替えて出力するには「0,2,1」を指定します(この場合の出力データサイズは「3,10,20」)

 

Slice

配列の一部を抽出します。

Start 抽出の始点を指定します
Stop 抽出の終点を指定します
Step 抽出の間隔を指定します

例えば、サイズが「3,48,64」の画像データの中心24×32ピクセルを2ピクセル毎に抽出するには、Startに「0,12,16」を、Stopに「3,36,48」を、Stepに「1,2,2」を指定します

 

Stack

二つ以上の配列を新しい軸で結合します。結合する全ての配列のサイズは同一である必要があります。Concatenateが既存の軸で結合を行うのに対し、Stackは新しい軸で結合します。

Axis 配列を結合する軸を指定します

軸のIndexは左から0,1,2…の値を取ります

例えば4つの「3,28,28」入力を、2番目の軸で結合する場合は「1」とします。この場合出力サイズは「3,4,28,28」になります

 

MatrixDiag

配列の最後の1次元を対角行列化します。

 

MatrixDiagPart

配列の最後の2次元の対角成分を抽出します。

 

ClipGradByValue

勾配の値を指定した範囲内に収めます。

min.Dataset データセットに含まれる変数のうち、最小値として使用するデータセットの変数名を指定します。
min.Generator 最小値に使用するGeneratorを指定します。GeneratorプロパティがNone以外の場合、最適化時Datasetで指定した変数の代わりにGeneratorにより生成するデータを用います。

None:データ生成を行いません

Uniform:-1.0~1.0の一様乱数を生成します

Normal:平均0.0、分散1.0であるガウス乱数を生成します

Constant:全ての要素が一定値(1.0)であるデータを生成します

min.GeneratorMultiplier 最小値のGeneratorにより生成した値に対して掛ける係数を指定します
max.Dataset データセットに含まれる変数のうち、最大値として使用するデータセットの変数名を指定します。
max.Generator 最大値に使用するGeneratorを指定します。GeneratorプロパティがNone以外の場合、最適化時Datasetで指定した変数の代わりにGeneratorにより生成するデータを用います。

None:データ生成を行いません

Uniform:-1.0~1.0の一様乱数を生成します

Normal:平均0.0、分散1.0であるガウス乱数を生成します

Constant:全ての要素が一定値(1.0)であるデータを生成します

max.GeneratorMultiplier 最大値のGeneratorにより生成した値に対して掛ける係数を指定します

 

ご参考

最小値と最大値を定数で指定するには、min.Generatorとmax.GeneratorにそれぞれConstantを指定し、min.GeneratorMultiplierで最小値、max.GeneratorMultiplierで最大値を指定します。

 

ClipGradByNorm

勾配の値を指定したノルムの範囲に収めます。

ClipNorm ノルムの値を指定します
Axes ノルムを計算する軸を指定します

軸のIndexは左から0,1,2…の値を取ります

 

TopKData

入力に含まれる大きい値から順にK個のみを残しその他の値を0にします。もしくは、入力に含まれる大きい値から順にK個のみを出力します。

K 大きい値を残す数を指定します
Abs 絶対値の大きい値を残すかどうかを指定します

True:絶対値の大きい方からK個の値を残します

False:値の大きい方からK個の値を残します

Reduce 大きい値からK個のみを出力するかどうかを指定します

True:大きい値からK個のみを出力します。出力配列は、BaseAxisで指定した手前までのサイズに、要素Kの次元を加えたサイズになります。

False:入力の配列サイズはそのままに、K個に含まれなかった値は0にして出力します

BaseAxis 最大値を取る最初の軸のIndexを指定します

 

ご参考

入力配列のサイズが「4,5,6」、K=3、Reduce=False、BaseAxis=1の場合、出力配列のサイズは「4,5,6」になります。

入力配列のサイズが「4,5,6」、K=3、Reduce=True、BaseAxis=1の場合、出力配列のサイズは「4,3」になります。

入力配列のサイズが「4,5,6」、K=3、Reduce=True、BaseAxis=2の場合、出力配列のサイズは「4,5,3」になります。

 

TopKGrad

大きい勾配から順にK個のみを残しその他の値を0にします。

K 大きい勾配を残す数を指定します
Abs 絶対値の大きい勾配を残すかどうかを指定します

True:絶対値の大きい方からK個の勾配を残します

False:値の大きい方からK個の勾配を残します

BaseAxis 最大値を取る最初の軸のIndexを指定します

 

Sort

値の大小に応じてデータを並び替えます。

Axis 並び替えを行う軸のIndexを指定します
Reverse 並び替え順を指定します
True:降順
False:昇順
OnlyIndex Sortの出力の種類を指定します
True:並び替え後のデータの並び替え前のIndex
False:並び替え後のデータ

 

Prune

絶対値の小さい値から順に0にします。

Rate 値を0にする割合を指定します
例えば絶対値の小さい順から95%の値を0にするには0.95とします

 

Interpolate

データを補完しながら拡大もしくは縮小します。

OutputSize 出力サイズを指定します
Mode 補間方法を指定します
linear:線形補間
AlignCorners Trueに設定した場合、入力と出力の角の位置がそれぞれ合うようにアラインされます。結果的に、出力のコーナーのピクセルの値は入力のコーナーのピクセルと同じ値になります。

 

NmsDetection2d

このレイヤーはNeural Network Librariesとの互換性を保つために用意されています。
 

VATNoise

Virtual Adversarial Trainingとして知られる手法を実現するために用意されたレイヤーです。

このレイヤーは、Forward計算時は入力ノイズ信号をNormalizeして出力します。Backward計算時は出力から伝播してきた誤差をBufに格納します。

 

Unlink

Forward計算時は入力をそのまま出力し、Backward計算時は常にゼロを出力します。Unlinkレイヤーより手前に誤差を伝播させたくない場合に使用します。

 

Identity

入力をそのまま出力します。通常用いる必要はありませんが、ネットワークの特定の箇所に識別用の名前を付けるためなどに挿入します。
 

Comment

ネットワークグラフにコメントを挿入します。Commentレイヤーは学習や評価などの処理には影響しません。

Comment コメントを入力します
入力したコメントのテキストはCommentレイヤー上に表示されます

 

その他のレイヤー(前処理)

 

OneHot

入力インデックスを元にOneHot配列(特定の要素のみが1の配列)を作成します。

Shape 作成する配列のサイズを指定します

配列の次元数は、入力データの最後の次元数と同一である必要があります

 

MeanSubtraction

入力値を平均0に正規化します。画像認識などにおいて前処理として使用することで精度を向上する効果があります。

yi=xi-mean

(yは出力、xは入力、iはデータのIndexを示す)

BaseAxis 平均を取る最初の軸のIndexを指定します
UpdateRunningMean 入力データに従って平均を計算するかどうかを指定します
ParameterScope このレイヤーで用いるパラメータの名前を指定します

同じParameterScopeの指定されたレイヤーの間ではパラメータが共有されます

mean.* 入力データの平均値を指定します
t.* 入力データの平均値算出に用いられたMini-batch数を指定します

 

RandomFlip

配列のうち、指定した次元の要素の順序を50%の確率で反転します。

Axes 要素の順序を反転する軸のIndexを指定します

軸のIndexは左から0,1,2…の値を取ります

例えば32(W)x24(H)のRGB画像「3,24,32」について上下左右をランダムに反転する場合は「1,2」とします

SkipAtTest 推論時に処理をスキップするかどうかを指定します

学習時にのみRandomFlip処理を実行するにはSkipAtTestをTrueとします(デフォルト)

 

RandomShift

配列の要素を指定した範囲内でランダムにシフトします。

Shift 要素をシフトする量を指定します

例えば画像データを左右±2 pixel、上下±3 pixelシフトするには「3,2」とします

BorderMode シフト処理によって値が未定となる配列の端の処理方法を指定します

nearest:元の配列の端のデータをコピーして使用します

reflect:元の配列の端を起点に元のデータを反転させたものを使用します

SkipAtTest 推論時に処理をスキップするかどうかを指定します

学習時にのみRandomFlip処理を実行するにはSkipAtTestをTrueとします(デフォルト)

 

RandomCrop

配列の一部をランダムに切り出します。

Shape 切り出すデータのサイズを指定します

例えば3,64,64の画像から画像の一部である3,48,48をランダムに切り出すには、「3,48,48」とします

 

ImageAugmentation

入力画像にランダムな変化を加えます。

Shape 出力画像データのサイズを指定します
MinScale 画像をランダムに拡大縮小する際の最小の拡大率を指定します

例えば元の画像の0.8倍まで縮小を行う場合「0.8」とします

ランダムな拡大縮小を行わない場合はMinScale、MaxScale共に「1.0」とします

MaxScale 画像をランダムに拡大縮小する際の最大の拡大率を指定します

例えば元の画像の2倍まで拡大を行う場合「2.0」とします

Angle 画像をランダムに回転する際の回転角度の範囲をradian単位で指定します

画像は-Angle~+Angleの範囲でランダムに回転されます

例えば画像を±15度の範囲で回転させるには、「0.26」とします(15度/360度 × 2π)

ランダムな回転を行わない場合は「0.0」とします

AspectRatio 画像のアスペクト比をランダムに変更する際のアスペクト比変更範囲指定します

例えば元の画像を1:1としたとき、1:1.3~1.3:1の範囲でアスペクト比を変更する場合「1.3」とします

Distortion 画像をランダムに歪ませる際の強度の範囲を指定します。
FlipLR ランダムな左右反転を行うかどうかを指定します
FlipUD ランダムな上下反転を行うかどうかを指定します
Brightness 輝度値にランダムに加算する値の範囲を指定します

輝度値には-Brightness~+Brightnessの範囲のランダムな値が加算されます

例えば輝度を-0.05~+0.05の範囲で変化させるには「0.05」とします

輝度のランダムな加算を行わない場合は「0.0」とします

BrightnessEach Brightnessで指定する輝度値のランダムな加算をカラーチャンネル毎に行うかどうかを指定します

True:各チャンネルで異なる乱数値を元に輝度を加算します

False:各チャンネルで共通の乱数値を元に輝度を加算します

Contrast 画像のコントラストをランダムに変更する範囲を指定します

コントラストは1/Contrast倍~Contrast倍のランダムな範囲で変更されます

出力の輝度値は(input ? 0.5) * contrast + 0.5です

例えばコントラストを0.91倍~1.1倍の範囲で変化させるには「1.1」とします

コントラストのランダムな変更を行わない場合は「1.0」とします

ContrastEach Contrastで指定するコントラストのランダムな変更をカラーチャンネル毎に行うかどうかを指定します

True:各チャンネルで異なる乱数値を元にコントラストを変更します

False:各チャンネルで共通の乱数値を元にコントラストを変更します

ご参考

ImageAugmentationの効果の手軽な確認方法として、画像Input→ImageAugmentation→SquaredErrorだけのネットワークを用いた上でMax Epoch 0として学習し、評価実行ボタンにより加工結果をモニタするという方法があります。

 

設定レイヤー

ネットワークの設定を行うレイヤーです。

 

StructureSearch

構造自動探索に関する設定を行います。

Search このネットワークを構造自動探索の対象にするかどうかを指定します
Falseに指定したネットワークは構造自動探索時も変化しません
StructureSearchレイヤーが設置されていない場合のデフォルト値はTrueです