keras - Python/Keras - 每 N 个批处理后保存模型权重

标签 keras

我是 Python 和 Keras 新手,我已经成功构建了一个神经网络,可以在每个 Epoch 后保存权重文件。但是,我想要更大的粒度(我正在可视化时间序列中的层权重分布),并且希望在每 N 个批处理(而不是每个时期)之后保存权重。

有人有什么建议吗?

最佳答案

您可以创建自己的回调 ( https://keras.io/callbacks/ )。像这样的东西:

from keras.callbacks import Callback

class WeightsSaver(Callback):
    def __init__(self, N):
        self.N = N
        self.batch = 0

    def on_batch_end(self, batch, logs={}):
        if self.batch % self.N == 0:
            name = 'weights%08d.h5' % self.batch
            self.model.save_weights(name)
        self.batch += 1

我使用 self.batch 而不是提供的 batch 参数,因为后者在每个纪元从 0 处重新启动。

然后将其添加到您的健身通话中。例如,每 5 个批处理保存权重:

model.fit(X_train, Y_train, callbacks=[WeightsSaver(5)])

关于keras - Python/Keras - 每 N 个批处理后保存模型权重,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43794995/

相关文章:

python - 在 Keras 模型中保存归一化值

python - Keras - .flow_from_directory(目录)

python - 训练有素的keras模型做出预测比训练慢得多

python - 选择 Conv2D 过滤器值作为开始

ubuntu - Ubuntu OS 中 Keras 的默认位置在哪里

r - 蒙特卡洛 (MC) 在 Keras 中使用 R 退出

python - 在 Keras 中使用 fasttext 预训练模型作为嵌入层

machine-learning - 如何使用Keras的ModelCheckpoint继续训练模型

python - 为卷积网络的每一层激活层添加可视化 - Keras

python - 预期 dense_1 具有 2 个维度,但得到形状为 (308, 1, 6) 的数组