gpt4 book ai didi

python - 在 Keras 层中重置权重

转载 作者:IT老高 更新时间:2023-10-28 20:44:12 25 4
gpt4 key购买 nike

我想重置(随机化)我的 Keras(深度学习)模型中所有层的权重。原因是我希望能够使用不同的数据拆分多次训练模型,而不必每次都进行(缓慢的)模型重新编译。

灵感来自 this discussion ,我正在尝试以下代码:

# Reset weights
for layer in KModel.layers:
if hasattr(layer,'init'):
input_dim = layer.input_shape[1]
new_weights = layer.init((input_dim, layer.output_dim),name='{}_W'.format(layer.name))
layer.trainable_weights[0].set_value(new_weights.get_value())

但是,它只是部分起作用。

部分是因为我检查了一些 layer.get_weights() 值,它们似乎发生了变化。但是当我重新开始训练时,成本值远低于第一次运行时的初始成本值。这几乎就像我已经成功地重置了一些权重,但不是全部。

最佳答案

在编译模型之后但在训练之前保存初始权重:

model.save_weights('model.h5')

然后在训练之后,通过重新加载初始权重来“重置”模型:

model.load_weights('model.h5')

这为您提供了一个苹果对苹果模型来比较不同的数据集,并且应该比重新编译整个模型更快。

关于python - 在 Keras 层中重置权重,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40496069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com