我正在写一个 seq2seq 并且只想保留三个检查点;我以为我是通过以下方式实现的:
checkpoint_dir = './training_checkpoints'
checkpoint_prefix = os.path.join(checkpoint_dir, "ckpt")
checkpoint = tf.train.Checkpoint(optimizer=optimizer,
encoder=encoder,
decoder=decoder)
manager = tf.train.CheckpointManager(
checkpoint, directory=checkpoint_dir, max_to_keep=3)
然后:
# saving (checkpoint) the model every 2 epochs
if (epoch + 1) % 2 == 0:
checkpoint.save(file_prefix = checkpoint_prefix)
我很失望,这是行不通的。你有什么提示吗?
它可以以多种方式发生,限制是在检查点管理器中设置的,你也应用了相同的回调。!
输入:
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
: Training
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
history = model.fit(batched_features, epochs=1000 ,validation_data=(batched_features), callbacks=[cp_callback])
checkpoint = tf.train.Checkpoint(model)
manager = tf.train.CheckpointManager( checkpoint, checkpoint_dir, max_to_keep=3 )
checkpoint.restore(checkpoint_dir)
输出:
Epoch 6/1000
1/1 [==============================] - ETA: 0s - loss: 1.6910e-05 - accuracy: 1.0000
Epoch 6: val_loss improved from 0.00002 to 0.00000, saving model to F:\models\checkpoint\test_checkpoint_restore_01
Epoch 628/1000
1/1 [==============================] - ETA: 0s - loss: 0.0000e+00 - accuracy: 0.0000e+00
Epoch 628: val_loss did not improve from 0.00000
1/1 [==============================] - 0s 160ms/step - loss: 0.0000e+00 - accuracy: 0.0000e+00 - val_loss: 0.0000e+00 - val_accuracy: 0.0000e+00
Epoch 629/1000
1/1 [==============================] - ETA: 0s - loss: 0.0000e+00 - accuracy: 0.0000e+00
Epoch 629: val_loss did not improve from 0.00000
1/1 [==============================] - 0s 169ms/step - loss: 0.0000e+00 - accuracy: 0.0000e+00 - val_loss: 0.0000e+00 - val_accuracy: 0.0000e+00
Epoch 630/1000
1/1 [==============================] - ETA: 0s - loss: 0.0000e+00 - accuracy: 0.0000e+00
Epoch 630: val_loss did not improve from 0.00000
1/1 [==============================] - 0s 162ms/step - loss: 0.0000e+00 - accuracy: 0.0000e+00 - val_loss: 0.0000e+00 - val_accuracy: 0.0000e+00
Epoch 631/1000
1/1 [==============================] - ETA: 0s - loss: 0.0000e+00 - accuracy: 0.0000e+00
Epoch 631: val_loss did not improve from 0.00000
1/1 [==============================] - 0s 156ms/step - loss: 0.0000e+00 - accuracy: 0.0000e+00 - val_loss: 0.0000e+00 - val_accuracy: 0.0000e+00