簡體   English   中英

TensorFlow的checkpoint文件大小與參數個數的關系

[英]Relation between the size of TensorFlow's checkpoint file and number of parameters

我想知道TensorFlow檢查點文件的大小與模型參數數量之間的關系。

我有一個包含1.8萬個參數的模型,它應該需要大約7 MB 的內存(假設(4 * 1.8 * 10^6) / 1024^2 )。 但是,保存的檢查點顯然更大

model-5000.data-00000-of-00001   15MB
model-5000.index  15K

在 Caffe 中,4 的分數對於caffemodel似乎總是正確的。

您是否使用了具有動量的優化器? 這將使保存的參數數量增加一倍(每個參數都有一個相應的動量參數)。 如果您使用 Adam,由於平方梯度估計器,保存的參數數量實際上將增加三倍。 其他優化器會以不同的方式變化。

您可以手動檢查檢查點以查看正在存儲哪些變量。

我會說檢查點文件不是100%可比.caffemodel文件。 除了模型參數外,它將包含更多內容,例如,加載數據節點,權重初始化程序,保護程序節點等。參數也將另存為可訓練的變量,這會占用更多空間。

為了獲得與caffe的.caffemodel類似的東西,您需要將變量轉換為常量(稱為凍結圖),然后將圖另存為二進制原型文件(.pb)。 這樣做將刪除圖中所有不必要的節點。

要轉換為.pb,您可以按照以下步驟進行調整:

 output_graph_def = tf.graph_util.convert_variables_to_constants(
        sess,                       # The session is used to retrieve the weights
        sess.graph_def,             # The graph_def is used to retrieve the nodes 
        output_node_names           # The output node name
    ) 

    # Finally we serialize and dump the output graph to the filesystem
    with open('mode.pb', 'wb') as f:
        f.write(output_graph_def.SerializeToString())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM