[source]

Dense

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)

只是您的常规密集连接的NN层.

Dense实现了以下操作: output = activation(dot(input, kernel) + bias)其中, activation是作为activation参数传递的逐元素激活函数, kernel是该层创建的权重矩阵, bias是创建的偏置向量按层(仅在use_biasTrue适用).

注意:如果层的输入的秩大于2,则在使用kernel的初始点积之前将其展平.

Example

# as first layer in a sequential model:
model = Sequential()
model.add(Dense(32, input_shape=(16,)))
# now the model will take as input arrays of shape (*, 16)
# and output arrays of shape (*, 32)

# after the first layer, you don't need to specify
# the size of the input anymore:
model.add(Dense(32))

Arguments

  • 单位 :正整数,输出空间的维数.
  • activation :要使用的激活功能(请参阅激活 ). 如果您未指定任何内容,则不应用任何激活(即"线性"激活: a(x) = x ).
  • use_bias :布尔值,层是否使用偏置向量.
  • kernel_initializerkernel权重矩阵的初始化程序 (请参阅initializers ).
  • bias_initializer :偏向向量的初始化器 (请参阅初始化器 ).
  • kernel_regularizer :将正则化函数应用到kernel权重矩阵(请参阅regularizer ).
  • bias_regularizer :将正则化函数应用于偏置向量(请参阅regularizer ).
  • activity_regularizer :将正则化函数应用于图层的输出(其"激活"). (请参阅正则化器 ).
  • kernel_constraint :应用于kernel权重矩阵的约束函数(请参阅constraints ).
  • bias_constraint :应用于偏差向量的约束函数(请参阅constraints ).

输入形状

具有以下形状的nD张量: (batch_size, ..., input_dim) . 最常见的情况是形状为(batch_size, input_dim)的2D输入.

输出形状

具有以下形状的nD张量: (batch_size, ..., units) . 例如,对于形状为(batch_size, input_dim)的2D输入,输出将具有形状(batch_size, units) .


[source]

Activation

keras.layers.Activation(activation)

将激活功能应用于输出.

Arguments

  • activation :要使用的激活函数的名称(请参阅: activations ),或者是Theano或TensorFlow操作.

输入形状

随便 当将此层用作模型的第一层时,请使用关键字参数input_shape (整数元组,不包括示例轴).

输出形状

与输入形状相同.


[source]

Dropout

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

将Dropout应用于输入.

辍学在于在训练期间的每次更新中将输入单元的分数rate随机设置为0,这有助于防止过拟合.

Arguments

  • rate :在0到1之间浮动.要降低的输入单位的分数.
  • noise_shape :一维整数张量,表示将与输入相乘的二进制滤除掩码的形状. 例如,如果您的输入具有形状(batch_size, timesteps, features) noise_shape=(batch_size, 1, features) (batch_size, timesteps, features)并且您希望所有时间步长的丢失蒙版都相同,则可以使用noise_shape=(batch_size, 1, features) .
  • seed :用作随机种子的Python整数.

References


[source]

Flatten

keras.layers.Flatten(data_format=None)

展平输入. 不影响批量大小.

Arguments

  • data_format :一个字符串, channels_last (默认)或channels_first . 输入中尺寸的顺序. 此参数的目的是在将模型从一种数据格式切换到另一种数据格式时保留权重排序. channels_last对应于形状为(batch, ..., channels)输入,而channels_first对应于形状为(batch, channels, ...) . 它默认为在~/.keras/keras.json配置文件中找到的image_data_format值. 如果您从未设置,那么它将是" channels_last".

Example

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

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

[source]

Input

keras.engine.input_layer.Input()

Input()用于实例化Keras张量.

Keras张量是基础后端(Theano,TensorFlow或CNTK)的张量对象,我们使用某些属性对其进行了扩充,这些属性使我们仅通过了解模型的输入和输出即可构建Keras模型.

例如,如果a,b和c是Keras张量,则可以执行以下操作: model = Model(input=[a, b], output=c)

添加的_keras_shape属性是: _keras_shape :通过_keras_shape端形状推断传播的整数形状元组. _keras_history :应用于张量的最后一层. 可以从该层以递归方式检索整个层图.

