我必须在Swift中测量我的ML模型的推理时间。为此,我想执行几次推理,然后平均所有推理时间以得到更精确的值。我注意到推理时间随迭代而增加。我一定做错了事,我对Swift不熟悉:
Duration : 4756 ms
Duration : 4879 ms
Duration : 5325 ms
Duration : 5712 ms
Duration : 5952 ms
Duration : 6059 ms
Duration : 6223 ms
Duration : 6244 ms
Duration : 6088 ms
Duration : 6286 ms
这是我的代码段:
for _ in 1...nb_it {
// Timer
let tic = CFAbsoluteTimeGetCurrent()
// Inference
_ = try model.prediction(input: input, options: options)
// Timer
let toc = CFAbsoluteTimeGetCurrent()
let duration = Int32(1000 * (toc - tic))
// Report
print(String(format: "Duration : %5d ms", duration))
}
这正常吗?知道不是吗?预先感谢!
是的,如果电话变热,这是可能的。您的模型似乎很大(每个预测4秒),因此它正在做大量工作,从而使CPU和/或GPU发热。手机会变慢以避免过热。