tf.keras.callbacks.ModelCheckpoint vs tf.train.Checkpoint - PullRequest
0 голосов
/ 16 апреля 2020

Я немного новичок в мире TensorFlow, но написал несколько программ на Керасе. Поскольку TensorFlow 2 официально похож на Keras, я совершенно не понимаю, в чем разница между tf.keras.callbacks.ModelCheckpoint и tf.train.Checkpoint. Если кто-то может пролить свет на это, я был бы признателен.

1 Ответ

0 голосов
/ 16 апреля 2020

TensorFlow - это библиотека вычислений, а Keras - библиотека глубокого обучения, которая может работать с TF или PyTorch и т. Д. c. Так что TF предоставляет более универсальную c версию, не специально адаптированную для глубокого изучения. Если вы просто сравните документы, то увидите, насколько полнее и индивидуальнее ModelCheckpoint. Checkpoint просто читает и записывает данные с / на диск. ModelCheckpoint намного умнее!

Кроме того, ModelCheckpoint является обратным вызовом. Это означает, что вы можете просто сделать его экземпляр и передать его функции fit:

model_checkpoint = ModelCheckpoint(...)
model.fit(..., callbacks=[..., model_checkpoint, ...], ...)

Я быстро взглянул на реализацию Keras ModelCheckpoint, она вызывает либо save, либо save_weights метод Model, который в некоторых случаях использует сам TensorFlow CheckPoint. Так что это не оболочка как таковая, но, безусловно, она находится на более низком уровне абстракции - более специализированная для сохранения моделей Keras.

...