問題
最近把 ML.NET 從 1.7 升到 3.0.1 結果在跑 EstimatorChain.Fit
Method 時,
出現了 MissingFieldException ‘Microsoft.ML.MLContext.OneDalDispatchingEnabled’ 的錯誤
System.MissingFieldException
HResult=0x80131511
Message=找不到欄位: ‘Microsoft.ML.MLContext.OneDalDispatchingEnabled’。
Source=Microsoft.ML.Mkl.Components
StackTrace:
於 Microsoft.ML.Trainers.OlsTrainer.TrainCore(IChannel ch, Factory cursorFactory, Int32 featureCount)
於 Microsoft.ML.Trainers.OlsTrainer.TrainModelCore(TrainContext context)
於 Microsoft.ML.Trainers.TrainerEstimatorBase2.TrainTransformer(IDataView trainSet, IDataView validationSet, IPredictor initPredictor) 於 Microsoft.ML.Data.EstimatorChain
1.Fit(IDataView input)
解法
查看 MLContext.cs 程式碼中會載入Microsoft.ML.OneDal
這個組件,所以就直接噴那個 Exception。
所以…就在專案中,將Microsoft.ML.OneDal
套件加進來就可以了哦~
參考資源
Accelerate ML.NET training with Intel oneDAL
一正避三邪: 一個人的行為正直,就不怕一切的邪氣,因為邪不勝正。