CoreML 推理时间会随着迭代而增长吗?

Does CoreML inference time grow with iterations?

我必须在 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))
}

正常吗?如果不是,你知道吗?提前致谢!

是的,如果 phone 变热,这是可能的。您的模型似乎非常大(每个预测 4 秒)所以它做了很多工作,使 CPU and/or GPU 变热。 phone 会减速以避免过热。