Я пытаюсь использовать TFLite Инструмент сравнения с моделью мобильной сети и проверка последнего inference time в микросекундах для сравнения различных моделей. Проблема, с которой я столкнулся, заключается в том, что результаты различаются между запусками. Я также нашел этот раздел в документации, который относится к уменьшение разницы между запусками на Android. В нем объясняется, как можно установить соответствие ЦП перед запуском теста, чтобы получить согласованные результаты между запусками. На данный момент для работы использую Redmi Note 4 и One Plus.

  1. Пожалуйста, кто-нибудь может объяснить, что я должен установить значение CPU affinity для моих экспериментов?

  2. Могу ли я найти маски соответствия для разных мобильных телефонов в Интернете или на телефоне Android?

  3. Когда я увеличиваю количество параметра --warmup_runs, я получаю менее разные результаты. Есть ли другие способы сделать мои результаты более последовательными?

  4. Влияют ли фоновые процессы на телефоне Android на мой inference time и есть ли способ остановить их, чтобы уменьшить расхождения в результатах?

1
Abhijay Ghildyal 23 Сен 2018 в 06:48

1 ответ

Лучший ответ
  1. Как предполагают в документации, любое значение приемлемо, если вы остаетесь согласованным с одним значением во всех экспериментах. Единственное, что следует учитывать, - это использовать ли большое ядро ​​или маленькое ядро ​​(если у вас большая и маленькая архитектура), и обычно полезно попробовать оба (у них разные размеры кеша и т.

  2. Да, вы обычно можете найти эту информацию в Интернете. См. http: // infocenter. arm.com/help/index.jsp?topic=/com.arm.doc.ddi0515b/CJHBGEBA.html в качестве примера. Вы захотите взглянуть на свой конкретный телефон, увидеть конкретный процессор, который он использует, а затем погуглить, чтобы получить дополнительную информацию оттуда.

  3. Я пробовал --warmup_runs = 2000+, и обычно он довольно стабилен. С моделями меньшего размера разница немного больше. Для интенсивных моделей (по крайней мере, для конкретного устройства) вы можете захотеть увидеть, не перегреваются ли устройства и т. Д. Я не видел этого для телефонов среднего уровня, но слышал, что люди иногда хранят свои устройства в прохладном месте ( вентилятор, холодильник) для этого.

  4. Могут, но это неизбежно. Лучшее, что вы можете сделать, - это закрыть все приложения и отключиться от Интернета. Я лично не видел, чтобы они вводили слишком много различий.

1
Alan Chiao 8 Фев 2019 в 02:25