Arguments

  • shape :形状元组(整数),不包括批量大小. 例如, shape=(32,)表示预期的输入将是32维向量的批次.
  • batch_shape :形状元组(整数),包括批处理大小. 例如, batch_shape=(10, 32)表示预期的输入将是10个32维向量的批次. batch_shape=(None, 32)表示任意数量的32维向量的批次.
  • name :图层的可选名称字符串. 在模型中应该是唯一的(不要重复使用相同的名称). 如果未提供,它将自动生成.
  • dtype :输入期望的数据类型,为字符串( float32float64int32 ...)
  • sparse :一个布尔值,指定要创建的占位符是否稀疏.
  • tensor :包装到Input层中的可选现有张量. 如果设置,则该图层将不会创建占位符张量.

Returns

张量.

Example

# this is a logistic regression in Keras
x = Input(shape=(32,))
y = Dense(16, activation='softmax')(x)
model = Model(x, y)

[source]

Reshape

keras.layers.Reshape(target_shape)

将输出重塑为特定形状.

Arguments

  • target_shape :目标形状. 整数元组. 不包括批处理轴.

输入形状

任意,尽管输入形状中的所有尺寸都必须固定. 当将此层用作模型的第一层时,请使用关键字参数input_shape (整数元组,不包括批处理轴).

输出形状

(batch_size,) + target_shape

Example

# as first layer in a Sequential model
model = Sequential()
model.add(Reshape((3, 4), input_shape=(12,)))
# now: model.output_shape == (None, 3, 4)
# note: `None` is the batch dimension

# as intermediate layer in a Sequential model
model.add(Reshape((6, 2)))
# now: model.output_shape == (None, 6, 2)

# also supports shape inference using `-1` as dimension
model.add(Reshape((-1, 2, 2)))
# now: model.output_shape == (None, 3, 2, 2)

[source]

Permute

keras.layers.Permute(dims)

Permutes the dimensions of the input according to a given pattern.

对于将RNN和卷积网络连接在一起很有用.

Example

model = Sequential()
model.add(Permute((2, 1), input_shape=(10, 64)))
# now: model.output_shape == (None, 64, 10)
# note: `None` is the batch dimension

Arguments

  • dims :整数元组. 排列模式,不包括样本维. 索引从1开始.例如, (2, 1)置换输入的第一维和第二维.

输入形状

随便 当将此层用作模型的第一层时,请使用关键字参数input_shape (整数元组,不包括示例轴).

输出形状

与输入形状相同,但尺寸根据指定的样式重新排序.


[source]

RepeatVector

keras.layers.RepeatVector(n)

重复输入n次.

Example

model = Sequential()
model.add(Dense(32, input_dim=32))
# now: model.output_shape == (None, 32)
# note: `None` is the batch dimension

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

Arguments

  • n :整数,重复因子.

输入形状

形状的2D张量(num_samples, features) .

输出形状

形状的3D张量(num_samples, n, features) .


[source]

Lambda

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

将任意表达式包装为Layer对象.

Examples

# add a x -> x^2 layer
model.add(Lambda(lambda x: x ** 2))
# add a layer that returns the concatenation
# of the positive part of the input and
# the opposite of the negative part

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))
# add a layer that returns the hadamard product
# and sum of it from two input tensors

def hadamard_product_sum(tensors):
    out1 = tensors[0] * tensors[1]
    out2 = K.sum(out1, axis=-1)
    return [out1, out2]

def hadamard_product_sum_output_shape(input_shapes):
    shape1 = list(input_shapes[0])
    shape2 = list(input_shapes[1])
    assert shape1 == shape2  # else hadamard product isn't possible
    return [tuple(shape1), tuple(shape2[:-1])]

x1 = Dense(32)(input_1)
x2 = Dense(32)(input_2)
layer = Lambda(hadamard_product_sum, hadamard_product_sum_output_shape)
x_hadamard, x_sum = layer([x1, x2])

Arguments

  • function :要评估的功能. 将输入张量或张量列表作为第一个参数.
  • output_shape :函数的预期输出形状. 仅在使用Theano时相关. 可以是元组或函数. 如果是元组,则仅指定向前的第一个维; 假定样本维与输入相同: output_shape = (input_shape[0], ) + output_shape或者输入为None且样本维也为Noneoutput_shape = (None, ) + output_shape如果是函数,则指定整个形状作为输入形状的函数: output_shape = f(input_shape)
  • mask :无(表示无遮罩)或张量指示嵌入的输入遮罩.
  • arguments :要传递给函数的关键字参数的可选字典.

输入形状

随便 当将此层用作模型的第一层时,请使用关键字参数input_shape(整数元组,不包括示例轴).

