Clips tensor values to a specified min and max.
代码语言:javascript复制tf.clip_by_value(
t,
clip_value_min,
clip_value_max,
name=None
)
Used in the tutorials:
- DeepDream
- Adversarial example using FGSM
- Neural style transfer
Given a tensor t
, this operation returns a tensor of the same type and shape as t
with its values clipped to clip_value_min
and clip_value_max
. Any values less than clip_value_min
are set to clip_value_min
. Any values greater than clip_value_max
are set to clip_value_max
.
Note: clip_value_min
needs to be smaller or equal to clip_value_max
for correct results.
For example:
代码语言:javascript复制A = tf.constant([[1, 20, 13], [3, 21, 13]])
B = tf.clip_by_value(A, clip_value_min=0, clip_value_max=3) # [[1, 3, 3],[3, 3, 3]]
C = tf.clip_by_value(A, clip_value_min=0., clip_value_max=3.) # throws `TypeError`
as input and clip_values are of different dtype
Args:
t
: ATensor
orIndexedSlices
.clip_value_min
: A 0-D (scalar)Tensor
, or aTensor
with the same shape ast
. The minimum value to clip by.clip_value_max
: A 0-D (scalar)Tensor
, or aTensor
with the same shape ast
. The maximum value to clip by.name
: A name for the operation (optional).
Returns:
- A clipped
Tensor
orIndexedSlices
.
Raises:
ValueError
: If the clip tensors would trigger array broadcasting that would make the returned tensor larger than the input.TypeError
: If dtype of the input isint32
and dtype of theclip_value_min' or
clip_value_maxis
float32`