[source]

Dense

keras.layers.core.Dense(output_dim, init='glorot_uniform', activation='linear', weights=None, W_regularizer=None, b_regularizer=None, activity_regularizer=None, W_constraint=None, b_constraint=None, bias=True, input_dim=None)

通常の全結合ニューラルネットワークレイヤー.

# シーケンシャルモデルの最初のレイヤーとして:
model = Sequential()
model.add(Dense(32, input_dim=16))
# 今,モデルは(*, 16)次元の入力配列となり,(*, 32)次元の出力配列となる

# これは上記と等価である:
model = Sequential()
model.add(Dense(32, input_shape=(16,)))

# 最初のレイヤーの後,あなたはもはや入力サイズを特定する必要はない:
model.add(Dense(32))

引数

  • output_dim: 正の整数 > 0.
  • init: レイヤーの重みに対する初期化関数名(initializationsを参照),もしくは,重みを初期化するために使用するTheano関数.このパラメータはweights引数を与えていないときにのみ有効です.
  • activation: 使用する活性化関数名 (activationsを参照),もしくは,要素ごとのTheano関数. もしあなたが何も指定しなければ,活性化は適用されない. (すなわち,"線形"活性化: a(x) = x).
  • weights: 初期重みとしてセットするnumpy配列のリスト.そのリストは重みとバイアスのそれぞれに対して(入力次元, 出力次元)と(出力次元,)の形の2要素持つべきである.
  • W_regularizer: 主の重み行列に適用されるWeightRegularizerのインスタンス (例えば,L1もしくはL2正則化).
  • b_regularizer: バイアスに適用されるWeightRegularizerのインスタンス.
  • activity_regularizer: ネットワーク出力に適用されるActivityRegularizerのインスタンス.
  • W_constraint: 主の重み行列に適用されるconstraintsモジュールのインスタンス.(例えば,maxnorm,nonneg).
  • b_constraint: バイアスに適用されるconstraintsモジュールのインスタンス.
  • bias: バイアスを含めるかどうか(すなわち,線形というよりもむしろアフィンレイヤーにさせるか).
  • input_dim: 入力の次元(整数). この引数(もしくは,キーワード引数input_shape) は,モデルの最初のレイヤーとして使うときに必要とされる.

入力の型

2次元テンソルの型: (nb_samples, input_dim)

出力の型

2次元テンソルの型: (nb_samples, output_dim)


[source]

Activation

keras.layers.core.Activation(activation)

出力に活性化関数を適用する.

引数

  • activation: 使用する活性化関数名 (activationsを参照), もしくは,TheanoかTensorFlowオペレーション.

入力の型

任意.モデルの最初のレイヤーとしてこのレイヤーを使う時,キーワード引数input_shape(整数のタプルはサンプルの軸を含まない.)を使う.

出力の型

入力と同じ型.


[source]

Dropout

keras.layers.core.Dropout(p)

入力にドロップアウトを適用する.ドロップアウトは,訓練時のそれぞれの更新において入力ユニットのpをランダムに0にセットすることであり,それは過学習を防ぐのを助ける.

引数

  • p: 0と1の間の浮動小数点数.入力ユニットをドロップする割合.

参考文献


[source]

Flatten

keras.layers.core.Flatten()

入力を平坦化する.バッチサイズに影響されない.

model = Sequential()
model.add(Convolution2D(64, 3, 3, border_mode='same', input_shape=(3, 32, 32)))
# いま: model.output_shape == (None, 64, 32, 32)

model.add(Flatten())
# いま: model.output_shape == (None, 65536)

[source]

Reshape

keras.layers.core.Reshape(target_shape)

ある型に出力を変形する.

引数

  • target_shape: ターゲットの型.整数のタプル, サンプルの次元を含まない(バッチサイズ).

入力の型

入力の型のすべての次元は固定されなければならないが,任意. モデルの最初のレイヤーとしてこのレイヤーを使うとき,キーワード引数input_shape(整数のタプルはサンプルの軸を含まない.)を使う.

出力の型

(batch_size,) + target_shape

