對(duì)TensorFlow中的variables_to_restore函數(shù)詳解
variables_to_restore函數(shù),是TensorFlow為滑動(dòng)平均值提供。之前,也介紹過通過使用滑動(dòng)平均值可以讓神經(jīng)網(wǎng)絡(luò)模型更加的健壯。我們也知道,其實(shí)在TensorFlow中,變量的滑動(dòng)平均值都是由影子變量所維護(hù)的,如果你想要獲取變量的滑動(dòng)平均值需要獲取的是影子變量而不是變量本身。
1、滑動(dòng)平均值模型文件的保存
import tensorflow as tf if __name__ == "__main__": v = tf.Variable(0.,name="v") #設(shè)置滑動(dòng)平均模型的系數(shù) ema = tf.train.ExponentialMovingAverage(0.99) #設(shè)置變量v使用滑動(dòng)平均模型,tf.all_variables()設(shè)置所有變量 op = ema.apply([v]) #獲取變量v的名字 print(v.name) #v:0 #創(chuàng)建一個(gè)保存模型的對(duì)象 save = tf.train.Saver() sess = tf.Session() #初始化所有變量 init = tf.initialize_all_variables() sess.run(init) #給變量v重新賦值 sess.run(tf.assign(v,10)) #應(yīng)用平均滑動(dòng)設(shè)置 sess.run(op) #保存模型文件 save.save(sess,"./model.ckpt") #輸出變量v之前的值和使用滑動(dòng)平均模型之后的值 print(sess.run([v,ema.average(v)])) #[10.0, 0.099999905]
上面的代碼,是如何來保存一個(gè)滑動(dòng)平均值的模型文件,之前有介紹過滑動(dòng)平均值和模型文件的保存,所以這里就不再重復(fù)了。
2、滑動(dòng)平均值模型文件的讀取
v = tf.Variable(1.,name="v") #定義模型對(duì)象 saver = tf.train.Saver({"v/ExponentialMovingAverage":v}) sess = tf.Session() saver.restore(sess,"./model.ckpt") print(sess.run(v)) #0.0999999
對(duì)于模型文件的讀取,在上一篇博客中有介紹過,這里特別需要注意的一個(gè)地方就是,在使用tf.train.Saver函數(shù)中,所傳遞的模型參數(shù)是{"v/ExponentialMovingAverage":v}而不是{"v":v},如果你使用的是后面的參數(shù),那么你得到的結(jié)果將是10而不是0.09,那是因?yàn)楹笳攉@取的是變量本身而不是影子變量。是不是感覺使用這種方式來讀取模型文件的時(shí)候,還需要輸入一大串的變量名稱。
3、variables_to_restore函數(shù)的使用
v = tf.Variable(1.,name="v") #滑動(dòng)模型的參數(shù)的大小并不會(huì)影響v的值 ema = tf.train.ExponentialMovingAverage(0.99) print(ema.variables_to_restore()) #{'v/ExponentialMovingAverage': <tf.Variable 'v:0' shape=() dtype=float32_ref>} sess = tf.Session() saver = tf.train.Saver(ema.variables_to_restore()) saver.restore(sess,"./model.ckpt") print(sess.run(v)) #0.0999999
通過使用variables_to_restore函數(shù),可以使在加載模型的時(shí)候?qū)⒂白幼兞恐苯佑成涞阶兞康谋旧?,所以我們?cè)讷@取變量的滑動(dòng)平均值的時(shí)候只需要獲取到變量的本身值而不需要去獲取影子變量。
以上這篇對(duì)TensorFlow中的variables_to_restore函數(shù)詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
TensorFlow實(shí)現(xiàn)Logistic回歸
這篇文章主要為大家詳細(xì)介紹了TensorFlow實(shí)現(xiàn)Logistic回歸的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09python 使用paramiko模塊進(jìn)行封裝,遠(yuǎn)程操作linux主機(jī)的示例代碼
這篇文章主要介紹了python 使用paramiko模塊進(jìn)行封裝,遠(yuǎn)程操作linux主機(jī)的示例代碼,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12python中超簡(jiǎn)單的字符分割算法記錄(車牌識(shí)別、儀表識(shí)別等)
這篇文章主要給大家介紹了關(guān)于python中超簡(jiǎn)單的字符分割算法記錄,如車牌識(shí)別、儀表識(shí)別等,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-09-09pandas中read_excel()函數(shù)的基本使用
在Python的數(shù)據(jù)處理庫pandas中,read_excel()函數(shù)是用于讀取Excel文件內(nèi)容的強(qiáng)大工具,本文就來介紹一下如何使用,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03基于Python實(shí)現(xiàn)的購(gòu)物商城管理系統(tǒng)
這篇文章主要介紹了基于Python實(shí)現(xiàn)的購(gòu)物商城管理系統(tǒng),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-04-04Python使用BeautifulSoup4修改網(wǎng)頁內(nèi)容的實(shí)戰(zhàn)記錄
BeautifulSoup除了可以查找和定位網(wǎng)頁內(nèi)容,還可以修改網(wǎng)頁,下面這篇文章主要給大家介紹了關(guān)于Python使用BeautifulSoup4修改網(wǎng)頁內(nèi)容的相關(guān)資料,需要的朋友可以參考下2022-05-05