codecamp

TensorFlow通过规范总和的比例剪切张量的值

tf.clip_by_global_norm

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

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

参见指南:Training函数>梯度剪辑

通过他们的规范的总和的比例来剪辑多个张量的值.

给定一个元组或张量 t_list 的列表,以及一个剪辑比率 clip_norm,,此操作返回 t_list 中所有张量的 list_clipped 和全局范数 (global_norm) 的列表.或者, 如果您已经计算了 t_list 的全局范数,则可以使用 use_norm 指定全局范数.

要执行剪辑,t_list[i] 的值设置为:

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

当:

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

如果 clip_norm > global_norm ,那么条目 t_list 保持原样,否则它们将被全局的比例缩小.

任何类型为 None 的 t_list 项都将被忽略.

这是执行渐变剪辑的正确方法.

然而,它比 clip_by_norm() 慢,因为在执行剪辑操作之前必须准备好所有的参数.

ARGS:

  • t_list:一个元组或混合张量、IndexedSlices 或 None 的列表.
  • clip_norm:一个0维 (标量) 张量 > 0,剪辑比率.
  • use_norm:一个0维 (标量) 类型浮点型 (可选) 的张量.使用全局的规范.如果不提供, global_norm () 用于计算范数.
  • name:操作的名称(可选).

返回:

  • list_clipped:与 list_t 具有相同类型的张量的列表.
  • global_norm:代表全球规范的0维 (标量) 张量.

注意:

  • TypeError:当 t_list 不是序列.


将TensorFlow张量值剪辑到最大平均L2-norm
将TensorFlow张量值剪辑到最大 L2-norm
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

TensorFlow 函数介绍

TensorFlow 函数模块:tf

TensorFlow的image模块

TensorFlow使用之tf.io

TensorFlow使用之tf.keras

TensorFlow函数教程:tf.keras.applications

TensorFlow函数教程:tf.keras.backend

TensorFlow使用之tf.metrics

TensorFlow使用之tf.nn

TensorFlow使用之tf.python_io

TensorFlow 功能函数

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }