同样的代码运行在netcore下可以,运行在winform中就出现错误:
引发的异常:“System.DllNotFoundException”(位于 Microsoft.ML.Data.dll 中)
跟进代码,发现异常为:
Message = "无法加载 DLL“CpuMathNative”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。"
Source = "Microsoft.ML.CpuMath"
STACK TRACK:
在 Microsoft.ML.Internal.CpuMath.Thunk.DotSU(Single* pa, Single* pb, Int32* pi, Int32 c)
在 Microsoft.ML.Numeric.VectorUtils.DotProduct(VBuffer`1& a, VBuffer`1& b)
在 Microsoft.ML.Trainers.LinearMulticlassModelParametersBase.PredictCore(VBuffer`1& src, VBuffer`1& dst)
在 Microsoft.ML.Data.PredictedLabelScorerBase.EnsureCachedPosition[TScore](Int64& cachedPosition, TScore& score, DataViewRow boundRow, ValueGetter`1 scoreGetter)
在 Microsoft.ML.Data.MulticlassClassificationScorer.<>c__DisplayClass16_0.<GetPredictedLabelGetter>b__0(UInt32& dst)
在 Microsoft.ML.Transforms.KeyToValueMappingTransformer.Mapper.KeyToValueMap`2.<>c__DisplayClass8_0.<GetMappingGetter>b__0(TValue& dst)
在 Microsoft.ML.Data.TypedCursorable`1.TypedRowBase.<>c__DisplayClass10_0`1.<CreateDirectSetter>b__0(TRow row)
在 Microsoft.ML.Data.TypedCursorable`1.TypedRowBase.FillValues(TRow row)
在 Microsoft.ML.PredictionEngineBase`2.Predict(TSrc example)
...................................
百度了很久无法解决,没办法,还得上google啊,
解决方法在此:
https://github.com/dotnet/machinelearning-samples/issues/274
我的是x64自然要去win-x64目录下复制同名文件,完美解决。