Faissはmkl加速を利用してインデックストレーニングを構築中にエラーが発生しました.


前にfaissがインデックストレーニングを構築したときに出会った穴を記録します.Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or libmkl_def.so.
質問:
インテルmkl(Math Kernel Library)ライブラリを使用してfaissを加速します.index.train()タイムズは次のエラーを示します.
Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or libmkl_def.so.

ソリューション
faissを呼び出す前に呼び出しmklをインポートします.コードは次のとおりです.
import mkl
mkl.get_max_threads()

どうしてそうするのか、私はまだよく理解していません.condaのインストールバージョンが互換性があると推測されます.具体的には私が言ったissueを見てください.
補足
mklインポートに失敗した場合.のように
import mkl
ImportError: No module named mkl

解決方法は次のとおりです.
###   :
$ conda install mkl
$ conda install mkl-service

個人ブログから:https://kirio.vip/2019/03/28/...