转换代码

注意点:要根据你的代码进行修改,修改最初的包等

import torch
from models.with_mobilenet import PoseEstimationWithMobileNet
from modules.load_state import load_state
from action_detect.net import NetV2def convert_onnx():print('start!!!')device = 'cuda' if torch.cuda.is_available() else 'cpu'#model_path = '/home/pi/xg_openpose_fall_detect-master/weights/checkpoint_iter_370000.pth' #这是我们要转换的模型model = PoseEstimationWithMobileNet().to(device)checkpoint = torch.load(r'E:/xg_openpose_fall_detect-master/weights/checkpoint_iter_370000.pth', map_location='cpu')load_state(model, checkpoint)model.to(device)model.eval()dummy_input = torch.randn(1,3,256,456).to(device)#输入大小   #data type nchwonnx_path = 'E:/xg_openpose_fall_detect-master/weights/openpose.onnx'print("----- pth导出为onnx模型 -----")output_name = "openpose.onnx"torch.onnx.export(model, dummy_input, onnx_path, export_params=True,input_names=['input'], output_names=['output'])print('convert retinaface to onnx finish!!!')if __name__ == "__main__" :convert_onnx()

https://github.com/openvinotoolkit/training_extensions/tree/develop/misc/pytorch_toolkit/human_pose_estimation 官方

import argparseimport torchfrom models.with_mobilenet import PoseEstimationWithMobileNet
#from models.single_person_pose_with_mobilenet import SinglePersonPoseEstimationWithMobileNet
from modules.load_state import load_statedef convert_to_onnx(net, output_name, single_person, input_size):input = torch.randn(1, 3, input_size[0], input_size[1])input_layer_names = ['data']output_layer_names = ['stage_0_output_1_heatmaps', 'stage_0_output_0_pafs','stage_1_output_1_heatmaps', 'stage_1_output_0_pafs']if single_person:input = torch.randn(1, 3, input_size[0], input_size[1])output_layer_names = ['stage_{}_output_1_heatmaps'.format(i) for i in range(len(net.refinement_stages) + 1)]torch.onnx.export(net, input, output_name, verbose=True, input_names=input_layer_names,output_names=output_layer_names)if __name__ == '__main__':parser = argparse.ArgumentParser()parser.add_argument('--checkpoint-path', type=str, required=True, help='path to the checkpoint')parser.add_argument('--output-name', type=str, default='human-pose-estimation.onnx',help='name of output model in ONNX format')parser.add_argument('--single-person', action='store_true', help='convert model for single-person pose estimation')parser.add_argument('--input-size', nargs='+', type=int,  required=True,help='Size of input image in format: height width')parser.add_argument('--mode-interpolation', type=str, required=False, default='bilinear',help='type interpolation <bilinear> or <nearest>')parser.add_argument('--num-refinement-stages', type=int, default=1, help='number of refinement stages')args = parser.parse_args()net = PoseEstimationWithMobileNet()'''if args.single_person:net = SinglePersonPoseEstimationWithMobileNet(mode=args.mode_interpolation, num_refinement_stages=args.num_refinement_stages)'''checkpoint = torch.load(args.checkpoint_path)#--checkpoint-path checkpoint_iter_370000.pth  --input-size 256 456load_state(net, checkpoint)convert_to_onnx(net, args.output_name, args.single_person, args.input_size)

python scripts/convert_to_onnx.py --checkpoint-path <CHECKPOINT>

例如: python scripts/convert_to_onnx.py --checkpoint-path checkpoint_iter_370000.pth  --input-size 256 456

