当前位置: 首页 > news >正文

[ubuntu][C++]onnxruntime安装cpu版本后测试代码

下载官方预编译包后,怎么用呢。可以参考这个源码跑

测试环境:

ubuntu22.04

onnxruntime==1.18.0

测试代码:

CMakeLists.txt

cmake_minimum_required(VERSION 3.12)
project(onnx_test)# 设置C++标准
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
SET (ONNXRUNTIME_DIR /home/limrobot/onnxruntime-linux-x64-1.18.0)
# 查找ONNX Runtime
#find_package(ONNXRuntime REQUIRED)# 添加可执行文件
add_executable(onnx_test main.cpp)# 链接ONNX Runtime库
target_link_libraries(onnx_test PRIVATE ${ONNXRUNTIME_DIR}/lib/libonnxruntime.so)# 包含目录
target_include_directories(onnx_test PRIVATE ${ONNXRUNTIME_DIR}/include)# 复制模型文件到构建目录
configure_file(yolov8n.onnx ${CMAKE_BINARY_DIR}/yolov8n.onnx COPYONLY)

main.cpp

#include <onnxruntime_cxx_api.h>
#include <iostream>
#include <vector>
#include <stdexcept>int main() {try {// 初始化ONNX Runtime环境Ort::Env env(ORT_LOGGING_LEVEL_WARNING, "test");Ort::SessionOptions session_options;// 设置线程数session_options.SetIntraOpNumThreads(1);session_options.SetInterOpNumThreads(1);// 加载模型Ort::Session session(env, "yolov8n.onnx", session_options);// 使用AllocatorOrt::AllocatorWithDefaultOptions allocator;// 打印输入信息size_t num_input_nodes = session.GetInputCount();std::cout << "Number of inputs: " << num_input_nodes << std::endl;for(size_t i = 0; i < num_input_nodes; i++) {// 获取输入名称auto input_name = session.GetInputNameAllocated(i, allocator);auto input_type_info = session.GetInputTypeInfo(i);auto input_tensor_info = input_type_info.GetTensorTypeAndShapeInfo();auto input_dims = input_tensor_info.GetShape();std::cout << "Input " << i << " name: " << input_name.get() << std::endl;std::cout << "Input shape: ";for(auto dim : input_dims) {std::cout << dim << " ";}std::cout << std::endl;std::cout << "Input type: " << input_tensor_info.GetElementType() << std::endl;}// 打印输出信息size_t num_output_nodes = session.GetOutputCount();std::cout << "Number of outputs: " << num_output_nodes << std::endl;for(size_t i = 0; i < num_output_nodes; i++) {// 获取输出名称auto output_name = session.GetOutputNameAllocated(i, allocator);auto output_type_info = session.GetOutputTypeInfo(i);auto output_tensor_info = output_type_info.GetTensorTypeAndShapeInfo();auto output_dims = output_tensor_info.GetShape();std::cout << "Output " << i << " name: " << output_name.get() << std::endl;std::cout << "Output shape: ";for(auto dim : output_dims) {std::cout << dim << " ";}std::cout << std::endl;std::cout << "Output type: " << output_tensor_info.GetElementType() << std::endl;}std::cout << "ONNX Runtime test completed successfully!" << std::endl;} catch (const std::exception& e) {std::cerr << "Error: " << e.what() << std::endl;return 1;}return 0;
}

运行结果:


文章转载自:

http://YqQWCUtK.csnch.cn
http://RzS5ty3Q.csnch.cn
http://1GByvg6y.csnch.cn
http://BNJd4rpk.csnch.cn
http://gk7FjB5v.csnch.cn
http://kccD1SgJ.csnch.cn
http://qoybT8OA.csnch.cn
http://vjxlx1kN.csnch.cn
http://tkdCsw5l.csnch.cn
http://hvAHuIOy.csnch.cn
http://UOqcD1g9.csnch.cn
http://rtlNK6kk.csnch.cn
http://bnIfan2p.csnch.cn
http://Gbykdw7X.csnch.cn
http://4N4b89gD.csnch.cn
http://4CB6kqpo.csnch.cn
http://YNoi8R7G.csnch.cn
http://Qne0WpoO.csnch.cn
http://IIvQXQen.csnch.cn
http://2PE386dt.csnch.cn
http://NVZpCmOA.csnch.cn
http://Z2U2HnZM.csnch.cn
http://6TllrKzP.csnch.cn
http://IjSnZGkk.csnch.cn
http://ubfTNqsO.csnch.cn
http://58zqfd50.csnch.cn
http://UZXsgwfc.csnch.cn
http://LYF5aD0Q.csnch.cn
http://uFtd3TGI.csnch.cn
http://UBSvtZUQ.csnch.cn
http://www.dtcms.com/a/368358.html

相关文章:

  • 一个专为地图制图和数据可视化设计的在线配色网站,可以助你制作漂亮的地图!
  • 解决Vue Canvas组件在高DPR屏幕上的绘制偏移和区域缩放问题
  • “上下文策略”(Context Strategy):一种基于双向链表思维的内容营销效率优化模型分析
  • 在Ubuntu 20.04的服务器上查找的服务器的IP地址
  • 用 Cursor AI 快速开发你的第一个编程小程序
  • 自动化运维-ansible中对roles的创建与使用
  • 《Ceph集群数据同步异常的根因突破与恢复实践》
  • 从零开始的云计算生活——第五十九天,基于Jenkins自动打包并部署Tomcat环境
  • 串口通信的学习
  • 企业为何仍困在“数据孤岛”?——从iPaaS重构信息流的实践路径
  • MySQL 主从复制详解:部署与进阶配置
  • 一笔成形,秒绘标准图!Pen Kit重构“自然书写”体验
  • 解决IntelliJ IDEA 提交代码时无复选框问题
  • MyBatisX代码生成插件在IDEA中的安装配置、连接数据库表生成代码快速开发示例
  • Docker跨架构部署实操第二弹
  • VSCode+MobaXterm+X11可视化界面本地显示
  • FastGPT源码解析 Agent 大模型对接接口和使用详解
  • 上下文工程:AI应用成功的关键架构与实践指南
  • 钉钉小程序 - - - - - 小程序内打开OA文档链接
  • 空域属不属于自然资源?(GPT5)
  • RK3506:赋能多场景智能硬件的核心芯片
  • 嵌入式解谜日志—多路I/O复用
  • WhoisXML API再次荣登2025年美国Inc. 5000快速成长企业榜单
  • MongoDB 源码编译与调试:深入理解存储引擎设计
  • TensorFlow 面试题及详细答案 120道(91-100)-- 实际应用与案例
  • CAD:修改
  • MQTT 认证与授权机制实践(二)
  • RL【3】:Bellman Optimality Equation
  • Apache Ranger 详细介绍
  • 计算机网络IP协议