為了將model提供其他應用程式做使用 目標 我會將keras 轉換成 tensorflow 的 pb檔是為了在tensorRT中建置model,在tensorRT中需要再將.pb檔轉成.uff,才能提供給TensorRT使用,因為tensorRT支援的關係,目前需要在Linux的作業系統之下才能將.pb檔轉成.uff檔。 概要: Keras framework提供將model儲存成.h5檔的function,其中的內容包含自訂的 neural network 的graph,與訓練之後的參數(weights),也可以單獨儲存weights,如果只有保留weights則需要在Tensorflow中重新建立graph,並將weight帶入,但這方法非常沒有效率。 於是將訓練好的model freezing,不能再更改weights,也就是不能在訓練,並且將單獨儲存的weights(.ckpt檔.meta檔)重建出graph,最後輸出.pb。 需求: 1. 安裝keras、tensorflow 2. TensorBoard(要用來查詢output的名稱) 實作: 1.將import 的來源要改成 tensorflow.keras ex. from keras import Conv2D ->tensorflow.keras.layers import Convolution2D def freeze_graph(model_dir, output_node_names): """Extract the sub graph defined by the output nodes and convert all its variables into constant Args: model_dir: the root folder containing the checkpoint state file output_node_names: a string, containing all the output node's names, ...
留言
張貼留言