【RT-DETR实战】098、Web端部署实战:当RT-DETR遇上TensorFlow.js的坑与解法
上周三深夜,调试间里只剩下主机风扇的低鸣。浏览器控制台里赫然抛出一行错误:Uncaught (in inference): Input tensor is expected to be of type float32, but got int32。
这已经是RT-DETR模型转换到Web端部署时遇到的第七个类型兼容性问题。原本在PyTorch下运行流畅的目标检测模型,一旦进入浏览器环境,各种隐式类型转换和内存对齐问题便接踵而至。
今天我们就来聊聊,如何让这个高性能的实时检测器在Web端真正“跑起来”。
模型转换的第一道坎:ONNX导出陷阱
直接从PyTorch导出RT-DETR的ONNX模型时,最容易栽在动态轴上。很多工程师习惯性使用dynamic_axes参数保留动态批处理维度,但在Web端推理时,TensorFlow.js对动态形状的支持并不完善。建议在导出时固定输入尺寸:
# 错误示范:这样导出的模型在Web端大概率报shape错误torch.onnx.export(model,dummy_input