You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Framework 4.8环境下无ML.NET的ONNX Runtime运行方案咨询

在.NET Framework 4.8中运行ONNX推理的可行方案

方案1:直接使用官方ONNX Runtime的.NET Framework兼容包

ONNX Runtime官方提供了支持.NET Framework 4.6.1及以上版本的NuGet包,无需依赖ML.NET即可独立运行推理。

操作步骤:

  1. 在Visual Studio中,右键项目→管理NuGet程序包,搜索并安装Microsoft.ML.OnnxRuntime(选择兼容.NET Framework 4.8的稳定版本即可)。
  2. 基础推理代码示例:
using Microsoft.ML.OnnxRuntime;
using Microsoft.ML.OnnxRuntime.Tensors;

// 加载ONNX模型
var sessionOptions = new SessionOptions();
using var session = new InferenceSession("your_model.onnx", sessionOptions);

// 构造输入张量(需匹配模型输入维度,示例为float类型4维张量)
var inputTensor = new DenseTensor<float>(new[] {1, 3, 224, 224});
// 填充预处理后的输入数据

// 创建输入字典,"input_name"需匹配模型的输入节点名称
var inputs = new List<NamedOnnxValue>
{
    NamedOnnxValue.CreateFromTensor("input_name", inputTensor)
};

// 运行推理
using var outputs = session.Run(inputs);

// 处理输出结果
var outputTensor = outputs.First().AsTensor<float>();
// 提取数据并完成后续业务逻辑

注意事项:

  • 模型文件需随程序一同发布,确保路径正确。
  • 需根据实际模型的输入输出节点名称、张量维度调整代码参数。

方案2:通过P/Invoke调用ONNX Runtime原生C API

如果NuGet包存在兼容性问题,可直接调用ONNX Runtime的原生C接口,借助.NET的P/Invoke机制实现推理。

操作步骤:

  1. 下载对应平台(如Windows x64)的ONNX Runtime原生二进制文件(包含onnxruntime.dll),放入项目输出目录。
  2. 在C#中声明核心C API函数:
using System.Runtime.InteropServices;

public static class OnnxRuntimeNative
{
    [DllImport("onnxruntime.dll", CallingConvention = CallingConvention.Cdecl)]
    public static extern IntPtr OrtCreateEnv(out IntPtr env);

    [DllImport("onnxruntime.dll", CallingConvention = CallingConvention.Cdecl)]
    public static extern IntPtr OrtCreateSession(IntPtr env, string modelPath, IntPtr sessionOptions, out IntPtr session);

    // 按需补充创建张量、运行推理、释放资源等API声明
}
  1. 编写C#代码封装完整流程:环境初始化→会话创建→输入张量构造→推理执行→资源释放。

优缺点:

  • 优点:完全脱离.NET层封装,灵活性拉满,适配特殊场景。
  • 缺点:需手动管理内存和资源,代码复杂度高,需熟悉ONNX Runtime的C API文档。

方案3:使用社区维护的轻量封装库

部分社区项目提供了针对.NET Framework的ONNX Runtime轻量封装,无需依赖ML.NET,可选择兼容.NET Framework 4.8的版本。这类库简化了原生API的调用流程,但需注意项目的维护状态和兼容性。

内容的提问来源于stack exchange,提问作者user101464

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 04:15:25