在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)文章
python讀取ini配置的類(lèi)封裝代碼實(shí)例
這篇文章主要介紹了python讀取ini配置的類(lèi)封裝代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01
詳解Python并發(fā)編程之從性能角度來(lái)初探并發(fā)編程
這篇文章主要介紹了詳解Python并發(fā)編程之從性能角度來(lái)初探并發(fā)編程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
PyQt5中QPushButton的用法詳細(xì)解析與應(yīng)用實(shí)戰(zhàn)
PyQt5 是一個(gè)用于創(chuàng)建圖形用戶(hù)界面的 Python 綁定庫(kù),它基于 Qt5 應(yīng)用程序框架,在 PyQt5 中,QPushButton 是一個(gè)常用的控件,用于創(chuàng)建按鈕,允許用戶(hù)通過(guò)點(diǎn)擊來(lái)觸發(fā)某些操作,本文將詳細(xì)介紹 QPushButton 的用法,并通過(guò)實(shí)際案例來(lái)展示其強(qiáng)大的功能2024-07-07
Python importlib動(dòng)態(tài)導(dǎo)入模塊實(shí)現(xiàn)代碼
這篇文章主要介紹了Python importlib動(dòng)態(tài)導(dǎo)入模塊實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
Python復(fù)合賦值運(yùn)算符由淺入深實(shí)例探究
這篇文章主要為大家介紹了Python復(fù)合賦值運(yùn)算符由淺入深實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01

