国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

tensorflow 恢復指定層與不同層指定不同學習率的方法

2020-01-04 14:46:40
字體:
來源:轉載
供稿:網友

如下所示:

#tensorflow 中從ckpt文件中恢復指定的層或將指定的層不進行恢復:#tensorflow 中不同的layer指定不同的學習率 with tf.Graph().as_default():		#存放的是需要恢復的層參數	 variables_to_restore = []	 #存放的是需要訓練的層參數名,這里是沒恢復的需要進行重新訓練,實際上恢復了的參數也可以訓練  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)    #這里省略掉一些步驟,進入訓練步驟:  #將variables_to_train,需要訓練的參數給optimizer 的compute_gradients函數  grads = opt.compute_gradients(total_loss, variables_to_train)  #這個函數將只計算variables_to_train中的梯度  #然后將梯度進行應用:  apply_gradient_op = opt.apply_gradients(grads, global_step=global_step)  #也可以直接調用opt.minimize(total_loss,variables_to_train)  #minimize只是將compute_gradients與apply_gradients封裝成了一個函數,實際上還是調用的這兩個函數  #如果在梯度里面不同的參數需要不同的學習率,那么可以:   capped_grads_and_vars = []#[(MyCapper(gv[0]), gv[1]) for gv in grads_and_vars]  #update_gradient_vars是需要更新的參數,使用的是全局學習率  #對于不是update_gradient_vars的參數,將其梯度更新乘以0.0001,使用基本上不動 	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)  	#在恢復模型時:   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)   #這樣就將指定的層參數沒有恢復

以上這篇tensorflow 恢復指定層與不同層指定不同學習率的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 建昌县| 仁布县| 盈江县| 秭归县| 万宁市| 江都市| 兴文县| 祁连县| 通河县| 贡觉县| 京山县| 张掖市| 永福县| 河间市| 封丘县| 红原县| 肇源县| 澜沧| 建宁县| 黑山县| 紫阳县| 麦盖提县| 即墨市| 酉阳| 楚雄市| 凤凰县| 汤阴县| 开化县| 阳高县| 逊克县| 黄浦区| 盐池县| 九江县| 正镶白旗| 宿州市| 湟中县| 东丽区| 鄱阳县| 夏邑县| 卫辉市| 闽侯县|