TensorFlow通過(guò)規(guī)范總和的比例剪切張量的值

2018-09-12 15:13 更新

tf.clip_by_global_norm

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

定義在:tensorflow/python/ops/clip_ops.py

參見(jiàn)指南:Training函數(shù)>梯度剪輯

通過(guò)他們的規(guī)范的總和的比例來(lái)剪輯多個(gè)張量的值.

給定一個(gè)元組或張量 t_list 的列表,以及一個(gè)剪輯比率 clip_norm,,此操作返回 t_list 中所有張量的 list_clipped 和全局范數(shù) (global_norm) 的列表.或者, 如果您已經(jīng)計(jì)算了 t_list 的全局范數(shù),則可以使用 use_norm 指定全局范數(shù).

要執(zhí)行剪輯,t_list[i] 的值設(shè)置為:

t_list[i] * clip_norm / max(global_norm, clip_norm)

當(dāng):

global_norm = sqrt(sum([l2norm(t)**2 for t in t_list]))

如果 clip_norm > global_norm ,那么條目 t_list 保持原樣,否則它們將被全局的比例縮小.

任何類(lèi)型為 None 的 t_list 項(xiàng)都將被忽略.

這是執(zhí)行漸變剪輯的正確方法.

然而,它比 clip_by_norm() 慢,因?yàn)樵趫?zhí)行剪輯操作之前必須準(zhǔn)備好所有的參數(shù).

ARGS:

  • t_list:一個(gè)元組或混合張量、IndexedSlices 或 None 的列表.
  • clip_norm:一個(gè)0維 (標(biāo)量) 張量 > 0,剪輯比率.
  • use_norm:一個(gè)0維 (標(biāo)量) 類(lèi)型浮點(diǎn)型 (可選) 的張量.使用全局的規(guī)范.如果不提供, global_norm () 用于計(jì)算范數(shù).
  • name:操作的名稱(可選).

返回:

  • list_clipped:與 list_t 具有相同類(lèi)型的張量的列表.
  • global_norm:代表全球規(guī)范的0維 (標(biāo)量) 張量.

注意:

  • TypeError:當(dāng) t_list 不是序列.


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)