【.pth模型转换为.onnx模型】模型转换 英特尔神经计算棒 树莓派相关推荐

  1. 英特尔 ncs2_带有英特尔神经计算棒2 ncs2的图像分类管道

    英特尔 ncs2 Introduction 介绍 What we'll cover in this story: 我们将在这个故事中介绍: Installing OpenVINO toolkit fo ...

  2. pytorch2维模型转换为3维模型,并使用2维模型参数初始化3维模型——以resnext为例

    pytorch2维模型转换为3维模型--以resnext为例 2D网络结构转换到3D网络结构 Inflate 初始化3D网络的参数 完整结构主要分为2步骤 2维resnext网络结构 3维resnex ...

  3. STK1AW32SC安装linux,英特尔® 电脑棒支持的操作系统

    请参阅以下各主题,以了解英特尔® 电脑棒支持的操作系统.对未列出的操作系统,没有可用的驱动程序. 单击 或主题以了解详细信息:英特尔® 电脑棒 STK2mv64CC 和 STK2m364CC工厂安装的 ...

  4. 【TensorRT】PyTorch模型转换为ONNX及TensorRT模型

    文章目录 1. PyTorch模型转TensorRT模型流程 2. PyTorch模型转ONNX模型 3. ONNX模型转TensorRT模型 3.1 TensorRT安装 3.2 将ONNX模型转换 ...

  5. pytorch训练的pt模型转换为onnx(nn.DataParallel()、model、model.state_dict())

    pt转onnx流程与常见问题 pt转onnx流程 pt转onnx流程 1.读取pt模型文件,文件既可以是torch.save(model,path)整体保存的模型,也可以是保存的字典文件. // An ...

  6. 使用onnx包将pth文件转换为onnx文件

    本文对比一下两种pth文件转为onnx的区别以及onnx文件在NETRON中的图 只有参数的pth文件:cat_dog.pth 既有参数又有模型结构的pth文件:cat_dog_model_args. ...

  7. pytorch导出onnx格式模型时,不固定输入输出维度

    Pytorch模型转换为onnx格式模型后,模型的输入.输出维度跟转换模型时,用的dummy_input的维度有关系,属于固定尺寸的输入与输出.可以采用以下代码修改onnx模型的输入输出维度: imp ...

  8. 英特尔AIDC2018:神经计算棒二代从天而降,软硬生态合作圈尽露锋芒

    允中 发自 国贸大酒店 量子位 报道 | 公众号 QbitAI 浩浩荡荡开了一天半的英特尔人工智能大会(AIDC 2018)刚刚结束.在国贸大酒店三层的大宴会厅里,俨然有地主姿态的英特尔在几场演讲中秀 ...

  9. 边缘AI硬件谁更能打?测评:谷歌Coral USB加速器与英特尔NCS 2

    随着人工智能(AI)和机器学习(ML)逐渐从科幻小说中走向现实生活,我们现在需要一种快速便捷的方式来对这种类型的系统进行原型设计.尽管台式计算机也可以足以满足AI / ML的运行要求,甚至Raspbe ...

最新文章

  1. Tensorflow中的mnist例子
  2. 谷歌翻译无法连接网络_Windows无法连接网络,这几招教你解决
  3. 【设计模式】装饰者模式 ( 概念 | 适用场景 | 优缺点 | 与继承对比 | 定义流程 | 运行机制 | 案例分析 )
  4. 一个机械系毕业生的感言
  5. 【CentOS 7】 yum源安装mysql5.6
  6. 小编带你了解oracle使用索引和不使用索引性能分析
  7. JQuery选择器中的子元素选择器
  8. github上的优秀项目和开发环境配置【转http://www.cnblogs.com/2018/archive/2012/11/09/2763119.html】...
  9. 从土地利用规划到国土空间规划的一些思考
  10. linux 进程 转存储,Linux memory management——(进程虚存空间的管理)(转)
  11. Programming Ruby学习笔记一
  12. 云计算之openstack(N版)neutron网络服务最佳实践
  13. 谷歌生物医学专用翻译_【小虎聊干货】八大翻译软件大揭秘,告诉你科研翻译的正确打开方式...
  14. Aircrack-ng破解WEP
  15. When Work Becomes a Game
  16. 「高级java工程师」常见面试题及其答案(持续更新)
  17. redis未授权访问
  18. Prometheus由于时间不同步导致数据不显示
  19. 19c打补丁简易步骤
  20. [论文阅读笔记45]ChineseBLUE[MC-BERT]

热门文章

  1. SLAM从入门到入土:TF转换中,odom与base_footprint没有连接上。
  2. 2020上海交通大学考研专业课之DHCP
  3. 用selenium给我的flask商品中心服务整点样例数据
  4. 带相机PLC1200 SCL梯形图混编立体库机器人码垛机伺服视觉程序 包括2台西门子PLC1215程序和2台西门子触摸屏TP700程序
  5. 2021全球工业互联网大会 | 芯讯通5G旗舰模组惊艳亮相华为展台
  6. 非常罕见的真功夫--少林vs跆拳道
  7. Android RecyclerView禁止滑动
  8. 数据库三四级备考经验分享——操作系统原理知识点篇
  9. element-ui el-table表格出现抖动闪动问题的解决
  10. 东西方孝敬父母的不同方式