You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求提供Keras每轮训练后保存完整模型的回调示例

Keras每轮训练后保存完整可运行模型的示例

没问题!我明白你要的是每轮训练后保存完整可直接运行的模型,而不只是权重——毕竟只存权重的话还要重新搭建模型结构、编译,确实麻烦。下面是一个简洁的Keras示例,完全满足你的需求:

完整代码示例

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.callbacks import ModelCheckpoint

# 1. 构建基础模型
model = Sequential([
    Dense(64, activation='relu', input_shape=(784,)),
    Dense(10, activation='softmax')
])

model.compile(
    optimizer='adam',
    loss='sparse_categorical_crossentropy',
    metrics=['accuracy']
)

# 2. 准备示例数据集(用MNIST为例)
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()
# 预处理:展平+归一化
x_train = x_train.reshape(-1, 784).astype('float32') / 255.0
x_test = x_test.reshape(-1, 784).astype('float32') / 255.0

# 3. 定义关键的ModelCheckpoint回调
checkpoint_callback = ModelCheckpoint(
    filepath='full_model_epoch_{epoch:02d}',  # 文件名包含epoch编号,避免覆盖
    save_weights_only=False,  # 核心参数:设为False才会保存完整模型(结构+权重+优化器状态)
    save_best_only=False,  # 每轮都保存,而不是只保留最优模型
    save_format='tf'  # 可选'tf'(推荐,TensorFlow原生格式)或'h5'(HDF5格式)
)

# 4. 启动训练,传入回调
model.fit(
    x_train, y_train,
    epochs=5,
    batch_size=32,
    validation_split=0.1,
    callbacks=[checkpoint_callback]
)

关键说明

  • save_weights_only=False:这是实现完整模型保存的核心,设置为False时,Keras会保存模型结构、权重、优化器状态、编译配置的全部内容,加载后无需重新编译即可直接使用。
  • filepath中的{epoch:02d}:会自动替换为当前训练的epoch编号(比如full_model_epoch_01、full_model_epoch_02),确保每轮的模型都独立保存,不会被覆盖。
  • 保存格式选择:
    • tf格式:TensorFlow的原生SavedModel格式,支持跨平台部署、模型扩展等更多特性,推荐使用。
    • h5格式:传统的HDF5文件格式,文件更紧凑,适合简单场景(只需把filepath改成full_model_epoch_{epoch:02d}.h5即可)。

加载保存的模型示例

训练完成后,你可以随时加载任意一轮的完整模型:

# 加载第3轮训练后的模型
loaded_model = tf.keras.models.load_model('full_model_epoch_03')

# 直接用加载的模型进行评估或预测
test_loss, test_acc = loaded_model.evaluate(x_test, y_test)
print(f"测试集准确率:{test_acc:.4f}")

内容的提问来源于stack exchange,提问作者I_Play_With_Data

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:38:54