ONNX
文章平均质量分 62
weixin_49795811
这个作者很懒,什么都没留下…
展开
-
Onnxruntime + c++实现滑动窗口预测
将这个非连续的张量传递给一个期望连续内存的函数(例如某些 ONNX 推理操作,ONNX Runtime 和其他推理引擎通常假设输入数据是连续的),ONNX 导出可能会遇到内存布局不一致的问题,导致推理阶段的数据不正确或效率低下。在部署onnxruntime的时候发现在对tensor进行slice 的时候,加不加contiguous()对结果的影响非常大。调用 .contiguous() 会确保张量以标准的内存布局(在 PyTorch 中是行优先顺序)存储在一个连续的内存块中。原创 2024-09-02 17:10:38 · 297 阅读 · 0 评论 -
ONNXruntime c++模型推理流程
ONNXruntime运行可以分为三个阶段:Session的构造模型加载和初始化运行模型推理流程Session构造构造阶段即创建一个InferenceSession对象。在python前端构建Session对象时,python端会调用C++中的InferenceSession类构造函数,得到一个InferenceSession对象。原创 2024-11-28 11:11:31 · 1150 阅读 · 0 评论 -
TenorRT优化与模型转换
精度校准——训练时由于梯度等对于计算精度要求较高,但是inference阶段可以利用精度较低的数据类型加速运算,降低模型的大小,例如FP16,int8,从而加速模型推理速度。层和张量融合——TensorRT中将多个层的操作合并为同一个层,这样就可以一定程度的减少kernel launches和内存读写。比如把主流神经网络的conv、BN、Relu三个层融合为了一个层;把维度相同的张运算组合成另一个大的张量运算。原创 2024-11-28 10:40:21 · 1185 阅读 · 0 评论 -
ONNX模型转换
转换一些网络会出现使用了onnx还没有实现的函数报错,可以修改相应源码。batch_size 设置为1可能会出报错。原创 2024-11-28 10:37:48 · 295 阅读 · 0 评论 -
ONNX学习笔记
ONNX使用的是Protobuf这个序列化数据结构去存储神经网络的权重信息。Protobuf是一种轻便高效的。原创 2024-09-12 17:07:23 · 362 阅读 · 0 评论
分享