由于 C 语言没有半浮点实现,如何将数据发送到 ONNXRuntime C API?
问问题
2232 次
2 回答
1
可能有一个您可以从此处链接的示例:https ://github.com/microsoft/onnxruntime/issues/1173#issuecomment-501088662
您可以使用 CreateTensorAsOrtValue 创建缓冲区以将输入数据写入其中,并使用 GetTensorMutableData 访问 OrtValue 中的缓冲区。
ONNXRuntime 使用 Eigen 将浮点数转换为可以写入该缓冲区的 16 位值。
uint16_t floatToHalf(float f) {
return Eigen::half_impl::float_to_half_rtne(f).x;
}
或者,您可以编辑模型以将 Cast 节点从 float32 添加到 float16,以便模型将 float32 作为输入。
于 2020-06-03T01:10:40.553 回答