Keras.layer()

Keras.layers

高密度(フル接続層)

構文:

keras.layers.Dense(units, 
                   activation=None, 
                   use_bias=True,
                   kernel_initializer='glorot_uniform',
                   bias_initializer='zeros', 
                   kernel_regularizer=None, 
                   bias_regularizer=None, 
                   activity_regularizer=None, 
                   kernel_constraint=None, 
                   bias_constraint=None)

Dense実装以下:output = activation(dot(input, kernel) + bias)前記activation活性化機能によって、素子に従って計算される、kernel重み行列ネットワーク層によって作成され、bias(のみ作成されたオフセットベクトルでuse_biasあるTrueのみ有用)。

パラメーター:

  • 単位:正の整数、出力空間次元。
  • 活性化:活性化関数(参照アクティベーションを)。指定しない場合、活性化関数(すなわち、「リニア」活性化:使用しませんa(x) = x)。
  • use_bias:ブール値、層は、オフセットベクトルがあるかどうか。
  • kernel_initializerkernel初期重み行列(参照イニシャライザから)。
  • bias_initializer:オフセットベクトルの初期化子(参照初期化子から)。
  • kernel_regularizer:に適用されるkernel(参照重み行列正則化関数正則を)。
  • bias_regularizer:正則化関数に印加されるバイアス(参照正則を)。
  • activity_regularizer:出力層正則化関数への応用(その「活性化」)。(参照正則を)。
  • kernel_constraint:に適用されるkernel制約関数(の重み行列参照制約)。
  • bias_constraint:関数に適用されるオフセットベクトルの制約(参照制約)。

寸法を入力します。

nDはテンソル、 (batch_size, ..., input_dim)サイズ:最も一般的なシナリオはの次元で(batch_size, input_dim)2D入力。

出力サイズ

nDはテンソル、 (batch_size, ..., units)サイズ:例えば、サイズのための(batch_size, input_dim)2D入力の大きさ、それが出力されます(batch_size, units)


アクティベーション(活性化関数)

構文:

keras.layers.Activation(activation)

パラメータ:

  • 活性化:活性化関数名(参照に使用されるアクティベーションを、または1つもしくはTensorFlow Theano操作を選択します)。

入力サイズ:

任意のサイズ。第一層モデルとしてこの層を使用して、パラメータがinput_shape(サンプルの軸を含まない整数の組)。

出力サイズ

入力と同じ。


ドロップアウト(正則化層)

keras.layers.Dropout(rate, noise_shape=None, seed=None)

ドロップアウトは、入力に適用されます。

ドロップアウトは、訓練に含まれる各更新は、入力部がオーバーフィッティング防止するのに役立つランダム比、によって0に設定されています。

パラメータ

  • レート:0と1の間のフロート。入力比は破棄必要。
  • noise_shape:入力バイナリマスク層乗じドロップアウトの形状を示す整数テンソル1D、。あなたのサイズを入力した場合たとえば、(batch_size, timesteps, features)、あなたは同じですが、あなたが使用できるすべての時間ステップでのマスキング層をドロップアウトしたいですnoise_shape=(batch_size, 1, features)
  • SEED:Pythonの整数ランダムシードとして。

リファレンス


フラット化(平坦化)

keras.layers.Flatten(data_format=None)

入力が平らに。これは、バッチサイズには影響を与えません。

パラメータ

  • DATA_FORMAT:値を持つ文字列channels_last(デフォルト値)またはchannels_firstこれは、入力のオーダーの寸法を示しています。他のデータ形式に予約重み付け配列に一つのデータ形式から切り替えるとき、このパラメータの目的は、モデルです。channels_last大きさに対応する(batch, ..., channels)入力とchannels_firstの対応サイズ(batch, channels, ...)入力。デフォルトはimage_data_formatあなたがKeras設定ファイルができ、値が~/.keras/keras.jsonそれで見つかりました。あなたがそれを設定しない場合、それは次のようになりますchannels_last

