Есть много вещей, которые вы можете сделать, чтобы получить хорошую производительность процессора. (Я должен был поместить это в комментарии, но это было бы слишком долго. Поэтому, разместив это здесь.)
- Квантование модели :
Квантование модели с помощью обучения с учетом квантования или квантования весов после обучения гарантирует, что с минимальным или нет снижения точности мы преобразуем веса float32 или float64 в uint8 для более быстрого выполнения на младших машинах.
Как вы сказали, ваша модель находится в PyTorch, поэтому Модель квантования была введена в PyTorch 1.4.0, а дополнительные функции с улучшениями были добавлены в 1.4.1
Вы также можете найти интересный репо в Модель квантования здесь .
OpenVino Инструментарий OpenVINO позволяет разработчикам развертывать предварительно обученные модели глубокого обучения с помощью высокоуровневого API C ++ Inference Engine, интегрированного с логикой приложения c.
Он включает в себя два компонента, а именно Model Optimizer и Inference Engine, а также CPU, GPU и гетерогенные плагины для ускорения глубокого изучения процессоров Intel (R) и процессорной графики Intel (R).
Таким образом, вы можете перенести вашу модель в OpenVino для более быстрого вывода на процессор. Вы можете сослаться на несколько ссылок для OpenVino здесь (в README моего репозитория). Также link1 и link2 .
Построение из источника Вы можете создать исходный код репозитория PyTorch, как в версии pip, в мультипроцессорной обработке и многопоточности существует некоторая проблема, которая снижает реальную производительность. (чего нет в случае TensorFlow)
Дополнительный подход :
Вы можете попытаться преобразовать вашу модель в TensorFlow и посмотреть, улучшит ли она вывод на ЦП. Иногда его видно, это максимизирует производительность. Вы можете обратиться к ссылке здесь для получения дополнительной информации.