最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Tensorflow實現(xiàn)部分參數(shù)梯度更新操作

 更新時間:2020年01月23日 18:01:25   作者:zchenack  
今天小編就為大家分享一篇Tensorflow實現(xiàn)部分參數(shù)梯度更新操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

在深度學習中,遷移學習經常被使用,在大數(shù)據(jù)集上預訓練的模型遷移到特定的任務,往往需要保持模型參數(shù)不變,而微調與任務相關的模型層。

本文主要介紹,使用tensorflow部分更新模型參數(shù)的方法。

1. 根據(jù)Variable scope剔除需要固定參數(shù)的變量

def get_variable_via_scope(scope_lst):
  vars = []
  for sc in scope_lst:
    sc_variable = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES,scope=scope)
    vars.extend(sc_variable)
  return vars
 
trainable_vars = tf.trainable_variables()
no_change_scope = ['your_unchange_scope_name']
 
no_change_vars = get_variable_via_scope(no_change_scope)
 
for v in no_change_vars:
  trainable_vars.remove(v)
 
grads, _ = tf.gradients(loss, trainable_vars)
 
optimizer = tf.train.AdamOptimizer(lr)
 
train_op = optimizer.apply_gradient(zip(grads, trainable_vars), global_step=global_step)

2. 使用tf.stop_gradient()函數(shù)

在建立Graph過程中使用該函數(shù),非常簡潔地避免了使用scope獲取參數(shù)

3. 一個矩陣中部分行或列參數(shù)更新

如果一個矩陣,只有部分行或列需要更新參數(shù),其它保持不變,該場景很常見,例如word embedding中,一些預定義的領域相關詞保持不變(使用領域相關word embedding初始化),而另一些通用詞變化。

import tensorflow as tf
import numpy as np
 
def entry_stop_gradients(target, mask):
  mask_h = tf.abs(mask-1)
  return tf.stop_gradient(mask_h * target) + mask * target
 
mask = np.array([1., 0, 1, 1, 0, 0, 1, 1, 0, 1])
mask_h = np.abs(mask-1)
 
emb = tf.constant(np.ones([10, 5]))
 
matrix = entry_stop_gradients(emb, tf.expand_dims(mask,1))
 
parm = np.random.randn(5, 1)
t_parm = tf.constant(parm)
 
loss = tf.reduce_sum(tf.matmul(matrix, t_parm))
grad1 = tf.gradients(loss, emb)
grad2 = tf.gradients(loss, matrix)
print matrix
with tf.Session() as sess:
  print sess.run(loss)
  print sess.run([grad1, grad2])

以上這篇Tensorflow實現(xiàn)部分參數(shù)梯度更新操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 在PyCharm中三步完成PyPy解釋器的配置的方法

    在PyCharm中三步完成PyPy解釋器的配置的方法

    今天小編就為大家分享一篇在PyCharm中三步完成PyPy解釋器的配置的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python提示[Errno 32]Broken pipe導致線程crash錯誤解決方法

    Python提示[Errno 32]Broken pipe導致線程crash錯誤解決方法

    這篇文章主要介紹了Python提示[Errno 32]Broken pipe導致線程crash錯誤解決方法,是ThreadingHTTPServer實現(xiàn)http服務中經常會遇到的問題,需要的朋友可以參考下
    2014-11-11
  • Python利用treap實現(xiàn)雙索引的方法

    Python利用treap實現(xiàn)雙索引的方法

    所遍歷的元素一定是遞增(小堆)或是遞減(大堆)關系,但是我們無法得知左子樹與右子樹兩部分節(jié)點的排序關系。本文就來講講算法和數(shù)據(jù)結構共同滿足一組特性,感興趣的小伙伴請參考下面文章的內容
    2021-09-09
  • python不到50行代碼完成了多張excel合并的實現(xiàn)示例

    python不到50行代碼完成了多張excel合并的實現(xiàn)示例

    這篇文章主要介紹了python不到50行代碼完成了多張excel合并的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • numpy數(shù)組拼接簡單示例

    numpy數(shù)組拼接簡單示例

    這篇文章主要介紹了numpy數(shù)組拼接簡單示例,涉及對numpy數(shù)組的介紹,numpy數(shù)組的屬性等內容,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • 使用Python操作ArangoDB的方法步驟

    使用Python操作ArangoDB的方法步驟

    這篇文章主要介紹了使用Python操作ArangoDB的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • Python-Seaborn熱圖繪制的實現(xiàn)方法

    Python-Seaborn熱圖繪制的實現(xiàn)方法

    這篇文章主要介紹了Python-Seaborn熱圖繪制的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • 深入解析Python編程中super關鍵字的用法

    深入解析Python編程中super關鍵字的用法

    Python的子類調用父類成員時可以用到super關鍵字,初始化時需要注意super()和__init__()的區(qū)別,下面我們就來深入解析Python編程中super關鍵字的用法:
    2016-06-06
  • python中的字符串內部換行方法

    python中的字符串內部換行方法

    今天小編就為大家分享一篇python中的字符串內部換行方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python3中的bytes和str類型詳解

    Python3中的bytes和str類型詳解

    這篇文章主要介紹了Python3中的bytes和str類型,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05

最新評論

河津市| 寿光市| 泸定县| 五大连池市| 临安市| 绥芬河市| 出国| 凤凰县| 丰宁| 犍为县| 望江县| 体育| 上杭县| 拉孜县| 左权县| 固始县| 乡城县| 桑日县| 台东市| 南投县| 大同县| 涞水县| 海林市| 冕宁县| 德钦县| 精河县| 林西县| 龙江县| 简阳市| 青河县| 施甸县| 松桃| 陕西省| 嫩江县| 万全县| 定边县| 基隆市| 凌海市| 沁水县| 威宁| 黄龙县|