model = Sequential()
model.add(Conv2D(64, (3, 3),
                 input_shape=(3, 32, 32), padding='same',))
# 现在:model.output_shape == (None, 64, 32, 32)
model.add(Flatten())
# 现在:model.output_shape == (None, 65536)

入力(Kerasテンソルの例)

keras.engine.input_layer.Input()

Input() インスタンス化のためKerasテンソル。

Keras基礎となる後端部(Theano、TensorFlow又はCNTK)をテンソルテンソルオブジェクト、我々はいくつかのプロパティを追加して、そのようなモデルは、入力と出力Keras理解モデルを介して構築することができます。

例えば、a、bおよびcは、次の操作が可能である、Kerasテンソルです。 model = Model(input=[a, b], output=c)

Keras属性が追加されます: - ** _ keras_shape :推理Kerasエンドサイズを介して伝播整数タプルのためのサイズ。- _keras_history **:テンソルの最後の層に適用されます。再帰層から取り出され、図の層全体ネットワーク・コンピューティング。

パラメータ

  • 形状:タプルサイズ(整数)、バッチサイズが含まれていません。例えば、shape=(32,)それは、所望の入力は32次元ベクトルバッチであることを示しています。
  • batch_shape:タプルサイズ(整数)、バッチサイズを含みます。例えば、batch_shape=(10, 32)それは、所望の入力32は、10次元のベクトルであることを示しています。batch_shape=(None, 32)32は、任意のバッチサイズの次元のベクトルを示します。
  • 名前:文字列の任意の層名。一つのモデルでは(2回名前を再利用することはできません)一意である必要があります。提供されていない場合、それが自動的に生成されます。
  • DTYPE:目的のデータ型が文字列(表し入力しfloat32float64int32...)を
  • スパース:プレースホルダを作成する必要がまばらであるかどうかを示すブール値。
  • テンソルは:オプションにパッケージ化Input従来のテンソル層。設定した場合、この層は、プレースホルダテンソルを作成しません。

リターン

テンソル。

# 这是 Keras 中的一个逻辑回归
x = Input(shape=(32,))
y = Dense(16, activation='softmax')(x)
model = Model(x, y)

RESHAPE(調整入力サイズ)

keras.layers.Reshape(target_shape)

入力は、特定の寸法を再スケーリング。

パラメータ

  • target_shape:ターゲットサイズ。整数のタプル。それは急行量の軸が含まれていません。

寸法を入力します。

任意で、すべての次元で入力サイズは固定されなければなりません。第一層モデルとしてこの層を使用して、パラメータがinput_shape(サンプルの軸を含まない整数の組)。

出力サイズ

(batch_size,) + target_shape

# 作为 Sequential 模型的第一层
model = Sequential()
model.add(Reshape((3, 4), input_shape=(12,)))
# 现在:model.output_shape == (None, 3, 4)
# 注意: `None` 是批表示的维度

# 作为 Sequential 模型的中间层
model.add(Reshape((6, 2)))
# 现在: model.output_shape == (None, 6, 2)

# 还支持使用 `-1` 表示维度的尺寸推断
model.add(Reshape((-1, 2, 2)))
# 现在: model.output_shape == (None, 3, 2, 2)

並べ替える(変位次元入力)

keras.layers.Permute(dims)

所定の入力パターンに応じて寸法を置換。

いくつかのシナリオでは、例えば、RNNとCNNを一緒に接続することが、有用です。

model = Sequential()
model.add(Permute((2, 1), input_shape=(10, 64)))
# 现在: model.output_shape == (None, 64, 10)
# 注意: `None` 是批表示的维度

パラメータ

  • DIMS:整数タプル。置換モードでは、サンプルの寸法が含まれていません。インデックスは1から始まります。例えば、(2, 1)第1の入力および第2の次元の置換。

寸法を入力します。

