onnx

1、keras—onnx
方法就是:

import keras2onnx
keras2onnx.convert_keras

# convert to onnx model
onnx_model = keras2onnx.convert_keras(model, model.name)

temp_model_file = 'model.onnx'
keras2onnx.save_model(onnx_model, temp_model_file)
sess = onnxruntime.InferenceSession(temp_model_file)

2、onnx-TensorRT
1)Install
pip install <tensorrt_install_dir>/python/tensorrt-7.x.x.x-cp27-none-linux_x86_64.whl
pip install onnx==1.6.0

2)  use
import onnx
import onnx_tensorrt.backend as backend
import numpy as np

model = onnx.load("/path/to/model.onnx")
engine = backend.prepare(model, device='CUDA:1')
input_data = np.random.random(size=(32, 3, 224, 224)).astype(np.float32)
output_data = engine.run(input_data)[0]
print(output_data)
print(output_data.shape)

3、ONNX
1) 中转站,算法在不同框架间转移 比如:tensorflow想部署到移动端,之前转成caffe,耗时


1、真正落地的算法部署,毫无疑问,假如你的target是GPU,采用ONNX+TensorRT应该是目前最成熟、最优化的方案。假如你的target是一些嵌入式芯片,那么采用MNN也是可以通过onnx轻松实现CPU嵌入式端快速推理的。

2、既然ONNX和TensorRT这么好,为什么都不用呢?为什么都还在用Python写难看的推理的代码呢?原因也很简单:

入门太难,C++一般人玩不来;
既要懂模型的每一层输入输出,又要懂TensorRT的API,至少要很熟悉。

3、神力开源教学 http://manaai.cn

猜你喜欢

转载自blog.csdn.net/qq_41834780/article/details/106361600