Растет ли время вывода CoreML с итерациями? - PullRequest
1 голос
/ 29 января 2020

Я должен измерить время вывода моей модели ML в Swift. Для этого я хотел выполнить вывод несколько раз, а затем усреднить все времена вывода, чтобы получить более точное значение. Я отметил, что время вывода росло с итерациями. Должно быть, я сделал что-то не так, я не знаком со 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))
}

Это нормально? Есть идеи, если это не так? Заранее спасибо!

1 Ответ

2 голосов
/ 30 января 2020

Да, это возможно, если телефон нагревается. Ваша модель кажется довольно большой (4 секунды на прогноз), поэтому она выполняет большую работу, нагревая процессор и / или графический процессор. Во избежание перегрева телефон замедлится.

...