在tensorflow實現(xiàn)直接讀取網(wǎng)絡(luò)的參數(shù)(weight and bias)的值
訓(xùn)練好了一個網(wǎng)絡(luò),想要查看網(wǎng)絡(luò)里面參數(shù)是否經(jīng)過BP算法優(yōu)化過,可以直接讀取網(wǎng)絡(luò)里面的參數(shù),如果一直是隨機(jī)初始化的值,則證明訓(xù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 ]
輸入你想要讀取的變量的一部分的名稱(scope_name_var),然后通過這個函數(shù)返回一個List,里面是所有含有這個名稱的變量。
(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ù)保存到一個txt文件里面查看。
補(bǔ)充知識:如何在 PyTorch 中設(shè)定學(xué)習(xí)率衰減(learning rate decay)

很多時候我們要對學(xué)習(xí)率(learning rate)進(jìn)行衰減,下面的代碼示范了如何每30個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通過param_group來管理參數(shù)組.param_group中保存了參數(shù)組及其對應(yīng)的學(xué)習(xí)率,動量等等.所以我們可以通過更改param_group[‘lr']的值來更改對應(yīng)參數(shù)組的學(xué)習(xí)率。
# 有兩個`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)
#一個參數(shù)組
optim.SGD(model.parameters(), lr=1e-2, momentum=.9)
以上這篇在tensorflow實現(xiàn)直接讀取網(wǎng)絡(luò)的參數(shù)(weight and bias)的值就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解Python并發(fā)編程之從性能角度來初探并發(fā)編程
這篇文章主要介紹了詳解Python并發(fā)編程之從性能角度來初探并發(fā)編程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
PyQt5中QPushButton的用法詳細(xì)解析與應(yīng)用實戰(zhàn)
PyQt5 是一個用于創(chuàng)建圖形用戶界面的 Python 綁定庫,它基于 Qt5 應(yīng)用程序框架,在 PyQt5 中,QPushButton 是一個常用的控件,用于創(chuàng)建按鈕,允許用戶通過點擊來觸發(fā)某些操作,本文將詳細(xì)介紹 QPushButton 的用法,并通過實際案例來展示其強(qiáng)大的功能2024-07-07
Python importlib動態(tài)導(dǎo)入模塊實現(xiàn)代碼
這篇文章主要介紹了Python importlib動態(tài)導(dǎo)入模塊實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04

