Restore de checkpoint

Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #33684
    Felix Nganga
    Participante

    Professor, suponha que eu queira usar a ultima versão do meu modelo saved in checkpoint para não precisar fazer mais o fit.

    Como procederia para restaura lo? Estou me referindo ao Bert como tokenizador:

    Tentei fazer isso mas está me dando erros:

    history = ckpt.restore(ckpt_manager.latest_checkpoint)

    history.history.keys()

    #33707
    Denny Ceccon
    Moderador

    Olá Felix,

    Você deve usar somente ckpt.restore(ckpt_manager.latest_checkpoint), isso depois de instanciar os objetos ckpt, ckpt_manager, a classe DCNN e o objeto Dcnn instanciado dela, da mesma forma que feitos na aula, se estiver em uma nova sessão. Esta função não retorna nada, por isso seu objeto history está vazio. Depois da restauração, o objeto Dcnn, que corresponde ao modelo, terá os pesos provenientes do arquivo salvo durante o treinamento.

    • Esta resposta foi modificada 1 ano, 11 meses atrás por Denny Ceccon.
    #33712
    Felix Nganga
    Participante

    Professor, depois de ter instanciado ckpt, ckpt_manager, Dcnn da classe DCNN, quando faço ckpt.restore(ckpt_manager.latest_checkpoint)

    Recebo de facto a confirmacao de que o ultimo checkpoint foi restaurado e me retorna até:

    <tensorflow.python.training.tracking.util.CheckpointLoadStatus at 0x7fbca3494b50>

    Agora como quero utilizar o restaurado para não fazer mais o fit, como procido para proxima etapa para usar history e suas metricas para poder fazer graficos com eles conforme fizemos em aula?

    Repito que não pretendo executar o codigo abaixo para não fazer mais o fit do modelo vsito que que quero usar o ultimo checkpoint restaurado:

    class MyCustomCallBack(tf.keras.callbacks.Callback):
    def on_epoch_end(self, epoch, logs=None):
    ckpt_manager.save()
    print(“Checkpoint savet at {}”.format(checkpoint_path))

    history = Dcnn.fit(train_dataset,
    epochs=NB_EPOCHS,
    #steps_per_epoch = 100,
    callbacks=[MyCustomCallBack()])

    #33724
    Denny Ceccon
    Moderador

    Olá Felix,

    Nesse caso, você deve salvar o atributo history do objeto history com:

    import joblib
    joblib.dump(history.history, 'history.joblib')

    E depois restaurar com:

    history = joblib.load('history.joblib')

    Observe entretanto que não é possível salvar o objeto history inteiro, apenas o atributo history dele, que contém as métricas.

Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Você deve fazer login para responder a este tópico.