我有一个使用Microsoft ML.NET框架进行图像分类的.NET Core 3应用。
在我的开发机器上,我可以运行代码,并且一切正常。
但是,当我将其部署到我的登台服务器时,在运行时会收到此错误:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
System.DllNotFoundException: Unable to load DLL 'tensorflow' or one of its dependencies: The specified module could not be found. (0x8007007E)
at Tensorflow.c_api.TF_NewGraph()
at Tensorflow.Graph..ctor()
at Microsoft.ML.Transforms.Dnn.DnnUtils.LoadTFSession(IExceptionContext ectx, Byte[] modelBytes, String modelFile)
...
我曾尝试在部署过程中将tensorflow.dll复制到bin文件夹中;我尝试将其构建为x64,x86或AnyCPU。我已验证是否包含SciSharp.TensorFlow.Redist和Microsoft.ML.Tensorflow.Redist NuGet程序包。到目前为止没有任何工作。
任何知道为什么它找不到DLL文件,或者我如何使它工作的想法?
我已经找到了根本原因。
原因1:Microsoft.ML适用于x64 only
原因2:以下软件包的最新稳定版本(1.4.0)引发错误。下面的[[v1.3.1包运行正常。
原因3: