參考文鍊:如何檢視Tensorflow SavedModel格式模型的資訊;
參考:summary方法--小酒窩的部落格;
參考:tensorflow中輸出參數的方法--詳細;
tensorflow生成的pb圖,netron嫌棄太大打不開, 是以需要借助于tensorboard檢視工具;
0.檢視模型的Signature簽名
這裡的簽名,并非是為了保證模型不被修改的那種電子簽名。我的了解是類似于程式設計語言中子產品的輸入輸出資訊,比如函數名,輸入參數類型,輸出參數類型等等。我們以《Tensorflow SavedModel模型的儲存與加載》裡的代碼為例,從語句:
signature = predict_signature_def(inputs={'myInput': x},
outputs={'myOutput': y})
我們可以看到模型的輸入名為myInput,輸出名為myOutput。如果我們沒有源碼呢?
Tensorflow提供了一個工具,如果你下載下傳了Tensorflow的源碼,可以找到這樣一個檔案,./tensorflow/python/tools/saved_model_cli.py,你可以加上-h參數檢視該腳本的幫助資訊:
command:
python $TENSORFLOW_DIR/tensorflow/python/tools/saved_model_cli.py show --dir ./model/ --all
1.使用summary
def load_pb_kera(self,pb_file_path):
from tensorflow.python.platform import gfile
sess = tf.Session()
#with gfile.FastGFile(pb_file_path + 'model.pb', 'rb') as f:
with gfile.FastGFile(pb_file_path, 'rb') as f:
graph_def = tf.GraphDef()
graph_def.ParseFromString(f.read())
sess.graph.as_default()
tf.import_graph_def(graph_def, name='') # 導入計算圖
# 需要有一個初始化的過程
#sess.run(tf.global_variables_initializer())
init = tf.global_variables_initializer()
sess.run(init)
#tf.summary.
LOGDIR = './logdir'
train_writer = tf.summary.FileWriter(LOGDIR)
train_writer.add_graph(sess.graph)
train_writer.flush()
train_writer.close()
summary寫入工程檔案的"./logdir"目錄下,生成諸如:events.out.tfevents.1557229671.wishchin-MS-1604 檔案
進入工程目錄,
bash:
$ tensorboard --logdir ./logdir
啟動了tensorboard服務
2.在浏覽器中檢視結構
打開chorme浏覽器,在位址欄輸入:http://localhost:6006; 個人建議使用火狐.
即可完成可視化

檢視得MaskRCNN 模型
frozen_inference_graph_incepV2.pb
的輸入參數為:
input_image
Operation: Placeholder
Attributes (2)
dtype {"type":"DT_FLOAT"}
shape {"shape":{"dim":[{"size":-1},{"size":224},{"size":224},{"size":3}]}}
Inputs (0)
Outputs (1)
bbn_stage1_block1_conv/convolution?×224×224×3
輸入節點在最下面的資料流的起點位置....