tensorflow 恢復(fù)指定層與不同層指定不同學(xué)習(xí)率的方法
如下所示:
#tensorflow 中從ckpt文件中恢復(fù)指定的層或?qū)⒅付ǖ膶硬贿M(jìn)行恢復(fù): #tensorflow 中不同的layer指定不同的學(xué)習(xí)率 with tf.Graph().as_default(): #存放的是需要恢復(fù)的層參數(shù) variables_to_restore = [] #存放的是需要訓(xùn)練的層參數(shù)名,這里是沒恢復(fù)的需要進(jìn)行重新訓(xùn)練,實(shí)際上恢復(fù)了的參數(shù)也可以訓(xùn)練 variables_to_train = [] for var in slim.get_model_variables(): excluded = False for exclusion in fine_tune_layers: #比如fine tune layer中包含logits,bottleneck if var.op.name.startswith(exclusion): excluded = True break if not excluded: variables_to_restore.append(var) #print('var to restore :',var) else: variables_to_train.append(var) #print('var to train: ',var) #這里省略掉一些步驟,進(jìn)入訓(xùn)練步驟: #將variables_to_train,需要訓(xùn)練的參數(shù)給optimizer 的compute_gradients函數(shù) grads = opt.compute_gradients(total_loss, variables_to_train) #這個(gè)函數(shù)將只計(jì)算variables_to_train中的梯度 #然后將梯度進(jìn)行應(yīng)用: apply_gradient_op = opt.apply_gradients(grads, global_step=global_step) #也可以直接調(diào)用opt.minimize(total_loss,variables_to_train) #minimize只是將compute_gradients與apply_gradients封裝成了一個(gè)函數(shù),實(shí)際上還是調(diào)用的這兩個(gè)函數(shù) #如果在梯度里面不同的參數(shù)需要不同的學(xué)習(xí)率,那么可以: capped_grads_and_vars = []#[(MyCapper(gv[0]), gv[1]) for gv in grads_and_vars] #update_gradient_vars是需要更新的參數(shù),使用的是全局學(xué)習(xí)率 #對于不是update_gradient_vars的參數(shù),將其梯度更新乘以0.0001,使用基本上不動(dòng) for grad in grads: for update_vars in update_gradient_vars: if grad[1]==update_vars: capped_grads_and_vars.append((grad[0],grad[1])) else: capped_grads_and_vars.append((0.0001*grad[0],grad[1])) apply_gradient_op = opt.apply_gradients(capped_grads_and_vars, global_step=global_step) #在恢復(fù)模型時(shí): with sess.as_default(): if pretrained_model: print('Restoring pretrained model: %s' % pretrained_model) init_fn = slim.assign_from_checkpoint_fn( pretrained_model, variables_to_restore) init_fn(sess) #這樣就將指定的層參數(shù)沒有恢復(fù)
以上這篇tensorflow 恢復(fù)指定層與不同層指定不同學(xué)習(xí)率的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python中使用conda?install還是pip?install好
這篇文章主要給大家介紹了關(guān)于Python中使用conda?install還是pip?install好的相關(guān)資料,conda install 和 pip install 都是Python的包管理工具,文中介紹的非常詳細(xì),需要的朋友可以參考下2023-09-09全網(wǎng)首秀之Pycharm十大實(shí)用技巧(推薦)
PyCharm 應(yīng)該是大多數(shù) python 開發(fā)者的首選 IDE,每天我們都在上面敲著熟悉的代碼,寫出一個(gè)又一個(gè)奇妙的功能。這篇文章主要介紹了Pycharm十大實(shí)用技巧,需要的朋友可以參考下2020-04-04Python守護(hù)進(jìn)程和腳本單例運(yùn)行詳解
本篇文章主要介紹了Python守護(hù)進(jìn)程和腳本單例運(yùn)行,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-01-01python按鍵按住不放持續(xù)響應(yīng)的實(shí)例代碼
今天小編就為大家分享一篇python按鍵按住不放持續(xù)響應(yīng)的實(shí)例代碼,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07windows+vscode穿越跳板機(jī)調(diào)試遠(yuǎn)程代碼的圖文教程
本文通過圖文并茂的形式給大家介紹了windows+vscode穿越跳板機(jī)調(diào)試遠(yuǎn)程代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02論文查重python文本相似性計(jì)算simhash源碼
這篇文章主要為大家介紹了python文本相似性計(jì)算simhash源碼來實(shí)現(xiàn)論文的查重,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-02-02Python實(shí)現(xiàn)刪除排序數(shù)組中重復(fù)項(xiàng)的兩種方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)刪除排序數(shù)組中重復(fù)項(xiàng)的兩種方法,涉及Python數(shù)組元素的遍歷、判斷、刪除等相關(guān)操作技巧,需要的朋友可以參考下2019-01-01