美文网首页
keras 构建神经网络的核心组件

keras 构建神经网络的核心组件

作者: 郭彦超 | 来源:发表于2019-05-04 23:57 被阅读0次

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)

相关文章

网友评论

      本文标题:keras 构建神经网络的核心组件

      本文链接:https://www.haomeiwen.com/subject/gadqoqtx.html