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

如何获取神经网络模型各迭代轮次的weights与biases?

获取神经网络每一轮训练的权重与偏置

要保存训练过程中每个epoch的权重和偏置,最直接的方式是自定义Keras回调函数,在每轮训练结束后自动记录参数。

自定义回调类实现参数保存

import tensorflow as tf
from tensorflow.keras.callbacks import Callback

class SaveWeightsCallback(Callback):
    def __init__(self):
        super().__init__()
        # 初始化列表,用于存储每一轮的所有层参数
        self.epoch_weights = []

    def on_epoch_end(self, epoch, logs=None):
        # 遍历模型所有层,获取权重(weights[0])和偏置(weights[1])
        layer_weights = []
        for layer in self.model.layers:
            w, b = layer.get_weights()
            layer_weights.append({"weights": w, "biases": b})
        # 将当前轮次的所有层参数存入列表
        self.epoch_weights.append(layer_weights)

使用回调函数训练模型

训练时把自定义回调传入model.fit()的callbacks参数即可:

# 假设你已经定义好了model
callback = SaveWeightsCallback()
model.fit(x_train, y_train, epochs=5, callbacks=[callback])

访问各轮次的参数

训练完成后,通过回调实例的epoch_weights属性就能获取所有epoch的参数:

  • 获取第0轮(第一轮)第0层的权重:callback.epoch_weights[0][0]["weights"]
  • 获取第4轮(第五轮)第0层的偏置:callback.epoch_weights[4][0]["biases"]

这样就能替代你原本只获取最后一轮参数的代码,实现全训练周期的参数留存。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 18:37:32