Dense
Dense 是keras的全连接层,基本操作如下:
keras.layers.Dense(units, activation=None, input_shape=None)
- units: 正整数,输出空间维度。
- activation: 激活函数,如果不指定默认使用线性激活函数。
- input_shape:当作为第一层神经网络出现时,用来指定输入层的尺寸。
# 作为 Sequential 模型的第一层
model = Sequential()
model.add(Dense(32, input_shape=(16,)))
# 现在模型就会以尺寸为 (*, 16) 的数组作为输入,
# 其输出数组的尺寸为 (*, 32)
# 在第一层之后,你就不再需要指定输入的尺寸了:
model.add(Dense(32))
Activation
激活函数常作用于数据输出阶段。
keras.layers.Activation(activation)
- activation:激活函数名称
Dropout
模型丢弃的神经单元比例。
keras.layers.Dropout(rate)
- rate:在 0 和 1 之间浮动。需要丢弃的输入比例。
Flatten
对输入数据形状进行压扁处理,多维变一位。
keras.layers.Flatten()
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)
Input
定义数据输入
keras.engine.input_layer.Input()
- shape: 一个尺寸元组(整数),不包含批量大小。 例如,shape=(32,) 表明期望的输入是按批次的 32 维向量。
- batch_shape: 一个尺寸元组(整数),包含批量大小。 例如,batch_shape=(10, 32) 表明期望的输入是 10 个 32 维向量。 batch_shape=(None, 32) 表明任意批次大小的 32 维向量。
- name: 一个可选的层的名称的字符串。 在一个模型中应该是唯一的(不可以重用一个名字两次)。 如未提供,将自动生成。
- dtype: 输入所期望的数据类型,字符串表示 (float32, float64, int32...)
- sparse: 一个布尔值,指明需要创建的占位符是否是稀疏的。
# 这是 Keras 中的一个逻辑回归
x = Input(shape=(32,))
y = Dense(16, activation='softmax')(x)
model = Model(x, y)
Reshape
重新调整网络层输入数据尺寸。
keras.layers.Reshape(target_shape)
- 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)