onnx的ngraph后端
ngraph-onnx的Python项目详细描述
nx上的ngraph![Build Status](https://warehouse-camo.cmh1.psfhosted.org/0621aff369f2968359752ca4dffe4826ee3f39bf/68747470733a2f2f7472617669732d63692e6f72672f4e657276616e6153797374656d732f6e67726170682d6f6e6e782e7376673f6272616e63683d6d6173746572)
onnx的ngraph后端。
此存储库包含使用Intel nGraph library作为后端运行ONNX模型的工具。
安装
按照我们的build说明从源代码在nx上安装ngraph。
用法示例
导入onnx模型
您可以从ONNX model zoo下载模型。例如resnet-50:
$ wget https://s3.amazonaws.com/download.onnx/models/opset_8/resnet50.tar.gz
$ tar -xzvf resnet50.tar.gz
使用以下python命令将下载的模型转换为nggraph模型:
# Import ONNX and load an ONNX file from disk>>>importonnx>>>onnx_protobuf=onnx.load('resnet50/model.onnx')# Convert ONNX model to an ngraph model>>>fromngraph_onnx.onnx_importer.importerimportimport_onnx_model>>>ng_function=import_onnx_model(onnx_protobuf)# The importer returns a list of ngraph models for every ONNX graph output:>>>print(ng_function)<Function:'resnet50'([1,1000])>
这将创建一个nggraphFunction
对象,该对象可用于在所选后端上执行计算。
运行计算
导入onnx模型后,您将拥有一个ngraphFunction
对象。
现在可以创建nggraphRuntime
后端,并使用它将Function
编译为后端特定的Computation
对象。
最后,可以使用输入数据调用创建的Computation
对象来执行模型。
# Using an ngraph runtime (CPU backend) create a callable computation object>>>importngraphasng>>>runtime=ng.runtime(backend_name='CPU')>>>resnet_on_cpu=runtime.computation(ng_function)# Load an image (or create a mock as in this example)>>>importnumpyasnp>>>picture=np.ones([1,3,224,224],dtype=np.float32)# Run computation on the picture:>>>resnet_on_cpu(picture)[array([[2.16105007e-04,5.58412226e-04,9.70510227e-05,5.76671446e-05,7.45318757e-05,4.80892748e-04,5.67404088e-04,9.48728994e-05,...