模型训练时间的估算
昨天群里一个朋友训练一个BERT句子对模型,使用的是CPU来进行训练,由于代码是BERT官方代码,并没有显示训练需要的总时间,所以训练的时候只能等待。他截图发了基本的信息,想知道训练完整个模型需要多久。
最开始跑BERT模型的时候,我也碰到这个问题,当时没有深入研究,
不过后来换成keras,bert4keras等框架,可以直接输出时间,比较直观,也就忽略了这个问题。这次回过头来重新理一理,也算温故知新。
话不多说,截图如下:
基础量
先整理一下截图中已知的量:
global_step/sec = 0.204125
表示每秒训练多少个batch批次;
examples/sec = 3.26599
表示每秒可以训练的样本数量 ;
Num examples = 40127
表示样本的总数量
Batch size = 16
表示一批次有多少个样本;
Num steps = 25079
表示总共有多少步(批次)
Epoch = 10
迭代次数,即所有样本训练的次数
迭代次数Epoch没有在截图里,但是可以这样推算:
Epoch = Num steps * Batch size / Num exa