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