View source on GitHub |
Normalizes the values in tensor
with respect to a specified vector norm.
nsl.lib.normalize(
tensor, norm_type, epsilon=1e-06
)
This op assumes that the first axis of tensor
is the batch dimension, and
calculates the norm over all other axes. For example, if tensor
is
tf.constant(1.0, shape=[2, 3, 4])
, its L2 norm (calculated along all the
dimensions other than the first dimension) will be [[sqrt(12)], [sqrt(12)]]
.
Hence, this tensor will be normalized by dividing by
[[sqrt(12)], [sqrt(12)]]
.
Note that tf.norm
is not used here since it only allows the norm to be
calculated over one axis, not multiple axes.
Args | |
---|---|
tensor
|
a tensor to be normalized. Can have any shape with the first axis being the batch dimension that will not be normalized across. |
norm_type
|
one of nsl.configs.NormType , the type of vector norm.
|
epsilon
|
a lower bound value for the norm to avoid division by 0. |
Returns | |
---|---|
A normalized tensor with the same shape and type as tensor .
|