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

Tensorflow之梯度裁剪的實(shí)現(xiàn)示例

 更新時間:2020年03月08日 09:33:17   作者:AGUILLER  
這篇文章主要介紹了Tensorflow之梯度裁剪的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

tensorflow中的梯度計算和更新

為了解決深度學(xué)習(xí)中常見的梯度消失(gradient explosion)和梯度爆炸(gradients vanishing)問題,tensorflow中所有的優(yōu)化器tf.train.xxxOptimizer都有兩個方法:

  1. compute_gradients
  2. apply_gradients

compute_gradients

對于compute_gradients方法,計算var_list中參數(shù)的梯度,使得loss變小。默認(rèn)情況下,var_list為GraphKeys.TRAINABLE_VARIABLES中的所有參數(shù)。

compute_gradients方法返回由多個(gradients, variable)二元組組成的列表。

compute_gradients(
  loss,
  var_list=None,
  gate_gradients=GATE_OP,
  aggregation_method=None,
  colocate_gradients_with_ops=False,
  grad_loss=None
)

apply_gradients

對于apply_gradients方法,根據(jù)compute_gradients的返回結(jié)果對參數(shù)進(jìn)行更新

apply_gradients(
  grads_and_vars,
  global_step=None,
  name=None
)

梯度裁剪(Gradient Clipping)

tensorflow中裁剪梯度的幾種方式

方法一tf.clip_by_value

def clip_by_value(t, clip_value_min, clip_value_max,
         name=None):

其中,t為一個張量,clip_by_value返回一個與t的type相同、shape相同的張量,但是新tensor中的值被裁剪到了clip_value_min和clip_value_max之間。

方法二:tf.clip_by_global_norm

def clip_by_global_norm(t_list, clip_norm, use_norm=None, name=None):

其中,t_list為A tuple or list of mixed Tensors, IndexedSlices, or None。clip_norm為clipping ratio,use_norm指定global_norm,如果use_norm為None,則按global_norm = sqrt(sum([l2norm(t)**2 for t in t_list]))計算global_norm。

最終,梯度的裁剪方式為

可知,如果clip_norm > global_norm, 則不對梯度進(jìn)行裁剪,否則對梯度進(jìn)行縮放。

  scale = clip_norm * math_ops.minimum(
    1.0 / use_norm,
    constant_op.constant(1.0, dtype=use_norm.dtype) / clip_norm)

方法的返回值為裁剪后的梯度列表list_clipped和global_norm

示例代碼

optimizer = tf.train.AdamOptimizer(learning_rate)
gradients, v = zip(*optimizer.compute_gradients(loss))
gradients, _ = tf.clip_by_global_norm(gradients, grad_clip)
updates = optimizer.apply_gradients(zip(gradients, v),global_step=global_step)

方法三tf.clip_by_average_norm

def clip_by_average_norm(t, clip_norm, name=None):

t為張量,clip_norm為maximum clipping value

裁剪方式如下,

其中,avg_norm=l2norm_avg(t)

方法四:tf.clip_by_norm

def clip_by_norm(t, clip_norm, axes=None, name=None):

t為張量,clip_norm為maximum clipping value

裁剪方式為

示例代碼

optimizer = tf.train.AdamOptimizer(learning_rate, beta1=0.5)
grads = optimizer.compute_gradients(cost)
for i, (g, v) in enumerate(grads):
  if g is not None:
    grads[i] = (tf.clip_by_norm(g, 5), v) # clip gradients
train_op = optimizer.apply_gradients(grads)

注意到,clip_by_value、clib_by-avg_norm和clip_by_norm都是針對于單個張量的,而clip_by_global_norm可用于多個張量組成的列表。

到此這篇關(guān)于Tensorflow之梯度裁剪的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)Tensorflow 梯度裁剪內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python爬蟲利器之PhantomJS詳解

    Python爬蟲利器之PhantomJS詳解

    這篇文章主要介紹了Python爬蟲利器之PhantomJS詳解,PhantomJS是一個基于WebKit的無頭瀏覽器,它沒有圖形界面,但是它可以像傳統(tǒng)的瀏覽器一樣訪問web頁面,并返回已呈現(xiàn)的內(nèi)容,PhantomJS是一種命令行工具,可以用它來測試和爬取Web頁面,需要的朋友可以參考下
    2023-09-09
  • Python如何配置環(huán)境變量詳解

    Python如何配置環(huán)境變量詳解

    今天帶大家學(xué)習(xí)python如何配置環(huán)境變量,文中有非常詳細(xì)的步驟,對正在學(xué)習(xí)python的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • Python調(diào)用JavaScript代碼的方法

    Python調(diào)用JavaScript代碼的方法

    這篇文章主要介紹了Python調(diào)用JavaScript代碼的方法,幫助大家在不同場景里,采用的最佳調(diào)用方式,提高程序的性能,感興趣的朋友可以了解下
    2020-10-10
  • Python中用于返回絕對值的abs()方法

    Python中用于返回絕對值的abs()方法

    這篇文章主要介紹了Python中用于返回絕對值的abs()方法,是Python入門中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • python GUI庫圖形界面開發(fā)之PyQt5控件QTableWidget詳細(xì)使用方法與屬性

    python GUI庫圖形界面開發(fā)之PyQt5控件QTableWidget詳細(xì)使用方法與屬性

    這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5控件QTableWidget詳細(xì)使用方法與屬性,需要的朋友可以參考下
    2020-02-02
  • python中wx模塊的具體使用方法

    python中wx模塊的具體使用方法

    這篇文章主要介紹了python中wx模塊的具體使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • flask使用session保存登錄狀態(tài)及攔截未登錄請求代碼

    flask使用session保存登錄狀態(tài)及攔截未登錄請求代碼

    這篇文章主要介紹了flask使用session保存登錄狀態(tài)及攔截未登錄請求代碼,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • Tensorflow Summary用法學(xué)習(xí)筆記

    Tensorflow Summary用法學(xué)習(xí)筆記

    這篇文章主要介紹了Tensorflow Summary用法學(xué)習(xí)筆記,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • python實(shí)現(xiàn)實(shí)時視頻流播放代碼實(shí)例

    python實(shí)現(xiàn)實(shí)時視頻流播放代碼實(shí)例

    這篇文章主要介紹了python實(shí)現(xiàn)實(shí)時視頻流播放代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • python 實(shí)現(xiàn)多維數(shù)組轉(zhuǎn)向量

    python 實(shí)現(xiàn)多維數(shù)組轉(zhuǎn)向量

    今天小編就為大家分享一篇python 實(shí)現(xiàn)多維數(shù)組轉(zhuǎn)向量,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11

最新評論

安顺市| 涟源市| 商洛市| 湖北省| 山西省| 左云县| 南阳市| 灵武市| 左贡县| 台安县| 鱼台县| 玉田县| 牡丹江市| 扶风县| 河南省| 长武县| 南郑县| 嵊州市| 武威市| 富川| 太保市| 青冈县| 翁牛特旗| 长泰县| 安陆市| 南通市| 阿瓦提县| 桑植县| 团风县| 棋牌| 金秀| 茶陵县| 偏关县| 连山| 肥东县| 北宁市| 达州市| 衢州市| 得荣县| 麻阳| 晋城|