在训练过程中吧,有的时候会出现训练到一半的时候内存不够,或者其他报错,程序中断,或者先训练一小会,之后有时间继续训练,这时候就需要断点续训操作。
概念:断点续训的意思是因为某些原因还没有训练完成就被中断,下一次训练可以在上一次的训练基础上继续进行。这种方式对于需要长时间训练的模型而言非常友好
在代码实现上,前面内容不变,还是老三样,导入,构建,compile
import tensorflow as tf
import os
from tensorflow import keras
mnist = keras.datasets.mnist
(x_train,y_train),(x_test,y_test) = mnist.load_data()
x_train,x_test = x_train/255,x_test/255
model = keras.models.Sequential([
keras.layers.Flatten(),
keras.layers.Dense(128,activation='relu'),
keras.layers.Dense(10,activation='softmax')
])
model.compile(optimizer='adam',
loss=keras.losses.SparseCategoricalCrossentropy(from_logits=False),
metrics=['sparse_categorical_accuracy'])
之后你想知道中断时候的参数啥样,就得先定义一个文件保存你的参数对吧
checkpoint_save_path = './临时文件/mnist.ckpt'
这个ckpt文件就是中断时候保存参数的一个文件,在生成ckpt文件的时候同时会自动生成一个索引文件,以.index后缀结尾
<

本文介绍了在TensorFlow中如何实现模型训练的断点续训,通过ModelCheckpoint回调函数保存和加载权重,避免了因内存不足或其他错误导致的训练中断。通过检查点文件(ckpt)保存训练状态,下次训练时可以加载已保存的参数,继续之前的训练过程,尤其适用于需要长时间训练的深度学习模型。
最低0.47元/天 解锁文章
1663

被折叠的 条评论
为什么被折叠?



