序列模型(Sequential Model)是 TensorFlow Keras 中最常用的模型构建方式。它允许你以线性堆叠的方式构建模型,非常适合新手入门。
模型结构
序列模型由一系列层组成,这些层按照输入到输出的顺序排列。以下是一个简单的序列模型示例:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
model = Sequential()
model.add(Dense(64, activation='relu', input_shape=(32,)))
model.add(Dense(10, activation='softmax'))
在上面的例子中,我们创建了一个包含两个层的序列模型。第一个层是一个全连接层(Dense),它有64个神经元和ReLU激活函数。第二个层是一个输出层,它有10个神经元和softmax激活函数。
添加层
你可以通过调用 add()
方法向序列模型中添加层。以下是一些常用的层:
- Dense:全连接层,可以用于分类、回归等任务。
- Conv1D:一维卷积层,常用于处理序列数据。
- LSTM:长短期记忆网络,适合处理时间序列数据。
编译模型
在训练模型之前,你需要编译它。以下是一些编译模型时需要设置的参数:
- 优化器:例如
adam
、sgd
等。 - 损失函数:例如
categorical_crossentropy
、mean_squared_error
等。 - 评估指标:例如
accuracy
、mse
等。
model.compile(optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'])
训练模型
使用 fit()
方法训练模型。你需要提供训练数据、验证数据以及训练的轮数。
model.fit(x_train, y_train, epochs=10, batch_size=32, validation_data=(x_val, y_val))
在上面的例子中,我们使用 x_train
和 y_train
作为训练数据,x_val
和 y_val
作为验证数据。epochs
参数表示训练的轮数,batch_size
参数表示每个批次的大小。
模型评估
使用 evaluate()
方法评估模型。它会返回损失值和评估指标。
loss, accuracy = model.evaluate(x_test, y_test)
print(f'测试集准确率: {accuracy:.4f}')
在上面的例子中,我们使用 x_test
和 y_test
作为测试数据。
总结
序列模型是 TensorFlow Keras 中最常用的模型构建方式。通过线性堆叠层,你可以构建复杂的模型。希望这份指南能帮助你更好地理解和使用序列模型。