Redefinir pesos na camada Keras

Gostaria de redefinir (randomizar) os pesos de todas as camadas no meu modelo Keras (aprendizado profundo). O motivo é que desejo treinar o modelo várias vezes com diferentes divisões de dados sem precisar fazer a recompilação (lenta) do modelo todas as vezes.

Inspirado poressa discussão, Estou tentando o seguinte código:

# 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())

No entanto, apenas funciona parcialmente.

Em parte, porque eu inspecionei alguns valores de layer.get_weights () e eles parecem mudar. Mas quando eu reinicio o treinamento, os valores de custo são muito mais baixos que os valores de custo iniciais na primeira execução. É quase como se eu tivesse conseguido redefinir alguns pesos, mas não todos.

Qualquer dica sobre onde eu estou errado seria profundamente apreciada. Valeu..

questionAnswers(5)

yourAnswerToTheQuestion