как ускорить numpy.dot для нейронной сети?(матрица с примерно 4,5 миллионами элементов в результате) - PullRequest
0 голосов
/ 03 февраля 2019

Я программирую нейронную сеть на python (3.6), и в части, где я обновляю веса, есть матричный * векторный расчет с помощью numpy.dot ().

Матрица имеетразмер 4500x1024 и вектор размером 1024. В результате получается матрица с примерно 4,5 миллионами элементов.

Этот расчет должен выполняться несколько тысяч раз (каждая итерация), но он действительно медленный.Так, например, для 100 итераций уже требуется несколько минут.

Я уже установил компилятор Intel MKL (полный пакет с их веб-сайта) в надежде ускорить вычисления с помощью numpy.Но на самом деле нет разницы в скорости.Может быть, он установлен неправильно?

... хм, пока я пишу этот пост, я вижу, что blas_mkl_info недоступен, а openblas все еще используется?...

blas_mkl_info:
НЕ ДОСТУПНО
blis_info:
НЕ ДОСТУПНО
openblas_info:
library_dirs = ['C: \ projects \ numpy-wheel \ \numpy \ build \ openblas ']
library = [' openblas ']
language = f77
define_macros = [(' HAVE_CBLAS ', None)]
blas_opt_info:
library_dirs = [' C: \ projects \ numpy-wheel \ numpy \ build \ openblas ']
library = [' openblas ']
language = f77
define_macros = [(' HAVE_CBLAS ', None)]
lapack_mkl_info:
НЕ ДОСТУПНО
openblas_lapack_info:
library_dirs = ['C: \ projects \ numpy-wheel \ numpy \ build \ openblas']
library = ['openblas']
language = f77
define_macros = [('HAVE_CBLAS', None)]
lapack_opt_info:
library_dirs = ['C: \ projects \ numpy-wheel \ numpy \ build \ openblas']
library = ['openblas']
language = f77
define_macros = [('HAVE_CBLAS', None)]

=================================================================

Хорошо, теперь я правильно установил numpy с mkl, следуя этому сообщению: Как установить numpy + mkl дляPython 2.7 на Windows 64 бит?

Производительность немного увеличилась, но я все еще не доволен этим.Могу ли я сделать какие-либо другие улучшения?

...