ErrorClipByValue

  • class paddle.fluid.clip.ErrorClipByValue(max, min=None)[源代码]

给定一个 Tensor t (该 Tensor 传入方式见代码示例),对 Tensor 中的元素超出给定最大 max 和最小界 min 内区间范围 [min, max] 的元素,重设为所超出界的界值。

  • 任何小于min(最小值)的值都被设置为 min
  • 任何大于max(最大值)的值都被设置为 max
  • 参数:
    • max (foat) - 要修剪的最大值。
    • min (float) - 要修剪的最小值。如果用户没有设置,将被框架默认设置为 -max

代码示例

  1. import paddle.fluid as fluid
  2.  
  3. BATCH_SIZE = 128
  4. CLIP_MAX = 2e-6
  5. CLIP_MIN = -1e-6
  6. prog = fluid.framework.Program()
  7.  
  8. with fluid.program_guard(main_program=prog):
  9. image = fluid.layers.data(name='x', shape=[784], dtype='float32')
  10. hidden1 = fluid.layers.fc(input=image, size=128, act='relu')
  11. hidden2 = fluid.layers.fc(input=hidden1, size=64, act='relu')
  12. predict = fluid.layers.fc(input=hidden2, size=10, act='softmax')
  13. label = fluid.layers.data(name='y', shape=[1], dtype='int64')
  14. cost = fluid.layers.cross_entropy(input=predict, label=label)
  15. avg_cost = fluid.layers.mean(cost)
  16. prog_clip = prog.clone()
  17. prog_clip.block(0).var(hidden1.name)._set_error_clip(
  18. fluid.clip.ErrorClipByValue(max=CLIP_MAX, min=CLIP_MIN))