输出形状

output_shape参数指定(或在使用TensorFlow或CNTK时自动推断).


[source]

ActivityRegularization

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

将更新应用于基于成本函数的输入活动的层.

Arguments

  • l1 :L1正则化因子(正浮点数).
  • l2 :L2正则化因子(正浮点数).

输入形状

随便 当将此层用作模型的第一层时,请使用关键字参数input_shape (整数元组,不包括示例轴).

输出形状

与输入形状相同.


[source]

Masking

keras.layers.Masking(mask_value=0.0)

通过使用遮罩值跳过时间步来遮罩序列.

如果给定采样时间步长的所有要素均等于mask_value ,则采样时间步长将在所有下游层中被屏蔽(跳过)(只要它们支持屏蔽).

如果任何下游层不支持屏蔽但仍接收到这样的输入掩码,则会引发异常.

Example

考虑形状(samples, timesteps, features)的Numpy数据数组x ,将其馈送到LSTM层. 您想要在时间步骤#3屏蔽样本#0,并在时间步骤#5屏蔽样本#2,因为您缺少这些样本时间步骤的功能. 你可以做:

  • set x[0, 3, :] = 0. and x[2, 5, :] = 0.
  • 插入一个mask_value=0.Maskingmask_value=0. 在LSTM层之前:
model = Sequential()
model.add(Masking(mask_value=0., input_shape=(timesteps, features)))
model.add(LSTM(32))

Arguments

  • mask_value :无或要跳过的掩码值

[source]

SpatialDropout1D

keras.layers.SpatialDropout1D(rate)

辍学的空间一维版本.

此版本执行与Dropout相同的功能,但是它将删除整个1D特征图,而不是单个元素. 如果特征图中的相邻帧高度相关(通常是早期卷积层中的情况),则规则的丢弃将不会使激活规则化,否则只会导致有效学习率降低. 在这种情况下,SpatialDropout1D将有助于促进要素地图之间的独立性,应改用SpatialDropout1D.

Arguments

  • rate :在0到1之间浮动.要降低的输入单位的分数.

输入形状

具有形状的3D张量:( (samples, timesteps, channels)

输出形状

与输入相同

References


[source]

SpatialDropout2D

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

Dropout的空间2D版本.

该版本执行与Dropout相同的功能,但是它将删除整个2D要素图,而不是单个元素. 如果特征图中的相邻像素高度相关(通常是早期卷积层中的情况),则规则的丢失将不会使激活规则化,否则只会导致有效学习率降低. 在这种情况下,SpatialDropout2D将有助于促进要素地图之间的独立性,应改用SpatialDropout2D.

Arguments

  • rate :在0到1之间浮动.要降低的输入单位的分数.
  • data_format :" channels_first"或" channels_last". 在'channels_first'模式下,通道尺寸(深度)在索引1处,在'channels_last'模式下,其通道索引3.它的默认值是在image_data_format配置文件中找到的image_data_format值,位于~/.keras/keras.json . 如果您从未设置,那么它将是" channels_last".

输入形状

如果data_format ='channels_first' (samples, channels, rows, cols)具有形状:( (samples, channels, rows, cols) 4D张量;如果da​​ta_format ='channels_last',则具有形状:( (samples, rows, cols, channels) 4D张量.

输出形状

与输入相同

References


[source]

SpatialDropout3D

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

Dropout的空间3D版本.

此版本执行与Dropout相同的功能,但是它将删除整个3D特征图,而不是单个元素. 如果特征图中的相邻体素高度相关(通常在早期卷积层中就是这种情况),则定期辍学将不会使激活规律化,否则只会导致有效学习率降低. 在这种情况下,SpatialDropout3D将有助于促进要素地图之间的独立性,应改用SpatialDropout3D.

Arguments

  • rate :在0到1之间浮动.要降低的输入单位的分数.
  • data_format :" channels_first"或" channels_last". 在'channels_first'模式下,通道尺寸(深度)在索引1处,在'channels_last'模式下,通道维度在索引4处.它默认为image_data_format配置文件中~/.keras/keras.json . 如果您从未设置,那么它将是" channels_last".

Input shape

如果data_format ='channels_first',则5D张量形状为(samples, channels, dim1, dim2, dim3)如果data_format ='channels_last',则5D张量形状为: (samples, dim1, dim2, dim3, channels) .

输出形状

与输入相同

References