深度学习训练:启动、停止与恢复策略
深度学习模型的训练往往耗时漫长,可能需要数小时甚至数天,具体时长取决于模型的复杂度和数据集的大小。在训练过程中,会遇到各种意外情况,如停电、机器无响应、操作系统错误、计划外重启或Windows更新等,导致之前的训练成果付之东流。为了降低这种风险,我们可以采取一些有效的策略,下面将详细介绍。
利用多线程提高训练速度
在使用 model.fit() 函数结合数据生成器进行训练时,默认采用单线程模式准备数据批次。在这种模式下,只有一个CPU线程负责准备和排队要发送到模型进行训练的数据批次,默认队列大小为10,这可能导致GPU需要等待更多批次排队,从而减缓训练过程。虽然单线程批次准备模式行为更可预测且易于调试,但大多数情况下会降低训练速度。
model.fit() 函数支持多线程模式,我们可以通过 workers 参数指定要使用的工作线程数,并增加 max_queue_size 参数来增加排队的批次数量,从而启用多线程模式。
以下是具体的操作步骤:
1. 添加计时代码 :以鸟类分类系统为例,使用InceptionV3模型。在脚本开头定义实用函数后,标记开始时间;在脚本末尾标记结束时间,并计算训练所需的时间。
import time
# start time of the script
start_time = time.time()
# ...其他代码...
end_time = tim
超级会员免费看
订阅专栏 解锁全文
73

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



