发布时间:2026/7/11 1:22:33
将 PyTorch 训练出的 PySlowFast(.pyth)模型转换为 ONNX 格式 将 PyTorch 训练出的 PySlowFast.pyth模型转换为 ONNX 格式的关键在于模型是双路径Dual-Pathway输入。因此在导出 ONNX 时我们需要构建一个包含两个 TensorSlow 路径和 Fast 路径的元组作为 dummy input虚拟输入。以下是完整的转换代码脚本importtorchimportnumpyasnp# 1. 定义与训练时完全一致的模型结构以标准的 SlowFast R50 为例defload_slowfast_model(checkpoint_path,num_classes10):# 使用 pytorchvideo 快速构建符合 SlowFast 架构的网络modeltorch.hub.load(facebookresearch/pytorchvideo,slowfast_r50,pretrainedFalse)# 修改分类头model.blocks[6].projtorch.nn.Linear(model.blocks[6].proj.in_features,num_classes)# 加载权重checkpointtorch.load(checkpoint_path,map_locationcpu)ifmodel_stateincheckpoint:model.load_state_dict(checkpoint[model_state])else:model.load_state_dict(checkpoint)model.eval()returnmodel# 2. 初始化模型CHECKPOINT_PATHcheckpoints/checkpoint_epoch_00050.pythNUM_CLASSES10# 替换为你的分类数modelload_slowfast_model(CHECKPOINT_PATH,num_classesNUM_CLASSES)# 3. 构造虚拟输入 (Dummy Input)# 假设输入视频为 32 帧采样率/结构对应# Slow 路径: 4 帧, 尺寸 256x256 (BatchSize1, 通道3)# Fast 路径: 32 帧, 尺寸 256x256 (BatchSize1, 通道3)batch_size1channels3height,width256,256dummy_slow_inputtorch.randn(batch_size,channels,4,height,width)dummy_fast_inputtorch.randn(batch_size,channels,32,height,width)# SlowFast 期望的输入是一个包含两个路经 Tensor 的列表或元组dummy_inputs(dummy_slow_input,dummy_fast_input)# 4. 执行 ONNX 导出onnx_output_pathslowfast_model.onnxprint(f正在转换模型并保存至:{onnx_output_path}...)torch.onnx.export(model,argsdummy_inputs,# 传入双路径虚拟输入fonnx_output_path,# 输出的 ONNX 文件路径export_paramsTrue,# 导出训练后的权重参数opset_version12,# 建议使用 opset 11 或 12对视频 3D 算子支持较好do_constant_foldingTrue,# 是否执行常量折叠优化input_names[slow_input,fast_input],# 指定输入节点的名称output_names[output],# 指定输出节点的名称dynamic_axes{# 支持动态 BatchSize可选slow_input:{0:batch_size},fast_input:{0:batch_size},output:{0:batch_size}})print(ONNX 模型转换成功)# 5. 验证 ONNX 模型有效性importonnx onnx_modelonnx.load(onnx_output_path)onnx.checker.check_model(onnx_model)print(ONNX 模型结构检查完毕未发现异常。) 关键踩坑与避雷指南3D 算子不兼容问题SlowFast 内部大量使用了 3D 卷积Conv3d和 3D 池化MaxPool3d。部分旧版本的 ONNX Opset 对其支持不佳。如果导出报错请尝试将opset_version提升至12、13或14。PyTorchVideo 依赖兼容性如果您在导出时遇到类似TracerWarning导致导出失败可以尝试使用官方的原版 PySlowFast 代码库中的slowfast/models/build.py来构建model而非pytorchvideo。推理时如何传参以 ONNX Runtime 为例在后续部署时由于设置了两个输入节点你需要将处理好的 Slow 路径和 Fast 路径 Tensor 分别作为字典的 Key 传给推理器importonnxruntimeasort ort_sessionort.InferenceSession(slowfast_model.onnx)# 准备好你的两个经过预处理的 numpy 数组outputsort_session.run([output],{slow_input:slow_tensor_np,fast_input:fast_tensor_np})

相关新闻

2026/7/11 1:22:33

协议之DASH介绍

DASH:Dynamic Adaptive Streaming over HTTP,基于 HTTP 的动态自适应码流标准,标准号 ISO/IEC 23009-1,由 MPEG 制定,2012 年正式发布。 与 HLS 类似,核心思想是将媒体内容切分为多个小的媒体片段&#xff…

2026/7/11 1:22:33

如何高效使用BiliDownloader:新手快速上手指南

如何高效使用BiliDownloader:新手快速上手指南 【免费下载链接】BiliDownloader BiliDownloader是一款界面精简,操作简单且高速下载的b站下载器 项目地址: https://gitcode.com/gh_mirrors/bi/BiliDownloader BiliDownloader是一款专为B站用户打造…

2026/7/11 2:22:35

数据库的“隐形守护者”:深度解析Oracle后台进程及其核心功能

数据库的“隐形守护者”:深度解析Oracle后台进程及其核心功能一、开篇奇想:Oracle实例如果是一个人,后台进程就是他的器官二、全景协作图:一条UPDATE语句背后的进程交响乐三、后台进程的本质定义:什么是后台进程&#…

2026/7/11 2:22:35

PIC18F25K80驱动EPT-14A4005P蜂鸣器的警报系统设计

1. 项目背景与核心需求在工业控制、安防系统和智能家居等领域,可靠的声音警报功能是保障安全的关键环节。这次我们要探讨的是如何利用EPT-14A4005P压电蜂鸣器和PIC18F25K80微控制器构建一个适应性强、声音清晰的警报系统。这个组合特别适合需要中高频警报声&#xf…

2026/7/11 2:22:35

NVIDIA Nemotron智能体开发实战:从多模态处理到企业级部署

1. 先搞清楚 Nemotron 到底解决了什么实际问题如果你正在开发 AI 智能体,特别是需要处理多模态输入、长上下文推理或企业级部署的场景,NVIDIA 这次发布的 Nemotron 开放数据集和配套工具值得重点关注。它不是又一个通用大模型,而是专门为智能…

2026/7/11 2:22:35

TB67H480FNG与PIC18F46K22在精密运动控制中的应用

1. 项目概述:TB67H480FNG与PIC18F46K22的黄金组合在工业自动化和精密运动控制领域,电机驱动器和微控制器的选型往往决定了整个系统的性能上限。TB67H480FNG作为东芝(现为佳能电子)推出的高性能直流电机驱动器IC,与Micr…

2026/7/11 2:22:35

LabVIEW 状态机架构:重构温度监控系统,实现 5 大功能模块化

LabVIEW状态机架构:重构温度监控系统的5大模块化实践在工业自动化领域,温度监控系统的可靠性和可维护性直接影响生产质量与设备安全。传统基于While循环的LabVIEW程序随着功能增加往往变得臃肿难维护——数据显示、报警逻辑、数据存储等代码混杂在一起&a…

2026/7/10 5:21:51

国内大模型选型与企业级落地实战指南

我不能提供任何关于访问境外网络信息的技术方案或变通方法。根据中国法律法规和网络管理要求,所有互联网服务必须遵守国家关于网络安全、数据安全和内容安全的规定。ChatGPT及其后续版本(如所谓“GPT-5”)是由境外机构研发的大语言模型&#…

2026/7/10 2:34:05

三步实战方案:高效获取智慧教育平台电子课本PDF的完整流程

三步实战方案:高效获取智慧教育平台电子课本PDF的完整流程 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本内容。 项目…

2026/7/10 6:36:15

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…