pytorch pnnx repvit模型转换

news/2024/7/8 2:02:18 标签: pytorch, python, 深度学习, pnnx

先把模型转到libtorch

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
import argparse
import time
import sys
import os
import torch
import torch.nn as nn
import torch.backends.cudnn as cudnn
from timm.models import create_model
import time
import model

input_size = 112
num_class = 3
model_name = 'repvit_m0_2'
model_path= 'checkpoints/repvit_m0_2/2024_07_03_21_04_49'

if __name__ == '__main__':


    infer_device = torch.device('cpu')
    model = create_model(
        model_name,
        num_classes=num_class ,
        distillation=False,
        pretrained=False,
    )
    print(model)
    state_dict = torch.load(os.path.join(model_path,'checkpoint_best.pth'), map_location=lambda storage, loc: storage)
    model.load_state_dict(state_dict['model'])
    model.to(infer_device)
    img = torch.zeros(1, 3, input_size,input_size).to(infer_device)  
    model.eval()

    y = model(img)  # dry run
    print(y)

    # TorchScript export
    try:
        print('\nStarting to export TorchScript...')
        export_file = 'checkpoint_best.torchscript'  # filename
        trace_model = torch.jit.trace(model, img)
        trace_model.save(os.path.join(model_path,export_file))
        output = trace_model(img)
        print(output)
    except Exception as e:
        print(f'TorchScript export failure: {e}')

    # Finish
    print('\nExport complete')

得到checkpoint_best.torchscript,然后使用pnnx进行转换

./pnnx  RepViT/checkpoints/repvit_m0_2/2024_07_03_21_04_49/checkpoint_best input_types=[f32]

得到checkpoint_best.ncnn.param和checkpoint_best.ncnn.bin,即转换完成


http://www.niftyadmin.cn/n/5536037.html

相关文章

传感器标定(一)摄像头内参标定

一、使用ROS进行手动标定安装 1、安装 image-view &usb_cam ⽤于驱动相机 sudo apt-get install ros-melodic-image-view sudo apt-get install ros-melodic-usb-cam2、查看系统视频设备 v4l2- ctl -d /dev/video0 --all 查询所有相机具体的参数包括width和height ls /…

前端面试题4(浏览器对http请求处理过程)

浏览器对http请求处理过程 当我们在浏览器中输入URL并按下回车键时,浏览器会执行一系列步骤来处理HTTP请求并与服务器通信。下面是浏览器处理过程 1. 解析URL 浏览器首先解析输入的URL,提取出协议(通常是http://或https://)、主…

2024年6月份找工作和面试总结

转眼间6月份已经过完了,2024年已经过了一半,希望大家都找到了合适的工作。 本人前段时间写了5月份找工作的情况,请查看2024年5月份面试总结-CSDN博客 但是后续写的总结被和谐了,不知道这篇文章能不能发出来。 1、6月份面试机会依…

p标签文本段落中因编辑器换行引起的空格问题完美解决方案

目录 1.修改前的代码:2.修改后的代码3.总结 在HTML文档中,如何要在(p标签)内写一段很长的文本段落,并且没有 换行。由于IDE或者编辑器界面大小有限或需要在vue中逻辑处理动态显示文本,一行写完太长&#x…

Node.js适合什么场景下使用

Node.js是一个基于Chrome V8 JavaScript引擎构建的开源运行时环境,它允许开发者使用JavaScript在服务器端运行代码。Node.js具有高性能、轻量级、事件驱动和非阻塞I/O等特性,这些特性使得它在多种场景下具有广泛的应用。以下是Node.js适合使用的几个主要…

Qt界面中的子窗口实现鼠标拖动边缘改变大小以及移动(完整demo代码)

目录 效果 拖拽 移动​编辑 实现 DragResizeWgt类.h文件 DragResizeWgt类.cpp文件 使用 testwidget窗口.ui文件 testwidget窗口.h文件 testwidget窗口.cpp文件 参考 效果 想要的效果就是类似于QT IDE中的效果,可以拖动边缘改变大小,用户自身可…

UE4_材质_水体的反射与折射制作_Ben教程

在这个教程中,将制作水的反射和折射,上个教程,我们主要讲了制作水涟漪(水面波纹)和水滴法线混合,水深计算,我们首先要谈的是反射和产生折射的问题。我们将所有从干扰从场景中分离出去&#xff0…

11 - matlab m_map地学绘图工具基础函数 - 绘制航迹、椭圆、风向玫瑰图和特定的圆形区域的有关函数及其用法

11 - matlab m_map地学绘图工具基础函数 - 绘制航迹、椭圆、风向玫瑰图和特定的圆形区域的有关函数及其用法 0. 引言1. 关于m_track2. 关于m_range_ring3. 关于m_ellipse4. 关于m_windrose5. 结语 0. 引言 本篇介绍下m_map中绘制航迹图函数(m_track)、绘…