Невозможно загрузить DLL tenorflow или одну из ее зависимостей (ML.NET)

У меня есть приложение .NET Core 3 для классификации изображений, использующее платформу Microsoft ML.NET.

На моей машине разработки я могу запустить код, и все работает нормально.

Однако, когда я развертываю его на своем промежуточном сервере, я получаю эту ошибку во время выполнения:

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. Я проверил, что пакеты NuGet SciSharp.TensorFlow.Redist и Microsoft.ML.Tensorflow.Redist включены. Пока ничего не помогло.

Есть идеи, почему он не может найти файл DLL или как я могу заставить его работать?


person Kevin Owens    schedule 24.10.2019    source источник
comment
Просто чтобы добавить для всех, у кого такая же проблема: обратитесь сюда - developers.de/2019/10/25/hosting-ml-net-in-appservice, он дал мне указатель, где искать.   -  person Farid    schedule 24.12.2019


Ответы (7)


Установлен "SciSharp.TensorFlow.Redist" версии 1.14.0, и эта проблема исчезла.

Мои ссылки на пакеты в точности следующие:

<PackageReference Include="Microsoft.ML" Version="1.4.0" />
<PackageReference Include="Microsoft.ML.ImageAnalytics" Version="1.4.0" />
<PackageReference Include="Microsoft.ML.Vision" Version="1.4.0" />
<PackageReference Include="SciSharp.TensorFlow.Redist" Version="1.14.0" />
person VeteranLK    schedule 07.01.2020
comment
Моя проблема была решена, как только я включил SciSharp.TensorFlow.Redist. В моем случае v2.1 тоже работала. - person Snympi; 07.04.2020

Я выяснил первопричину.

Причина 1. Microsoft.ML работает только на x64

Причина 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, но не в .NET framework.

Надеюсь, это сработает и для вас! Удачного кодирования!

person Vignesh Raja    schedule 10.11.2019

Столкнулся с той же проблемой с нейронной сетью тензорного потока в настольном приложении C #, которое нормально работает в среде разработки, но не работает на других машинах. Было решено установить распространяемый компонент Microsoft Visual C ++ на клиентских машинах

person Marcelo Esteves    schedule 03.05.2020
comment
Это помогло мне. Моя настройка: Microsoft.ML = 1.5.2, Microsoft.ML.ImageAnalytics = 1.5.2, Microsoft.ML.TensorFlow = 1.5.2, SciSharp.TensorFlow.Redist = 2.3.1. Загрузка модели, созданной с помощью tensorflow 2.1.x и работающей на Windows 8 x64 - person Eric Craeymeersch; 18.12.2020

Я столкнулся с рядом проблем с библиотеками ML:

В частности, упомянутый в OQ. Ошибка: Unable to load DLL 'tensorflow' or one of its dependencies: The specified module could not be found. (0x8007007E), действительно была устранена путем обновления до последней версии распространяемого пакета VC ++ x64. Для меня эта ссылка была здесь

При появлении ошибки: Unable to find an entry point named 'TF_StringEncodedSize' in DLL 'tensorflow' Мне нужно было понизить версию библиотеки SciSharp.TensorFlow.Redist с 2.4.x до 2.3.x.

Получив сообщение об ошибке Check whether your GraphDef-interpreting binary is up to date with your GraphDef-generating binary, я заметил, что установка Microsoft.ML.TensorFlow.Redist была ошибкой и ее необходимо удалить.

person Carlo Bos    schedule 16.02.2021

Установите ПОСЛЕДНИЙ VC_redist, и он работает!

person Zhang    schedule 31.07.2020

Мне помогла установка vc_redist.x64.exe

person Ruslan Zagidullin    schedule 08.02.2021

Если вы добавите ссылку на Microsoft.ML.TensorFlow.Redist, это, вероятно, поможет. Это решило это за меня.

person Webreaper    schedule 21.06.2021