在tensorflow實(shí)現(xiàn)直接讀取網(wǎng)絡(luò)的參數(shù)(weight and bias)的值
訓(xùn)練好了一個(gè)網(wǎng)絡(luò),想要查看網(wǎng)絡(luò)里面參數(shù)是否經(jīng)過(guò)BP算法優(yōu)化過(guò),可以直接讀取網(wǎng)絡(luò)里面的參數(shù),如果一直是隨機(jī)初始化的值,則證明訓(xùn)練代碼有問(wèn)題,需要改。
下面介紹如何直接讀取網(wǎng)絡(luò)的weight 和 bias。
(1) 獲取參數(shù)的變量名??梢允褂靡幌潞瘮?shù)獲取變量名:
def vars_generate1(self,scope_name_var): return [var for var in tf.global_variables() if scope_name_var in var.name ]
輸入你想要讀取的變量的一部分的名稱(chēng)(scope_name_var),然后通過(guò)這個(gè)函數(shù)返回一個(gè)List,里面是所有含有這個(gè)名稱(chēng)的變量。
(2) 利用session讀取變量的值:
def get_weight(self): full_connect_variable = self.vars_generate1("pred_network/full_connect/l5_conv") with tf.Session() as sess: sess.run(tf.global_variables_initializer()) ##一定要先初始化變量 print(sess.run(full_connect_variable[0]))
之后如果想要看參數(shù)隨著訓(xùn)練的變化,你可以將這些參數(shù)保存到一個(gè)txt文件里面查看。
補(bǔ)充知識(shí):如何在 PyTorch 中設(shè)定學(xué)習(xí)率衰減(learning rate decay)
很多時(shí)候我們要對(duì)學(xué)習(xí)率(learning rate)進(jìn)行衰減,下面的代碼示范了如何每30個(gè)epoch按10%的速率衰減:
def adjust_learning_rate(optimizer, epoch): """Sets the learning rate to the initial LR decayed by 10 every 30 epochs""" lr = args.lr * (0.1 ** (epoch // 30)) for param_group in optimizer.param_groups: param_group['lr'] = lr
什么是param_groups?
optimizer通過(guò)param_group來(lái)管理參數(shù)組.param_group中保存了參數(shù)組及其對(duì)應(yīng)的學(xué)習(xí)率,動(dòng)量等等.所以我們可以通過(guò)更改param_group[‘lr']的值來(lái)更改對(duì)應(yīng)參數(shù)組的學(xué)習(xí)率。
# 有兩個(gè)`param_group`即,len(optim.param_groups)==2 optim.SGD([ {'params': model.base.parameters()}, {'params': model.classifier.parameters(), 'lr': 1e-3} ], lr=1e-2, momentum=0.9) #一個(gè)參數(shù)組 optim.SGD(model.parameters(), lr=1e-2, momentum=.9)
以上這篇在tensorflow實(shí)現(xiàn)直接讀取網(wǎng)絡(luò)的參數(shù)(weight and bias)的值就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決Python3 控制臺(tái)輸出InsecureRequestWarning問(wèn)題
這篇文章主要介紹了解決Python3 控制臺(tái)輸出InsecureRequestWarning的問(wèn)題 ,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07Python 中對(duì) XML 文件的編碼轉(zhuǎn)換問(wèn)題
這篇文章主要介紹了Python 中對(duì) XML 文件的編碼轉(zhuǎn)換問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03PyQt5連接MySQL及QMYSQL driver not loaded錯(cuò)誤解決
這篇文章主要介紹了PyQt5連接MySQL及QMYSQL driver not loaded錯(cuò)誤解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04python數(shù)據(jù)結(jié)構(gòu)之圖深度優(yōu)先和廣度優(yōu)先實(shí)例詳解
這篇文章主要介紹了python數(shù)據(jù)結(jié)構(gòu)之圖深度優(yōu)先和廣度優(yōu)先,較為詳細(xì)的分析了深度優(yōu)先和廣度優(yōu)先算法的概念與原理,并給出了完整實(shí)現(xiàn)算法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07在Django框架中編寫(xiě)Context處理器的方法
這篇文章主要介紹了在Django框架中編寫(xiě)Context處理器的方法,Django是重多高人氣Python框架中最為著名的一個(gè),需要的朋友可以參考下2015-07-07Python實(shí)現(xiàn)火柴人的設(shè)計(jì)與實(shí)現(xiàn)
火柴人(Stick Figure)是一種極簡(jiǎn)風(fēng)格的圖形,通常由簡(jiǎn)單的線段和圓圈組成,卻能生動(dòng)地表達(dá)人物的姿態(tài)和動(dòng)作,本文旨在介紹如何使用Python實(shí)現(xiàn)火柴人的設(shè)計(jì)與繪制,通過(guò)編程的方式,讓讀者了解火柴人背后的基本原理和實(shí)現(xiàn)方法,需要的朋友可以參考下2024-10-10