15 使用fit方法进行模型训练

在上一篇中,我们讨论了模型的构建与训练。现在,我们将深入探讨如何利用Keras中的fit方法进行模型训练,这一方法是Keras中最常用、最核心的训练机制之一。同时,我们也会介绍一些与训练相关的参数配置,让你能更好地掌控模型的训练过程。

Keras中的fit方法概述

Keras提供的fit方法用于训练模型,它接收训练数据并根据数据进行参数更新。其基本调用方式如下:

1
model.fit(x, y, epochs=10, batch_size=32, verbose=1, validation_split=0.2)

主要参数:

  • x: 输入数据,可以是NumPy数组、Python生成器或TensorFlow数据集。
  • y: 标签(训练目标),与输入数据一一对应。
  • epochs: 整数,训练的轮数。
  • batch_size: 整数,更新模型权重所使用的样本数。
  • verbose: 日志显示方式,0、1或2。
  • validation_split: 介于0与1之间的浮点数,用于设定训练数据的验证集比例。

示例案例:用fit方法训练一个简单的神经网络

我们将通过一个简单的例子来演示如何使用fit方法训练一个神经网络。以下是使用Keras构建并训练一个对手写数字(MNIST数据集)进行分类的模型:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import numpy as np
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Flatten

# 1. 加载数据
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0 # 归一化

# 2. 定义模型
model = Sequential()
model.add(Flatten(input_shape=(28, 28))) # 将28x28的图片展平
model.add(Dense(128, activation='relu')) # 添加全连接层
model.add(Dense(10, activation='softmax')) # 添加输出层

# 3. 编译模型
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])

# 4. 训练模型
model.fit(x_train, y_train, epochs=5, batch_size=32, validation_split=0.2)

# 5. 评估模型
test_loss, test_acc = model.evaluate(x_test, y_test)
print(f'\n测试准确率: {test_acc:.4f}')

在这个案例中,我们加载了MNIST数据集,对其进行了归一化处理,然后构建了一个简单的神经网络模型,最后使用fit方法进行训练。

监控训练过程

使用verbose参数可以控制训练过程中的信息输出:

  • verbose=0:不输出任何信息。
  • verbose=1:输出进度条(默认)。
  • verbose=2:每个epoch结束后输出一行信息。

如上所示,当我们设置verbose=1时,可以得到每个epochs的损失和准确率,这对监控训练过程非常重要。

验证集的使用

在上面的代码示例中,validation_split=0.2表示将20%的训练数据用作验证集。这能帮助我们在训练过程中监控模型的泛化能力,从而调整超参数,防止过拟合。

小结

本篇中,我们详细介绍了Keras的fit方法及其各类参数的设置,通过实际代码示例,清晰展示了如何进行模型训练。fit方法使得模型训练可控而有效,是Keras框架的主要特点之一。

在下一篇中,我们将会探讨Keras中的回调函数,这些回调函数可以帮助我们在训练过程中实现诸如保存模型、调整学习率等多种功能,以优化训练过程和结果。希望你能继续关注我们的Keras从零教程系列!

15 使用fit方法进行模型训练

https://zglg.work/keras-zero/15/

作者

IT教程网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

复习上节

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论