利用tensorboard可視化checkpoint模型文件參數分布


寫在前面:

      上周微調一個文本檢測模型seglink,將特征提取層進行凍結,只訓練分類回歸層,然而查看tensorboard發現里面有histogram顯示模型各個參數分布,看了目前這個訓練模型參數分布壓根就看不懂,很想知道我的預訓練模型的參數分布是怎么個情況,訓練了一天了,模型的參數分布較預訓練的模型參數有啥變化沒有,怎么辦呢?

利用tf.summary將模型參數分布在tensorboard可視化:

導入需要的庫  設置模型文件夾路徑

1 import TensorFlow as tf
2 from tensorflow.python import pywrap_tensorflow
model_dir="___"

定義可視化方法

1、獲取ckpt路徑,這里的路徑是checkpoint文件中的路徑(ckpt文件夾中包括:checkpoint文件,index,meta,data四個文件)

code:

ckpt=tf.train.get_checkpoint_state(model_dir)
ckpt_path=ckpt.model_checkpoint_path

 

2、讀取checkpoint 文件中模型的變量名和變量值

這里是使用get_variable_to_shape_map()獲取了一個[key:name of variable      value:the shape of variable]的list

code:

reader=pywrap_tensorflow.NewCheckpointReader(ckpt_path)
param_dict=reader.get_variable_to_shape_map()

 

3、開一個session,

code:

with tf.Session() as sess:
      validate_writer=tf.summary.FileWriter('./run')
      for key in param_dict:
            if(key.startwith('vgg')):
            vgg_summary=tf.summary.histogram(key,reader.get_tensor(key))
            merge_summary=tf.summary.merge([vgg_summary])#這里可以添加其他需要merge的summary項,如果只有一個summary也可以不用merge,
            test_summary=sess.run(merge_summary)
            validate_writer.add_summary(test_summary)

 

tf.summary.FileWriter(event_dir_path)#event_dir_path為事件日志文件夾,運行程序之后會在該指定的文件夾中生產events文件。運行TensorFlow計算后,會將各類數據匯總記錄進該日志文件,tensorboard會讀取這些數據進行解析並生成數據可視化的web頁面。

key.startwith('vgg')在param_dict字典中提取以vgg開頭的key,並獲取相關tensor以histogram的形式匯總

merge_summary=tf.summary.merge([.....])合並指定數據匯總

test_summary=sess.run(merge_summary)執行一步run,得到merge_summary,並將該summary

validate_writer.add_summary(test_summary)#將當前一步run得到的summary加入之前設置的validate_writer

附上summary示意圖幫助理解,圖片引用自CSDN網址:https://blog.csdn.net/hongxue8888/article/details/78610305

 

 

最后還要關閉writer

validate_writer.close()

運行代碼之后,執行如下指令:

tensorboard --logdir="./run"#就是之前設置的events日志文件夾的路徑

然后根據執行結果上的網址,打開瀏覽器即可觀察模型參數分部情況:

附一張參數分布圖,具體怎么研究比較這個直方圖,接下去再研究吧~

小白一枚,進步很慢,希望各路大神道友指教和批評~~~~

 

 

 

 

 

 

 

 

 

 

              


免責聲明!

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



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