无法加载DLL'tensorflow'或其依赖项之一(ML.NET)

问题描述 投票:1回答:1

我有一个使用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文件,或者我如何使它工作的想法?

c# tensorflow dll asp.net-core-3.0 ml.net
1个回答
0
投票

我已经找到了根本原因。

原因1:Microsoft.ML适用于x64 only

原因2:以下软件包的最新稳定版本(1.4.0)引发错误。下面的[[v1.3.1包运行正常。

    Microsoft.ML v1.3.1
  • Microsoft.ML.ImageAnalytics v1.3.1
  • Microsoft.ML.TensorFlow v1.3.1
  • 原因3:

  • ML.NET和Tensor流仅在。NET CORE中无法正常工作。希望这对您也有用!编码愉快!
    © www.soinside.com 2019 - 2024. All rights reserved.