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

如何获取已加载Keras模型的训练轮次(epochs)数量?

获取已加载Keras模型的训练轮次

很遗憾,默认情况下用load_model()加载的Keras模型是无法直接获取训练轮次的。原因很简单:Keras默认的模型保存格式(不管是.h5还是SavedModel)只会存储模型的架构、权重,以及如果你指定保存优化器状态的话会包含优化器的参数,但训练过程的元数据(比如总共训练了多少轮)并不会被自动保存到模型文件里。

不过不用慌,我们可以通过几个提前准备的方法来解决这个问题,分情况来看:

1. 训练时主动保存训练轮次元数据

这是最稳妥的方案,在训练模型的时候,把训练的epochs数和模型一起保存到额外的文件中:

# 训练阶段代码
import json
from tensorflow.keras.models import Sequential

# 假设你定义好了模型
model = Sequential(...)
epochs = 10
history = model.fit(X_train, y_train, epochs=epochs)

# 保存模型
model.save('trained_model.h5')

# 把训练轮次保存到JSON文件
metadata = {'total_training_epochs': epochs}
with open('model_metadata.json', 'w') as f:
    json.dump(metadata, f)

之后加载模型时,同时读取这个元数据文件:

# 加载阶段代码
from tensorflow.keras.models import load_model
import json

model = load_model('trained_model.h5')
with open('model_metadata.json', 'r') as f:
    metadata = json.load(f)
total_epochs = metadata['total_training_epochs']
print(f"模型总共训练了 {total_epochs} 轮")

2. 保存训练的History对象

如果你在训练时保留了fit()返回的History对象,也可以把它保存下来,之后通过History里的日志长度来获取轮次(因为每一轮训练都会生成一条loss/metrics记录):

# 训练时保存History
import pickle

history = model.fit(X_train, y_train, epochs=8)
with open('training_history.pkl', 'wb') as f:
    pickle.dump(history.history, f)

加载时读取并计算:

# 加载后获取轮次
import pickle

with open('training_history.pkl', 'rb') as f:
    history = pickle.load(f)
total_epochs = len(history['loss'])  # loss列表的长度就是训练轮次
print(f"模型训练了 {total_epochs} 轮")

3. 利用带epoch信息的模型文件名

如果训练时使用了ModelCheckpoint回调,并且设置文件名包含当前epoch数,那可以直接从加载的模型文件名里提取轮次:

# 训练时设置带epoch的检查点
from tensorflow.keras.callbacks import ModelCheckpoint

checkpoint_callback = ModelCheckpoint(
    'model_epoch_{epoch:03d}.h5',
    save_freq='epoch',
    save_best_only=False
)
model.fit(X_train, y_train, epochs=15, callbacks=[checkpoint_callback])

比如你加载的是model_epoch_015.h5,那就能直接从文件名里解析出训练到了第15轮。

注意事项

如果之前训练时完全没有做上述任何一种保存操作,那现在加载的模型里确实没有训练轮次的信息,没办法直接获取。这种情况下你只能去查找当时的训练日志,或者重新训练模型并记录轮次了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:28:48