顺序模型是多个网络层的线性堆叠
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方法接收三个参数:
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 的序列分类
基于 1D 卷积的序列分类
基于栈式 LSTM 的序列分类
“stateful” 渲染的的栈式 LSTM 模型
compile(optimizer, loss=None, metrics=None, loss_weights=None,
sample_weight_mode=None, weighted_metrics=None, target_tensors=None)
参数:
异常:
fit(x=None, y=None, batch_size=None, epochs=1, verbose=1, callbacks=None,
validation_split=0.0, validation_data=None, shuffle=True,
class_weight=None, sample_weight=None, initial_epoch=0,
steps_per_epoch=None, validation_steps=None)
参数:
返回:
一个History 对象。其History.history 属性是连续 epoch 训练损失和评估值,以及验证集损失和评估值的记录(如果适用)
异常:
evaluate(x=None, y=None, batch_size=None, verbose=1, sample_weight=None,
steps=None)
参数:
返回:
标量测试误差(如果模型只有单个输出且没有评估指标)或标量列表(如果模型具有多个输出和/或指标)。 属性 model.metrics_names 将提供标量输出的显示标签
predict(x, batch_size=None, verbose=0, steps=None)
返回:
预测的 Numpy 数组
异常:
train_on_batch(x, y, sample_weight=None, class_weight=None)
返回:
标量训练误差(如果模型只有单个输出且没有评估指标)或标量列表(如果模型具有多个输出和/或指标)。 属性 model.metrics_names 将提供标量输出的显示标签
test_on_batch(x, y, sample_weight=None)
返回:
标量训练误差(如果模型只有单个输出且没有评估指标)或标量列表(如果模型具有多个输出和/或指标)。 属性 model.metrics_names 将提供标量输出的显示标签
predict_on_batch(x)
返回:
预测值的 Numpy 数组
fit_generator(generator, steps_per_epoch=None, epochs=1, verbose=1,
callbacks=None, validation_data=None, validation_steps=None, class_weight=None, max_queue_size=10, workers=1,
use_multiprocessing=False, shuffle=True, initial_epoch=0)
参数:
返回:
一个History 对象。其History.history 属性是连续 epoch 训练损失和评估值,以及验证集损失和评估值的记录(如果适用)
异常:
例子:
def generate_arrays_from_file(path):
while True:
with open(path) as f:
for line in f:
# 从文件中的每一行生成输入数据和标签的 numpy 数组
x1, x2, y = process_line(line)
yield ({'input_1': x1, 'input_2': x2}, {'output': y})
model.fit_generator(generate_arrays_from_file('/my_file.txt'),
steps_per_epoch=10000, epochs=10)
evaluate_generator(generator, steps=None, max_queue_size=10, workers=1,
use_multiprocessing=False, verbose=0)
参数:
返回:
标量测试误差(如果模型只有单个输出且没有评估指标)或标量列表(如果模型具有多个输出和/或指标)。 属性 model.metrics_names 将提供标量输出的显示标签
异常:
predict_generator(generator, steps=None, max_queue_size=10, workers=1,
use_multiprocessing=False, verbose=0)
返回:
预测值的 Numpy 数组
异常:
get_layer(name=None, index=None)
如果同时提供了name 和 index 则 index 优先
根据网络层的名称(唯一)或其索引返回该层。索引是基于水平图遍历的顺序(自下而上)
参数:
返回:
一个层实例
异常: