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..