MXNET部署TensorRT檢查OP是否存在

  MXNET模型進行部署時可以使用TensorRT,其過程通常爲將MXNET模型轉換爲ONNX,再通過TensorRT的ONNX解釋器轉換爲TensorRT的序列化文件。但此過程中,MXNET的OP不一定可以轉換爲ONNX的結果,而ONNX的OP也只有部分可以在TensorRT中實現。

TensorRT支持操作

  可參照TensorRT官方文檔,這裏面除了介紹支持的OP操作外,還有關於支持的平臺和支持int8壓縮的層等信息。
TensorRT支持操作

  可以看到,由於ONNX開源,應該可以找到通過重新編譯添加支持的操作,但未找到添加plugin的說明,從issues上看有人提這個問題,但目前沒有得到回覆。

ONNX支持操作

  ONNX支持的操作可以在github的ONNX項目中查看,Operators.md中寫明瞭支持的操作及其說明。
  按照TensorRT 4 基本介紹及TensorFlow模型轉化Uff格式導入(二)的說法,ONNX是不支持自定義層的。

MXNET支持操作

  MXNET支持的操作可以在MXNET官網NDArray API中查看,也寫命令支持的操作及其說明。
  MXNET實際可以轉換爲ONNX的操作可以在githubpython/mxnet/contrib/onnx/mx2onnx/_op_translations.py中查看,需要注意的是這裏面出現的操作只能證明是通過master分支編譯的版本可以支持,而自己電腦中安裝的版本需要在python路徑相應位置下查看。比如master分支的作爲1.5.0未發佈版,新增了對Deconvolution等操作的支持,而當前發佈的到1.4.1不支持這些操作,如果只是臨時轉換模型,可以將master分支下的contrib/onnx整體替換自己python版本的文件。

查找問題解答

  MXNET轉TensorRT遇到問題是很正常的事,可以多去github的issue和相關論壇查找下:
  1、MXNET的issue
  2、MXNET的論壇(有時候可能打不開…)
  3、ONNX的issue
  4、TensorRT的論壇

  

  

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章