Home › Fóruns › Fórum Processamento de Linguagem Natural com BERT e Python › Restore de checkpoint
- Este tópico contém 3 respostas, 2 vozes e foi atualizado pela última vez 2 anos, 7 meses atrás por Denny Ceccon.
- AutorPosts
- 8 de março de 2022 às 06:15 #33684
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()
11 de março de 2022 às 17:35 #33707Olá Felix,
Você deve usar somente
ckpt.restore(ckpt_manager.latest_checkpoint)
, isso depois de instanciar os objetosckpt
,ckpt_manager
, a classeDCNN
e o objetoDcnn
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 objetohistory
está vazio. Depois da restauração, o objetoDcnn
, que corresponde ao modelo, terá os pesos provenientes do arquivo salvo durante o treinamento.- Esta resposta foi modificada 2 anos, 7 meses atrás por Denny Ceccon.
12 de março de 2022 às 11:00 #33712Professor, 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()])14 de março de 2022 às 09:25 #33724Olá Felix,
Nesse caso, você deve salvar o atributo
history
do objetohistory
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 atributohistory
dele, que contém as métricas. - AutorPosts
- Você deve fazer login para responder a este tópico.