# シーケンシャルモデルの最初のレイヤーとして
model = Sequential()
model.add(Reshape((3, 4), input_shape=(12,)))
# いま: model.output_shape == (None, 3, 4)
# 注意: `None`はバッチの次元

# シーケンシャルモデルの中間レイヤーとして
model.add(Reshape((6, 2)))
# いま: model.output_shape == (None, 6, 2)

[source]

Permute

keras.layers.core.Permute(dims)

与えられたパターンにより入力の次元を変更する.

例えば,RNNsやconvnetsの連結に対して役立ちます.

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(整数のタプルはサンプルの軸を含まない.)を使う.

出力の型

入力の型と同じだが,特定のパターンにより並べ替えられた次元を持つ.


[source]

RepeatVector

keras.layers.core.RepeatVector(n)

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: 整数,繰返し因数.

入力の型

(nb_samples, features)の型の2次元テンソル.

出力の型

(nb_samples, n, features)の型の3次元テンソル.


[source]

Merge

keras.engine.topology.Merge(layers=None, mode='sum', concat_axis=-1, dot_axes=-1, output_shape=None, node_indices=None, tensor_indices=None, name=None)

Mergeレイヤーは,いくつかのマージmodeに従って,単一のテンソルにテンソルのリストをマージするために使うことができる.

使用例

model1 = Sequential()
model1.add(Dense(32))

model2 = Sequential()
model2.add(Dense(32))

