tensorflow獲取預(yù)訓(xùn)練模型某層參數(shù)并賦值到當(dāng)前網(wǎng)絡(luò)指定層方式
已經(jīng)有了一個(gè)預(yù)訓(xùn)練的模型,我需要從其中取出某一層,把該層的weights和biases賦值到新的網(wǎng)絡(luò)結(jié)構(gòu)中,可以使用tensorflow中的pywrap_tensorflow(用來(lái)讀取預(yù)訓(xùn)練模型的參數(shù)值)結(jié)合Session.assign()進(jìn)行操作。
這種需求即預(yù)訓(xùn)練模型可能為單分支網(wǎng)絡(luò),當(dāng)前網(wǎng)絡(luò)為多分支,我需要把單分支A復(fù)用到到多個(gè)分支去(B,C,D)。
先導(dǎo)入對(duì)應(yīng)的工具包
from tensorflow.python import pywrap_tensorflow
接下來(lái)的操作在一個(gè)tf.Session中進(jìn)行
reader = pywrap_tensorflow.NewCheckpointReader(pre_train_model_path) # 獲取當(dāng)前圖可訓(xùn)練變量 trainable_variables = tf.trainable_variables() # 需要賦值的當(dāng)前網(wǎng)絡(luò)層變量,這里只是隨便起的名字。 restore_v_target_name = "fc_target" # 需要的預(yù)訓(xùn)練模型中的某層的名字 restore_v_source_name = "fc_source" for v in trainable_variables: if restore_v_target_name == v.name: # 回復(fù)weights和biases sess.run( tf.assign(v, reader.get_tensor(restore_v_source_name + "/weights"))) if "weights" in v.name else sess.run( tf.assign(v, reader.get_tensor(restore_v_source_name + "/biases")))
以上這篇tensorflow獲取預(yù)訓(xùn)練模型某層參數(shù)并賦值到當(dāng)前網(wǎng)絡(luò)指定層方式就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
淺談Django 頁(yè)面緩存的cache_key是如何生成的
這篇文章主要介紹了Django 頁(yè)面緩存的cache_key是如何生成的,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03使用python將圖片格式轉(zhuǎn)換為ico格式的示例
今天小編就為大家分享一篇使用python將圖片格式轉(zhuǎn)換為ico格式的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10PyTorch搭建雙向LSTM實(shí)現(xiàn)時(shí)間序列負(fù)荷預(yù)測(cè)
這篇文章主要為大家介紹了PyTorch搭建雙向LSTM實(shí)現(xiàn)時(shí)間序列負(fù)荷預(yù)測(cè),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05利用Python多處理庫(kù)處理3D數(shù)據(jù)詳解
本文將介紹處理大量數(shù)據(jù)時(shí)非常方便的工具,例如tqdm與 multiprocessing?imap??一起使用、并行處理檔案、繪制和處理3D數(shù)據(jù)等,感興趣的小伙伴可以了解一下2021-12-12Pycharm github配置實(shí)現(xiàn)過(guò)程圖解
這篇文章主要介紹了Pycharm github配置實(shí)現(xiàn)過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10