如何保存和恢复tensorflow模型?

2024-04-23 16:57:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我是这个领域的新手,希望你能帮助我:) 我正在谷歌Colab上训练我的TensorFlow模型,但由于时间有限,我不能运行超过2个时代,因为我的数据量很大

history = model.fit(
  x=data.train_x, 
  y=data.train_y,
  validation_split=0.2,
  batch_size=32,
  shuffle=True,
  epochs=2,
  callbacks=[tensorboard_callback]

Epoch 1/2
22016/22016 [==============================] - 14481s 657ms/step - loss: 0.3934 - acc: 0.8225 - val_loss: 0.3893 - val_acc: 0.8289
Epoch 2/2
22016/22016 [==============================] - 14466s 657ms/step - loss: 0.2807 - acc: 0.8825 - val_loss: 0.3793 - val_acc: 0.8348

我的问题是,是否有可能保存此模型并在第三纪元的第二天恢复训练


Tags: 模型datatensorflowstep时间trainval领域
1条回答
网友
1楼 · 发布于 2024-04-23 16:57:12

您将丢失history对象,您可以绘制损失和度量。保存模型历史记录时,对象不会被保留

您需要设置initial_epoch参数。例如:

model.fit(
    ds_train,
    epochs=2,
    validation_data=ds_test,
)

Epoch 1/2
469/469 [==============================] - 2s 4ms/step - loss: 0.3593 - sparse_categorical_accuracy: 0.9015 - val_loss: 0.1918 - val_sparse_categorical_accuracy: 0.9438
Epoch 2/2
469/469 [==============================] - 2s 4ms/step - loss: 0.1628 - sparse_categorical_accuracy: 0.9537 - val_loss: 0.1329 - val_sparse_categorical_accuracy: 0.9621

假设您将其保存为:

model.save('model.h5')

将其加载回:

restored_model = tf.keras.models.load_model('/content/model.h5') # path here

现在,您可以重新适应:

restored_model.fit(
    ds_train,
    initial_epoch=2,
    validation_data=ds_test,
    epochs = 5
)

Epoch 3/5
469/469 [==============================] - 2s 4ms/step - loss: 0.1169 - sparse_categorical_accuracy: 0.9663 - val_loss: 0.1097 - val_sparse_categorical_accuracy: 0.9671
Epoch 4/5
469/469 [==============================] - 2s 4ms/step - loss: 0.0901 - sparse_categorical_accuracy: 0.9735 - val_loss: 0.0942 - val_sparse_categorical_accuracy: 0.9719
Epoch 5/5
469/469 [==============================] - 2s 4ms/step - loss: 0.0730 - sparse_categorical_accuracy: 0.9789 - val_loss: 0.0865 - val_sparse_categorical_accuracy: 0.9724

相关问题 更多 >