どれ。第一層モデルとしてこの層を使用して、パラメータがinput_shape(サンプルの軸を含まない整数の組)。

出力サイズ

入力サイズと同一ではなく、パターンを指定の寸法に応じて再配置。


RepeatVector(繰り返しn回入力)

keras.layers.RepeatVector(n)

model = Sequential()
model.add(Dense(32, input_dim=32))
# 现在: model.output_shape == (None, 32)
# 注意: `None` 是批表示的维度

model.add(RepeatVector(3))
# 现在: model.output_shape == (None, 3, 32)

パラメータ

  • N-:整数、繰り返しの回数。

寸法を入力します。

2次元テンソル寸法(num_samples, features)

出力サイズ

3次元テンソル寸法(num_samples, n, features)


ラムダ(パッケージには、任意の発現Layerオブジェクトです)

keras.layers.Lambda(function, output_shape=None, mask=None, arguments=None)

# 添加一个 x -> x^2 层
model.add(Lambda(lambda x: x ** 2))
# 添加一个网络层,返回输入的正数部分
# 与负数部分的反面的连接

def antirectifier(x):
    x -= K.mean(x, axis=1, keepdims=True)
    x = K.l2_normalize(x, axis=1)
    pos = K.relu(x)
    neg = K.relu(-x)
    return K.concatenate([pos, neg], axis=1)

def antirectifier_output_shape(input_shape):
    shape = list(input_shape)
    assert len(shape) == 2  # only valid for 2D tensors
    shape[-1] *= 2
    return tuple(shape)

model.add(Lambda(antirectifier,
                 output_shape=antirectifier_output_shape))

パラメータ

  • 機能:この関数はパッケージが必要です。最初のパラメータとしてテンソル入力。
  • output_shape:期待される機能の出力サイズ。Theanoを使用している場合にのみ意味があります。それとも、タプルの関数であってもよいです。タプルの場合、最初の次元を指定し、試料の寸法は同じ入力と仮定される:output_shape = (input_shape[0], ) + output_shapeまたは、入力されたNone試料の寸法はNoneoutput_shape = (None, ) + output_shape入力サイズの全体的なサイズを指定する機能は、の関数である場合:output_shape = f(input_shape)
  • 引数:オプションのキーワード引数は、関数に渡されます。

寸法を入力します。

どれ。第一層モデルとしてこの層を使用して、パラメータがinput_shape(サンプルの軸を含まない整数の組)。

出力サイズ

output_shape指定されたパラメータ(または使用TensorFlowに、自動推論を与えます)。


ActivityRegularization(ネットワーク層)

パラメータ

keras.layers.ActivityRegularization(l1=0.0, l2=0.0)

ネットワーク層、コスト関数の更新の入力に基づいて、アクティブなアプリケーション

  • L1 **:L1正則化因子(正の浮動小数点数)。
  • L2:正則化因子のL2(正の浮動小数点数)。

寸法を入力します。

どれ。第一層モデルとしてこの層を使用して、パラメータがinput_shape(サンプルの軸を含まない整数の組)。

出力サイズ

入力と同じ。


マスキング(カバーは、カバーシーケンスの値を使用して)

keras.layers.Masking(mask_value=0.0)

時間ステップをスキップするシーケンス値を覆うカバーを使用してください。

すべての入力の時間ステップテンソル値があれば、各時間ステップ(一次元テンソル)入力テンソルのために、mask_value等しい、時間ステップが覆われるそれら限り(全ての下流層に(スキップ)サポートカバレッジ)。

あなたが入力カバレッジをカバーする任意の下流層をサポートしていますが、まだそのような情報が届かない場合は、例外がスローされます。

摂食LSTM numpyのマトリックス層であると考えられx、サイズ(samples, timesteps, features)あなたはので、データますいくつかの時間ステップの不足のため、タイムステップ#3、#5をカバーしたいです。次のことができます。

  • 設定x[:, 3, :] = 0.x[:, 5, :] = 0.
  • LSTM層の前に介在さmask_value=0Masking層:
