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
。
代码示例
- import paddle.fluid as fluid
- BATCH_SIZE = 128
- CLIP_MAX = 2e-6
- CLIP_MIN = -1e-6
- prog = fluid.framework.Program()
- with fluid.program_guard(main_program=prog):
- image = fluid.layers.data(name='x', shape=[784], dtype='float32')
- hidden1 = fluid.layers.fc(input=image, size=128, act='relu')
- hidden2 = fluid.layers.fc(input=hidden1, size=64, act='relu')
- predict = fluid.layers.fc(input=hidden2, size=10, act='softmax')
- label = fluid.layers.data(name='y', shape=[1], dtype='int64')
- cost = fluid.layers.cross_entropy(input=predict, label=label)
- avg_cost = fluid.layers.mean(cost)
- prog_clip = prog.clone()
- prog_clip.block(0).var(hidden1.name)._set_error_clip(
- fluid.clip.ErrorClipByValue(max=CLIP_MAX, min=CLIP_MIN))