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)
pip install <tensorrt_install_dir> /python/tensorrt-7.xxx-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)転送ステーション、アルゴリズムは異なるフレームワーク間で転送されます。例:テンソルフローがモバイル端末にデプロイされる必要があり、以前にカフェに変換されたため、時間がかかります。


1.実際のアルゴリズムの展開。ターゲットがGPUの場合、ONNX + TensorRTを使用することが最も成熟した最適化されたソリューションであることは間違いありません。ターゲットがいくつかの組み込みチップである場合、MNNを使用すると、onnxを介してCPU組み込み側で高速推論を簡単に実現することもできます。

2. ONNXとTensorRTは非常に優れているので、それらを使用してみませんか?なぜあなたはまだPythonで醜い推論コードを書いているのですか?理由も非常に単純です。

始めるのは一般の人がC ++で遊ぶには難しすぎます。
モデルの各レイヤーの入力と出力を理解するだけでなく、少なくともそれに精通しているTensorRTAPIを理解する必要があります。

3.Manaaiオープンソース教育http://manaai.cn

おすすめ

転載: blog.csdn.net/qq_41834780/article/details/106361600