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

yolo11经验教训----之一

一、格式转换

可以把python中的.pt文件,导出为libtorch识别的格式:
 

model = YOLO("yolo11n.pt")
model.export(format="torchscript")

二、查看结构

在c++中,我用qt,这样做的:
 

#include "mainwindow.h"
#include "ui_mainwindow.h"


#undef slots
#include <torch/torch.h>
#include <torch/script.h>
#define slots Q_SLOTS



MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    try {
        // 加载模型文件
        torch::jit::script::Module model = torch::jit::load("d:/BaiduNetdiskDownload/ultralytics-main/yolo11n.torchscript");
        model.eval();
        
        // 打印模型结构
        for (const auto& child : model.named_children()) {
            qDebug() << "层名称:" << QString::fromStdString(child.name);
            qDebug() << "层类型:" << QString::fromStdString(child.value.type()->str());
            
            // 打印该层的参数信息
            for (const auto& param : child.value.named_parameters()) {
                qDebug() << "参数名称:" << QString::fromStdString(param.name);
                // 获取并打印形状
                auto sizes = param.value.sizes();
                QString shape = "[";
                for(size_t i = 0; i < sizes.size(); ++i) {
                    shape += QString::number(sizes[i]);
                    if(i < sizes.size() - 1) shape += ", ";
                }
                shape += "]";
                qDebug() << "参数形状:" << shape;
            }
            qDebug() << "------------------------";
        }
        
        qDebug() << "模型加载成功";
    }
    catch (const c10::Error& e) {
        qDebug() << "模型加载失败:" << e.what();
    }
}


http://www.kler.cn/a/419835.html

相关文章:

  • k8s使用的nfs作为sc。
  • PLC协议
  • MySql:理解数据库
  • 03-13、SpringCloud Alibaba第十三章,升级篇,服务降级、熔断和限流Sentinel
  • Flink四大基石之State(状态) 的使用详解
  • 工作:三菱PLC防止程序存储器爆满方法
  • QT的槽函数的四种写法
  • ME6210:常用在个人通信设备电源里的低静态、低压差线性稳压器
  • @antv/x6 再vue中 ,自定义图形,画流程图、数据建模、er图等图形
  • linux网络抓包工具
  • 网际协议(IP)与其三大配套协议(ARP、ICMP、IGMP)
  • 【在Linux世界中追寻伟大的One Piece】多线程(三)
  • 为什么编程语言会设计不可变的对象?字符串不可变?NSString *s = @“hello“变量s是不可变的吗?Rust内部可变性的意义?
  • 源码分析之Openlayers中的Collection类
  • Web开发基础学习——HTML中\<div>元素的理解
  • arkTS:使用ArkUI实现用户信息的持久化管理与自动填充(PersistentStorage)
  • Java 面经之 Spring
  • 【Git系列】Git 提交记录过滤:排除特定关键词的实用指南
  • 【MySQL-6】MySQL的复合查询
  • 动态代理如何加强线上安全
  • 云服务器架构有什么区别?X86计算、Arm、GPU/FPGA/ASIC和裸金属全解析
  • 2024年通信网络与软件工程国际学术会议(ICCNSE 2024)
  • 嵌入式Linux之wifi配网脚本分析
  • 排序算法中稳定性的意义和作用
  • C++实现网格交易的例子
  • 设计模式- Java