tensorflow2將ckpt權重模型轉成pd模型再轉成onnx


之前由於訓練模型時將使用的是model.save_weights保存的ckpt模型。為了做部署所以要將ckpt轉成pd模型。
一般保存為ckpt模型后有以下幾個文件

checkpoint文件表明有哪些文件
.ckpt.data 權重文件
可以還有一個.meta文件,這個是網絡結構文件 

網上一大片,各種先構件圖,然后跑一下,然后在保存文件的操作。其實在tensorflow2中並沒必要。
所謂的構建圖然后跑一下的操作的邏輯,其實就是構建網絡結構和build或者fit的操作。

我這里因為網絡是自己設計的所以,我就沒有做特殊的操作

重點1

如果是訓練的時候,構建網絡不需要設置輸入的shape,后面可以通過build或者fit來設置。
但是如果是用ckpt轉pd,一定要設置。
就是設置這個參數,輸入shape根據具體的設置

self._set_inputs(tf.TensorSpec([None,224,224,3],tf.float32,name='inputs'))

然后就是直接保存就很好了。
默認save方法保存的模型就是pd模型。

ETNetwork.save("./data/pb")#這里./data/pb是我保存的路徑

pd轉成onnx

pip install tf2onnx
python -m tf2onnx.convert --saved-model .\data\pb --output .\data\onnx\etnet.onnx --opset 7


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM