onnxruntime C#GPU推理闪退问题解决和Log日志使用方法OrtLoggingLevel

当我们正确安装CUDA、cudnn和Microsoft.ML.OnnxRuntime.Gpu(NuGet包)后,CPU可以正常推理,但是GPU一运行InferenceSession对象的Run()就闪退,没有任何提示

但是观察任务管理器加载模型时GPU专用内存有少量提升,Cuda性能有波动

程序闪退时,GPU专用内存下降,Cuda性能有波动

这时问题一般出在缺少libwapi.dll上,安装即可

参考onnxruntime C#部署环境安装-CSDN博客

也可以启动onnxruntime的log记录功能查看

using System;
using System.Diagnostics;

public class CustomConsoleTraceListener : TraceListener
{
    public override void Write(string message)
    {
        Console.Write(message);
    }

    public override void WriteLine(string message)
    {
        Console.WriteLine(message);
    }
}

继承TraceListener

通过继承 System.Diagnostics.TraceListener 类,您可以创建自定义的日志监听器来捕获和处理日志信息。TraceListener 类提供了一个接口,允许您自定义日志输出的行为。当您将自定义的 TraceListener 添加到 Trace.Listeners 集合中时,任何通过 Trace 类或 System.Diagnostics.Debug 类输出的日志信息都会被您的监听器接收

Trace.Listeners.Add(new CustomTraceListener());

var options = new SessionOptions
{
    OrtLoggingLevel = OrtLoggingLevel.ORT_LOGGING_LEVEL_VERBOSE
};

// 创建 InferenceSession 对象
var session = new InferenceSession("model.onnx", options);

OrtLoggingLevel 枚举定义了以下日志级别:

  • ORT_LOGGING_LEVEL_VERBOSE:最详细的日志信息,包括所有信息。
  • ORT_LOGGING_LEVEL_INFO:一般的信息,例如模型加载和推理进度。
  • ORT_LOGGING_LEVEL_WARNING:警告级别的日志,例如潜在的问题或性能下降。
  • ORT_LOGGING_LEVEL_ERROR:错误级别的日志,例如无法恢复的错误。
  • ORT_LOGGING_LEVEL_FATAL:致命错误,通常是程序无法继续执行的错误。

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值