model = Sequential()
model.add(Masking(mask_value=0., input_shape=(timesteps, features)))
model.add(LSTM(32))

SpatialDropout1D(ドロップアウトの空間1D版)

keras.layers.SpatialDropout1D(rate)

ドロップアウト同じ機能のこのバージョンが、前記図1Dの代わりに、全体の単一の要素を廃棄をドロップ。図隣接フレームが強く(畳み込み層の前に通常の場合)に相関している場合、ドロップアウトは、通常、活性化正則、かつ効果的な学習率の低減をすることはありません。この場合、SpatialDropout1D特性図の間の独立性を向上させる、それがドロップアウト代わりに使用されるべきです。

パラメータ

  • レート:0と1の間の浮動小数点数。入力比は破棄必要。

寸法を入力します。

3Dテンソル、サイズ:(samples, timesteps, channels)

出力サイズ

入力と同じ。

リファレンス


SpatialDropout2D(ドロップアウトの空間2Dバージョン)

keras.layers.SpatialDropout2D(rate, data_format=None)

全体ではなく、単一の要素を廃棄するドロップアウト同じ機能のこのバージョンが、それは下がるあり、図2(d)。図隣接画素が強く(畳み込み層の前に通常の場合)に相関している場合、ドロップアウトは、通常、活性化正則、かつ効果的な学習率の低減をすることはありません。この場合、SpatialDropout2Dは、それがドロップアウトの代わりに使用する必要があり、特性図間の独立性を向上します。

パラメータ

  • レート:0と1の間の浮動小数点数。入力比は破棄必要。
  • DATA_FORMATchannels_firstまたはchannels_lastchannels_firstモード、チャネルの寸法(即ち、深さ)において、インデックス1でありchannels_last、モードインデックス3のチャネルディメンション。デフォルトはimage_data_formatあなたがKeras設定ファイルができ、値が~/.keras/keras.jsonそれで見つかりました。あなたがそれを設定しない場合、それは次のようになりますchannels_last

寸法を入力します。

4Dテンソル、もしDATA_FORMAT = channels_first、サイズ(samples, channels, rows, cols)、DATA_FORMATなら= channels_last、サイズ(samples, rows, cols, channels)

出力サイズ

入力と同じ。

リファレンス


SpatialDropout3D(Spatialの3Dバージョンのドロップアウト)

keras.layers.SpatialDropout3D(rate, data_format=None)

全体ではなく、単一の要素を廃棄するドロップアウト同じ機能のこのバージョンが、それは下がる特徴図3D。図隣接ボクセルが強く(畳み込み層の前に通常の場合)に相関している場合、ドロップアウトは、通常、活性化正則、かつ効果的な学習率の低減をすることはありません。この場合、SpatialDropout3Dは、それがドロップアウトの代わりに使用する必要があり、特性図間の独立性を向上します。

パラメータ

  • レート:0と1の間の浮動小数点数。入力比は破棄必要。
  • DATA_FORMATchannels_firstまたはchannels_lastchannels_firstモード、チャネルの寸法(即ち、深さ)において、インデックス1でありchannels_last、モードインデックスでチャンネル4の寸法。デフォルトはimage_data_formatあなたがKeras設定ファイルができ、値が~/.keras/keras.jsonそれで見つかりました。あなたがそれを設定しない場合、それは次のようになりますchannels_last

寸法を入力します。

5Dテンソル、もしDATA_FORMAT = channels_first、サイズ(samples, channels, dim1, dim2, dim3)、DATA_FORMAT場合= channels_last、サイズ(samples, dim1, dim2, dim3, channels)

出力サイズ

入力と同じ。

リファレンス

参照

[公式ドキュメント] https://keras.io/zh/layers/core/

おすすめ

転載: www.cnblogs.com/wangjs-jacky/p/11521778.html