首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ONNXRuntime half运行半浮动ONNX模型?

如何使用ONNXRuntime half运行半浮动ONNX模型?
EN

Stack Overflow用户
提问于 2020-04-28 11:16:30
回答 2查看 3.5K关注 0票数 2

由于C语言没有半浮点实现,那么如何向ONNXRuntime data发送数据呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-03 01:10:40

可能有一个从这里链接到的示例:https://github.com/microsoft/onnxruntime/issues/1173#issuecomment-501088662

您可以创建一个缓冲区来将输入数据写入使用CreateTensorAsOrtValue,并使用GetTensorMutableData访问OrtValue中的缓冲区。

ONNXRuntime正在使用特征将浮点数转换为您可以写入该缓冲区的16位值。

代码语言:javascript
复制
uint16_t floatToHalf(float f) {
  return Eigen::half_impl::float_to_half_rtne(f).x;
}

或者,您可以编辑模型以将一个从float32到float16的强制转换节点添加到float16,以便该模型以float32作为输入。

票数 1
EN

Stack Overflow用户

发布于 2020-04-28 12:51:16

C语言没有半浮点实现

是的,但是有语言扩展,您可以编写自己的库来处理数据。

因此,例如,在某些体系结构上,_Float16类型是由gcc支持的ISO/IEC 18661-3:2015定义的。

您可以编写或找一个图书馆来处理半浮点操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61478905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档