使用自己訓練的模型

您好,我們現在有自己訓練好的模型,模型為checkpoint檔,要轉成onnx檔,想請問要如何確定onnx檔是正確的?

有嘗試過用github上的 “ python -m tf2onnx.convert --checkpoint tensorflow-model-meta-file-path --output model.onnx --inputs input0:0,input1:0 --outputs output0:0” 指令,但不知道如何得知inputs and ouputs nodes of the model,網路上查過可以用tensorboard去查看,但我們跑tensorboard都跑不出來。想請問還有什麼辦法能夠得知inputs and outputs nodes og the model,或是還有什麼方法能夠從checkpoint檔轉成onnx檔?謝謝。

附上github的連結

文內所提及的指令


Comments

  • Hello,耐能的編譯器因為要考慮到加速棒硬體的支援度與執行的效率,所以並非任意的onnx模型都可以支援,在轉換成onnx時還請透過耐能所提供的converter來做轉換 http://doc.kneron.com/docs/#toolchain/manual/#3-onnx-workflow

    以tensorflow來說,耐能的converter僅支援frozen的.pb格式,還請先將你的check point檔輸出成*.pb後再透過converter做轉換

  • 我們用frozen的.pb格式,參照了耐能的github指令,但有錯誤,顯示如下,請問是什麼問題?


  • edited August 2021

    提供的訊息內似乎沒有看到Error的部分?

    不過,即便使用frozen的pb格式,模型本身也還是需要符合耐能加速棒的規範,還請先檢查下面三點是否都有符合

    1. tensorflow version 1.x,目前尚未支援2.0以上的版本
    2. 因為是在加速棒中執行,模型的輸入解析度必須明確訂定,如1x224x224x3,而不可為 1 x ? x ? x ?
    3. 各layer所使用的operator是否皆為KL520所支援的op,可參考下圖或至網頁章節2.3查看 http://doc.kneron.com/docs/#toolchain/manual/#2-toolchain-docker-overview


    若模型架構皆符合相關規範,卻還是發生錯誤的話,可提供完整的錯誤訊息以及模型檔案,我們這邊可以協助分析

  • 不好意思,下面這張才有正確擷取到error的部分。

    我們再檢查您提供的那三點,謝謝。

The discussion has been closed due to inactivity. To continue with the topic, please feel free to post a new discussion.