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 会减速以避免过热。
我必须在 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 会减速以避免过热。