#tensorflow #sparse-matrix #hardware #intel-mkl #pruning
#tensorflow #разреженная матрица #аппаратное обеспечение #intel-mkl #обрезка
Вопрос:
Я получил разреженную матрицу веса от Tensorflow-pruning для уменьшения SqueezeNet
. После strip_pruning_vars
я проверил, что большинство элементов в матрице веса успешно сокращены до 0. Однако производительность модели не увеличилась по сравнению с тем, что я ожидал. Кажется, что требуется дополнительная библиотека программного обеспечения или аппаратное обеспечение, поддерживающее операции с разреженными матрицами. Кто-то сказал мне, что использование Intel-MKL
библиотеки будет полезно, но я не знаю, как интегрировать ее с Tensorflow. Теперь у меня есть .pb
файлы SqueezeNet, которые были удалены. Любой тип помощи будет высоко оценен.
Ответ №1:
Вы можете попробовать Intel® Optimization для TensorFlow * Wheel.
Для этого рекомендуется использовать среду Intel.
Пожалуйста, выполните следующие действия.
-
Создайте среду conda с помощью команды:
conda create -n my_intel_env -c intel python=3.6
-
Активируйте среду.
source activate my_intel_env
-
Установите колесо
pip install https://storage.googleapis.com/intel-optimized-tensorflow/tensorflow-1.11.0-cp36-cp36m-linux_x86_64.whl
Для получения более подробной информации вы можете обратитьсяhttps://software.intel.com/en-us/articles/intel-optimization-for-tensorflow-installation-guide
После установки вы можете проверить, включен ли mkl, выполнив приведенные ниже команды из приглашения python.
from tensorflow.python.framework import test_util
test_util.IsMklEnabled()
Это должно возвращать ‘True’, если mkl включен.
Надеюсь, это поможет.
Ответ №2:
Я столкнулся с такой же проблемой с вами. Я использовал tensorflow для обрезки модели, но на самом деле сокращенная модель не получила более высокой скорости прогнозирования. В дорожной карте tensorflow (https://www.tensorflow.org/model_optimization/guide/roadmap ) они говорят, что в будущем они будут поддерживать выполнение разреженной модели. Итак, я предполагаю, что причина в том, что tensorflow пока не поддерживает ее, поэтому мы можем получить только разреженную модель, но без улучшения скорости.