LinuxでML.NETのTimeSeriesを使用するとMklImportsでエラーが発生する問題の解決策

この記事は公開から3年以上経過しています。

過去のエントリで紹介しているML.NETのML.TimeSeriesを使った新型コロナ感染率予測プログラムをLinux(Debian 10)+.NET 5で動かしたところエラー(例外)が発生して動作しなかったため、その解決策についての備忘録。

2021.8.17追記:
openSUSE(LEAP15.3)などでIntel® MKLパッケージが見つからない、若しくはシステムにIntel® MKLパッケージをグローバルインストールしたくないという場合は、こちらのエントリ「LinuxでML.NETのTimeSeriesを使用するとMklImportsでエラーが発生する問題の解決策(その2)」をご覧ください。

問題

ML.NETのML.TimeSeriesを使うとModelのFit()で以下のような例外が発生する。

Exception has occurred: CLR/System.DllNotFoundException
型 'System.DllNotFoundException' のハンドルされていない例外が Microsoft.ML.TimeSeries.dll で発生しました: 'Unable to load shared library 'MklImports' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libMklImports: cannot open shared object file: No such file or directory'
   場所 Microsoft.ML.Transforms.TimeSeries.EigenUtils.Dsytrd(Layout matrixLayout, Uplo uplo, Int32 n, Double[] a, Int32 lda, Double[] d, Double[] e, Double[] tau)
   場所 Microsoft.ML.Transforms.TimeSeries.EigenUtils.MklSymmetricEigenDecomposition(Single[] input, Int32 size, Single[]& eigenValues, Single[]& eigenVectors)
   場所 Microsoft.ML.Transforms.TimeSeries.TrajectoryMatrix.ComputeSvd(Single[]& singularValues, Single[]& leftSingularvectors)
   場所 Microsoft.ML.Transforms.TimeSeries.AdaptiveSingularSpectrumSequenceModelerInternal.TrainCore(Single[] dataArray, Int32 originalSeriesLength)
   場所 Microsoft.ML.Transforms.TimeSeries.AdaptiveSingularSpectrumSequenceModelerInternal.Train(RoleMappedData data)
   場所 Microsoft.ML.Transforms.TimeSeries.SsaForecastingTransformer..ctor(IHostEnvironment env, Options options, IDataView input)
   場所 Microsoft.ML.Transforms.TimeSeries.SsaForecastingEstimator.Fit(IDataView input)
   場所 Covid19InJapan.Program.Main(String[] args) (/media/yoshiboo/SSDPUTA512/.NETCore/Covid19InJapan/Covid19InJapan/Program.cs):行 102

原因

システムにIntel® MKLパッケージがインストールされていないことで、ネイティブライブラリのロードに失敗している。

対応

以下のコマンドでシステムにIntel® MKLパッケージをインストールする。

Debian 10

sudo apt install intel-mkl

以上です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする