Bootstrap

Keras(三)——Sequential 顺序模型

Sequential 顺序模型

顺序模型是多个网络层的线性堆叠

创建Sequential顺序模型

1.将网络层实例的列表传递给 Sequential 的构造器

from keras.models import Sequential
from keras.layers import Dense, Activation

model = Sequential([
    Dense(32, input_shape=(784,)),
    Activation('relu'),
    Dense(10),
    Activation('softmax'),
])

2.使用.add()方法将各层添加到模型中

model = Sequential()
model.add(Dense(32, input_dim=784))
model.add(Activation('relu'))

其中,input_shape 表示期望输入数据的尺寸,可以是一个表示尺寸的元组,input_shape 中不包括数据的 batch 大小(可用 batch_size 实现),某些3D层支持 input_dim 和 input_length 参数。

Dense 即全连接神经网络层

*顺序模型中的第一层(且只有第一层,因为下面的层可以自动推断尺寸)需要接收关于输入尺寸的信息。

模型编译

compile方法接收三个参数:

  • 优化器 optimizer。可以是现有优化器的字符串标识符,如 rmsprop 或 adagrad,也可以是 Optimizer 类的实例。
  • 损失函数 loss,模型试图最小化的目标函数。可以是现有损失函数的字符串标识符,如 categorical_crossentropy 或 mse,也可以是一个目标函数。
  • 评估标准 metrics。评估标准可以是现有的标准的字符串标识符,也可以是自定义的评估标准函数。
模型训练

Keras 模型在输入数据和标签的 Numpy 矩阵上进行训练。

Numpy 矩阵(Matrix): NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象。

# 生成虚拟数据
import numpy as np
data = np.random.random((1000, 100))
labels = np.random.randint(2, size=(1000, 1))

# 训练模型,以 32 个样本为一个 batch 进行迭代
model.fit(data, labels, epochs=10, batch_size=32)
# epochs即循环次数
几个起步小样例
  • 基于多层感知器 (MLP) 的 softmax 多分类

  • 基于多层感知器的二分类

  • 类似 VGG 的卷积神经网络

  • 基于 LSTM 的序

;