开源一年多的模型交换格式ONNX,已经一

北京白癜风医院哪个比较好 https://wapyyk.39.net/hospital/89ac7_comments.html

机器之心原创

作者:思源

近日,微软亚洲研究院和华为举办了ONNX合作伙伴研讨会,这是ONNX开源社区成立以来首次在中国举办的活动。在研讨会中,微软、Facebook、华为和英特尔等的开发者介绍了他们在ONNX上的开源贡献及思考。

在过去的一年多中,ONNX这种「通用」的神经网络交换格式已经有了很长远的发展,用不同框架编写的模型可以在不同的平台中流通。在这次研讨会中,我们确切地感受到了这一点,因为开源社区围绕着ONNX介绍了很多优化工具和资源库。

微软上个月开源了ONNXRuntime,其专为ONNX格式的模型设计了高性能推理引擎。Facebook早两个月前开源了ONNXIFI,其为ONNX提供了用于框架集成的接口,即一组用于加载和执行ONNX计算图的跨平台API。更早一些,英特尔在今年3月份就开源nGraph,它能编译ONNX格式的模型,并在CPU或GPU等硬件加速模型的运行。

而到了昨天,微软又开源了ONNX.JS,它是一种在浏览器和Node.js上运行ONNX模型的JavaScript库。它部署的模型效率非常高,且能实现交互式的直观推理。该开源项目给出了图像分类的交互式演示,且在Chrome浏览器和CPU下比TensorFlow.JS快了近8倍,后文将详细介绍这一开源库。

当然除了这些开源工作,ONNX社区还有更多的实践,例如如何部署ONNX模型到边缘设备、如何维护一个包罗万象的ONNXModelZoo等。本文主要从什么是ONNX、怎样用ONNX,以及如何优化ONNX三方面看看ONNX是不是已经引领「框架间的江湖」了。

什么是ONNX

很多开发者在玩GitHub的时候都有这样「悲痛」的经历,好不容易找到令人眼前一亮的项目,然而发现它使用我们不熟悉的框架写成。其实我们会发现很多优秀的视觉模型是用Caffe写的,很多新的研究论文是用PyTorch写的,而更多的模型用TensorFlow写成。因此如果我们要测试它们就必须拥有对应的框架环境,但ONNX交换格式令我们在同一环境下测试不同模型有了依靠。

简而言之ONNX就是一种框架间的转换格式,例如我们用TensorFlow写的模型可以转换为ONNX格式,并在Caffe2环境下运行该模型。

项目


转载请注明:http://www.aierlanlan.com/rzdk/5180.html