Tensorflow 合并通道及加載子模型的方法
最近在使用Tensorflow 實(shí)現(xiàn)DNN網(wǎng)絡(luò)時(shí),遇到一些問題。目前網(wǎng)上關(guān)于Tensorflow的資料還比較少,現(xiàn)把問題和解決方法寫出來,僅供參考。
(1)將兩個(gè)子模型的輸出合并到一個(gè)通道,例如同時(shí)連接到一個(gè)全連接層如圖

合并方法為 tf.concat()函數(shù)。此函數(shù)需要兩個(gè)個(gè)參數(shù) concat(0或1,[合并節(jié)點(diǎn)1,合并節(jié)點(diǎn)2] )。0 或 1 代表節(jié)點(diǎn)合并的方式:0 代表合并后列相同,行增加;1 代表合并后行相同,列增加。
上圖所示合并方法為: X_20 = tf.concat(1, [X_top, X_down]);
(2)加載預(yù)訓(xùn)練好模型的部分參數(shù)。例如訓(xùn)練完成了一個(gè)五層網(wǎng)絡(luò),現(xiàn)在需要訓(xùn)練好一個(gè)七層網(wǎng)絡(luò),使用已訓(xùn)練好的五層網(wǎng)絡(luò)參數(shù)初始化七層網(wǎng)絡(luò)的前五層。
首先,五層網(wǎng)絡(luò)保存模型時(shí)的參數(shù)變量名要和七層網(wǎng)絡(luò)的需要初始化的參數(shù)變量名保持一致。
然后,定義加載指定變量名的 tf.train.Saver()。
例如:

Saver在restore模型時(shí)就會(huì)只加載 W_fc1_I, W_fc2_I, b_fc1_I, b_fc2_I 這四個(gè)參數(shù),并且初始化當(dāng)前模型中變量名相同的變量。需要注意的是,其他參數(shù)也是需要初始化的,一種避免遺漏初始化變量的方法是首先使用 initialize_all_variables() 函數(shù)對所有參數(shù)進(jìn)行初始化之后再調(diào)用 restore 函數(shù)初始化需要的部分參數(shù)。
此方法只是其中一種解決方法,僅供參考。
以上這篇Tensorflow 合并通道及加載子模型的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
opencv實(shí)踐項(xiàng)目之圖像拼接詳細(xì)步驟
OpenCV的應(yīng)用領(lǐng)域非常廣泛,包括圖像拼接、圖像降噪、產(chǎn)品質(zhì)檢、人機(jī)交互、人臉識別、動(dòng)作識別、動(dòng)作跟蹤、無人駕駛等,下面這篇文章主要給大家介紹了關(guān)于opencv實(shí)踐項(xiàng)目之圖像拼接的相關(guān)資料,需要的朋友可以參考下2023-05-05
tensorflow實(shí)現(xiàn)KNN識別MNIST
這篇文章主要為大家詳細(xì)介紹了tensorflow實(shí)現(xiàn)KNN識別MNIST,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03
詳談python中subprocess shell=False與shell=True的區(qū)別
這篇文章主要介紹了詳談python中subprocess shell=False與shell=True的區(qū)別說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04
python使用OS模塊操作系統(tǒng)接口及常用功能詳解
os是?Python?標(biāo)準(zhǔn)庫中的一個(gè)模塊,提供了與操作系統(tǒng)交互的功能,在本節(jié)中,我們將介紹os模塊的一些常用功能,并通過實(shí)例代碼詳細(xì)講解每個(gè)知識點(diǎn)2023-06-06
如何使用python讀取Excel指定范圍并轉(zhuǎn)為數(shù)組
python處理數(shù)據(jù)文件的途徑有很多種,下面這篇文章主要給大家介紹了關(guān)于如何使用python讀取Excel指定范圍并轉(zhuǎn)為數(shù)組的相關(guān)資料,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11
Python實(shí)現(xiàn)封裝打包自己寫的代碼,被python import
這篇文章主要介紹了Python實(shí)現(xiàn)封裝打包自己寫的代碼,被python import,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07