merged_model = Sequential()
merged_model.add(Merge([model1, model2], mode='concat', concat_axis=1)
- __TODO__: would this actually work? it needs to.__

# シーケンシャル内の`get_source_inputs`でこれを達成する.

引数

  • layers: Kerasのテンソルのリストかレイヤーのインスタンスのリストであるべき.ひとつ以上のレイヤーかテンソルでなければならない.
  • mode: 文字列かラムダ/関数.もし文字列であるなら,それは'sum', 'mul', 'concat', 'ave', 'cos', 'dot'のひとつでなければならない.もしラムダ/関数であるなら,それはテンソルのリストを入力とし,単一のテンソルを返さなければならない.
  • concat_axis: 整数,concatモードで使用するための軸.
  • dot_axes: 整数,または整数のタプル,dotモードで使用するための軸.
  • output_shape: タプルの型 (整数のタプル),もしくはoutput_shapeを計算するラムダ/関数 (マージモードに限り,ラムダ/関数となる).もし後者の場合,タプルの型のリストを入力として受け取る(入力テンソルに対して1:1にマッピングする).また単一のタプルの型を返す.
  • node_indices: それぞれの入力レイヤーに対する出力ノードインデックスを含む整数の追加リスト(いくつかの入力レイヤーが複数の出力ノードを持つ場合).それはもし供給されないなら,0の配列をデフォルトとする.
  • tensor_indices: マージのために考慮される出力のテンソルの追加リスト(いくつかの入力レイヤーノードが複数のテンソルを返す場合).

[source]

Lambda

keras.layers.core.Lambda(function, output_shape=None, arguments={})

前のレイヤーの出力で,任意のTheano/TensorFlow表現を評価するために使われる.

# 一つの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))

引数

  • function: 評価される関数.一つの引数を取る: 前のレイヤーの出力
  • output_shape: 関数からの期待される出力の型.タプルもしくは関数. タプルなら,入力に近いほうの次元だけを指定する,データサンプルの次元は入力と同じ: output_shape = (input_shape[0], ) + output_shape か入力が None でかつサンプル次元もNone: output_shape = (None, ) + output_shape のどちらかが推測される. 関数なら,入力型の関数として型全体を指定する: output_shape = f(input_shape)
  • arguments: 関数に通されるキーワード引数の追加辞書

入力の型

任意.モデルの最初のレイヤーとしてこのレイヤーを使う時,キーワード引数input_shape(整数のタプル,それはサンプルの軸を含まない)を使う.

出力の型

output_shape引数によって特定される.


[source]

ActivityRegularization

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

その変化のない入力を通過するレイヤー,しかしアクティビティに基づいたコスト関数の更新を適用する.

引数

  • l1: L1正則化因子 (正の浮動小数点数).
  • l2: L2正則化因子 (正の浮動小数点数).

入力の型

任意.モデルの最初のレイヤーとしてこのレイヤーを使う時,キーワード引数input_shape(整数のタプル,それはサンプルの軸を含まない)を使う.

出力の型

入力と同じ型.


[source]

Masking

keras.layers.core.Masking(mask_value=0.0)

スキップされるタイムステップを特定するためのマスク値を使うことによって入力シーケンスをマスクする.

入力テンソル(テンソルの次元 #1)のそれぞれのタイムステップに対して, もしそのタイムステップの入力テンソルのすべての値がmask_valueに等しいなら,そのときそのタイムステップはすべてのダウンストリームレイヤー(それらがマスキングをサポートしている限り)でマスク(スキップ)されるでしょう.

もしどんなダウンストリームレイヤーが,そのような入力マスクをまだ受けておらず,マスキングをサポートしていなければ,例外が生じるだろう.

LSTMレイヤーに与えるための(samples, timesteps, features)の型のNumpy配列xを検討する. あなたが#3と#5のタイムステップに関してデータを欠損しているので,これらのタイムステップをマスクしたい場合,あなたは以下のようにできる:

  • set x[:, 3, :] = 0. and x[:, 5, :] = 0.
  • insert a Masking layer with mask_value=0. before the LSTM layer:
model = Sequential()
model.add(Masking(mask_value=0., input_shape=(timesteps, features)))
model.add(LSTM(32))

[source]

Highway

keras.layers.core.Highway(init='glorot_uniform', transform_bias=-2, activation='linear', weights=None, W_regularizer=None, b_regularizer=None, activity_regularizer=None, W_constraint=None, b_constraint=None, bias=True, input_dim=None)

密に結合されたハイウェイネットワーク,フィードフォワードネットワークへのLSTMsの自然拡張.

引数

  • init: レイヤーの重みに対する初期化関数名(initializationsを参照),もしくは,重みを初期化するために使用するTheano関数.このパラメータはweights引数を与えていないときにのみ有効です.
  • transform_bias: 初期に取るバイアスに対する値(デフォルト -2)
  • activation: 使用する活性化関数名 (activationsを参照),もしくは,要素ごとのTheano関数. もしあなたが何も指定しなければ,活性化は適用されない. (すなわち,"線形"活性化: a(x) = x).
  • weights: 初期重みとしてセットするnumpy配列のリスト.そのリストは重みとバイアスのそれぞれに対して(入力次元, 出力次元)と(出力次元,)の形の2要素持つべきである.
  • W_regularizer: 主の重み行列に適用されるWeightRegularizerのインスタンス(例えば,L1もしくはL2正則化).
  • b_regularizer: バイアスに適用されるWeightRegularizerのインスタンス.
  • activity_regularizer: ネットワーク出力に適用されるActivityRegularizerのインスタンス.
  • W_constraint: 主の重み行列に適用されるconstraintsモジュールのインスタンス.(例えば,maxnorm,nonneg).
  • b_constraint: バイアスに適用されるconstraintsモジュールのインスタンス.
  • bias: バイアスを含めるかどうか(すなわち,線形というよりもむしろアフィンレイヤーにさせるか).
  • input_dim: 入力の次元(整数).この引数(もしくは,キーワード引数input_shape)は,モデルの最初のレイヤーとして使うときに必要とされる.

入力の型

(nb_samples, input_dim)の型の2次元テンソル.

出力の型

(nb_samples, output_dim)の型の2次元テンソル.

参考文献


[source]

MaxoutDense

keras.layers.core.MaxoutDense(output_dim, nb_feature=4, init='glorot_uniform', weights=None, W_regularizer=None, b_regularizer=None, activity_regularizer=None, W_constraint=None, b_constraint=None, bias=True, input_dim=None)

密なマックスアウトレイヤー.

MaxoutDenseレイヤーはnb_featureの要素ごとの最大を取る.Dense(input_dim, output_dim)の線形のレイヤー. これはそのレイヤーに入力にわたる区分的線形活性化関数の凸を学習することを許す.

これは線形のレイヤーであることに注意する; もしあなたが活性化関数を適用したいのであれば,(あなたはそれをする必要はない--それらは普遍的関数近似詞である), Activationレイヤーは後で追加されなければならない.

引数

  • output_dim: 正の整数 > 0.
  • nb_feature: 内部で使われるデンスレイヤーの数.
  • init: レイヤーの重みに対する初期化関数名(initializationsを参照),もしくは,重みを初期化するために使用するTheano関数.このパラメータはweights引数を与えていないときにのみ有効です.
  • weights: 初期重みとしてセットするnumpy配列のリスト.そのリストは重みとバイアスのそれぞれに対して(入力次元, 出力次元)と(出力次元,)の形の2要素持つべきである.
  • W_regularizer: 主の重み行列に適用されるWeightRegularizerのインスタンス (例えば,L1もしくはL2正則化).
  • b_regularizer: バイアスに適用されるWeightRegularizerのインスタンス.
  • activity_regularizer: ネットワーク出力に適用されるActivityRegularizerのインスタンス.
  • W_constraint: 主の重み行列に適用されるconstraintsモジュールのインスタンス.(例えば,maxnorm,nonneg).
  • b_constraint: バイアスに適用されるconstraintsモジュールのインスタンス.
  • bias: バイアスを含めるかどうか(すなわち,線形というよりもむしろアフィンレイヤーにさせるか).
  • input_dim: 入力の次元(整数). この引数(もしくは,キーワード引数input_shape) は,モデルの最初のレイヤーとして使うときに必要とされる.

入力の型

2次元テンソル: (nb_samples, input_dim)

出力の型

2次元テンソル: (nb_samples, output_dim)

参考文献


[source]

TimeDistributedDense

keras.layers.core.TimeDistributedDense(output_dim, init='glorot_uniform', activation='linear', weights=None, W_regularizer=None, b_regularizer=None, activity_regularizer=None, W_constraint=None, b_constraint=None, bias=True, input_dim=None, input_length=None)

それぞれの次元[1] (time_dimension)の入力に対して同じデンスレイヤーを適用する. 特に'return_sequence=True'でリカレントネットワークの後に役立つ.

  • 注意: このレイヤーは廃止される予定である,TimeDistributedを使うことがより好まれる.

ラッパー:

model.add(TimeDistributed(Dense(32)))

入力の型

(nb_sample, time_dimension, input_dim)の型の3次元テンソル.

出力の型

(nb_sample, time_dimension, output_dim)の型の3次元テンソル.

引数

  • output_dim: 正の整数 > 0.
  • init: レイヤーの重みに対する初期化関数名(initializationsを参照),もしくは,重みを初期化するために使用するTheano関数.このパラメータはweights引数を与えていないときにのみ有効です.
  • activation: 使用する活性化関数名 (activationsを参照),もしくは,要素ごとのTheano関数. もしあなたが何も指定しなければ,活性化は適用されない. (すなわち,"線形"活性化: a(x) = x).
  • weights: 初期重みとしてセットするnumpy配列のリスト.そのリストは重みとバイアスのそれぞれに対して(入力次元, 出力次元)と(出力次元,)の形の2要素持つべきである.
  • W_regularizer: 主の重み行列に適用されるWeightRegularizerのインスタンス (例えば,L1もしくはL2正則化).
  • b_regularizer: バイアスに適用されるWeightRegularizerのインスタンス.
  • activity_regularizer: ネットワーク出力に適用されるActivityRegularizerのインスタンス.
  • W_constraint: 主の重み行列に適用されるconstraintsモジュールのインスタンス.(例えば,maxnorm,nonneg).
  • b_constraint: バイアスに適用されるconstraintsモジュールのインスタンス.
  • bias: バイアスを含めるかどうか(すなわち,線形というよりもむしろアフィンレイヤーにさせるか).
  • input_dim: 入力の次元(整数). この引数(もしくは,キーワード引数input_shape) は,モデルの最初のレイヤーとして使うときに必要とされる.
  • input_length: 入力シーケンスの長さ (整数,もしくは可変長のシーケンスに対してNone).