簡體   English   中英

ASP.NET 核心 在 Docker 容器內加載 Onnx 文件

[英]ASP.NET Core Load an Onnx file inside a Docker container

我正在嘗試構建一個使用 Onnx 機器學習 model 文件的 ASP.NET 核心 api。 我像這樣加載它:

OnnxScoringEstimator pipeline = _mlContext.Transforms.ApplyOnnxModel(_config.GetSection("ModelPath").Value);

這意味着它從 appsettings.json 文件中獲取路徑,如下所示:

appsettings.Development.json

"ModelPath": "C:\\Users\\name\\dev\\solution\\project\\model.onnx"

和我的 appsettings.Production.json

"ModelPath": "./model.onnx"

在我的機器上調試項目時它確實有效,但當我在 docker 容器中構建它時不起作用。 然后它給出以下錯誤:

Connection id "0HLV880PG88DT", Request id "0HLV880PG88DT:00000002": An unhandled exception was thrown by the application.

System.DllNotFoundException: Unable to load shared library 'onnxruntime' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libonnxruntime: cannot open shared object file: No such file or directory

因為它說No such file or directory ,所以我會說它與我的 model 路徑錯誤有關,但我不確定。

我希望有人能幫幫忙。 謝謝

我也遇到了這個問題,經過一番頭疼后,我遇到了一個解決方案,該解決方案在 Github 問題中對我有用,該問題指向 ONNX 運行時系統要求文檔: https://github.com/Microsoft/onnxruntime#system -要求

關鍵點:

對於 Linux,系統必須有 libgomp.so.1,可以使用 apt-get install libgomp1 安裝。

將以下命令添加到 Dockerfile 后,我的應用程序按預期工作:

RUN apt-get update && apt-get install -y libgomp1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM