我想重置(随机化)我的Keras(深度学习)模型中所有层的权重.原因是我希望能够使用不同的数据拆分对模型进行多次训练,而不必每次都进行(慢)模型重新编译.
受此讨论的启发,我正在尝试以下代码:
# 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())
Run Code Online (Sandbox Code Playgroud)
但是,它只是部分有效.
部分地,因为我已经检查了一些layer.get_weights()值,它们似乎发生了变化.但是当我重新开始培训时,成本值远低于第一次运行时的初始成本值.这几乎就像我成功重置了一些重量,但不是全部重量.
任何关于我出错的提示都将深表感谢.谢谢..