簡體   English   中英

在 tensorflow 中修改預訓練模型

[英]Modify pretrained model in tensorflow

我想知道如何對從 tensorflow 的元和檢查點文件加載的圖形進行更改,例如:

saver = tf.train.import_meta_graph('***.meta') saver.restore(sess,tf.train.latest_checkpoint('./'))

例如,在具有預訓練權重的現有圖中有old_layer1 -> old_layer2 我想插入一個然后它變成old_layer1 -> new_layer -> old_layer2 ,並且new_layer被隨機初始化,因為它沒有預訓練參數。 這里的答案說不可能,因為 tf 的圖只允許追加,這是真的嗎?

所以我想知道是否可以通過將預訓練層作為單個變量加載,並將預訓練權重分配為初始值並自己連接它們來解決這個問題,以便我可以在舊層之間添加新層。 但我不知道如何在代碼中做到這一點。

使用原始 tensorflow 執行此操作可能很復雜,因為 tf 圖不直接對層的結構進行編碼。 但是,如果您的模型是使用 tf.keras 構建的,則這相當簡單,因為加載 keras 模型也會加載其層結構。

暫無
暫無

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

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