1 Pluspunkt 0 Minuspunkte
Man kann ja während dem Training die Gewichte speichern. kann ich aber auch die Gewichte von jedem Layer einzeln speichern? Falls ich bim Finetuning einen Layer hinzufüge, kann ich diese dann auch einzeln laden und initialisieren?
von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Speichern z.B mit

layer_names = [layer.name for layer in model.layers]
callbacks = []
for layer_name in layer_names:
    layer_checkpoint_callback = tf.keras.callbacks.ModelCheckpoint(
        filepath=f"{layer_name}_weights.h5",
        save_weights_only=True,
        save_freq='epoch'
    )
    callbacks.append(layer_checkpoint_callback)

model.fit(..., callbacks=callbacks)

und laden mit

model = create_model(...)

layer_names = [layer.name for layer in model.layers]
for layer_name in layer_names:
    if os.path.exists(f"{layer_name}_weights.h5"):
        layer_model = create_model(...)
        layer_model.load_weights(f"{layer_name}_weights.h5")
        model.get_layer(layer_name).set_weights(layer_model.get_layer(layer_name).get_weights())

https://keras.io/api/layers/

von (716 Punkte)