MCPcopy Create free account
hub / github.com/DeepRec-AI/DeepRec / batch_normalization

Function batch_normalization

tensorflow/python/keras/backend.py:2501–2556  ·  view source on GitHub ↗

Applies batch normalization on x given mean, var, beta and gamma. I.e. returns: `output = (x - mean) / (sqrt(var) + epsilon) * gamma + beta` Arguments: x: Input tensor or variable. mean: Mean of batch. var: Variance of batch. beta: Tensor with which to center the inpu

(x, mean, var, beta, gamma, axis=-1, epsilon=1e-3)

Source from the content-addressed store, hash-verified

2499
2500@keras_export('keras.backend.batch_normalization')
2501def batch_normalization(x, mean, var, beta, gamma, axis=-1, epsilon=1e-3):
2502 """Applies batch normalization on x given mean, var, beta and gamma.
2503
2504 I.e. returns:
2505 `output = (x - mean) / (sqrt(var) + epsilon) * gamma + beta`
2506
2507 Arguments:
2508 x: Input tensor or variable.
2509 mean: Mean of batch.
2510 var: Variance of batch.
2511 beta: Tensor with which to center the input.
2512 gamma: Tensor by which to scale the input.
2513 axis: Integer, the axis that should be normalized.
2514 (typically the features axis).
2515 epsilon: Fuzz factor.
2516
2517 Returns:
2518 A tensor.
2519 """
2520 if ndim(x) == 4:
2521 # The CPU implementation of `fused_batch_norm` only supports NHWC
2522 if axis == 1 or axis == -3:
2523 tf_data_format = 'NCHW'
2524 elif axis == 3 or axis == -1:
2525 tf_data_format = 'NHWC'
2526 else:
2527 tf_data_format = None
2528
2529 if (tf_data_format == 'NHWC' or
2530 tf_data_format == 'NCHW' and _has_nchw_support()):
2531 # The mean / var / beta / gamma tensors may be broadcasted
2532 # so they may have extra axes of size 1, which should be squeezed.
2533 if ndim(mean) > 1:
2534 mean = array_ops.reshape(mean, [-1])
2535 if ndim(var) > 1:
2536 var = array_ops.reshape(var, [-1])
2537 if beta is None:
2538 beta = zeros_like(mean)
2539 elif ndim(beta) > 1:
2540 beta = array_ops.reshape(beta, [-1])
2541 if gamma is None:
2542 gamma = ones_like(mean)
2543 elif ndim(gamma) > 1:
2544 gamma = array_ops.reshape(gamma, [-1])
2545 y, _, _ = nn.fused_batch_norm(
2546 x,
2547 gamma,
2548 beta,
2549 epsilon=epsilon,
2550 mean=mean,
2551 variance=var,
2552 data_format=tf_data_format,
2553 is_training=False
2554 )
2555 return y
2556 return nn.batch_normalization(x, mean, var, beta, gamma, epsilon)
2557
2558

Callers

nothing calls this directly

Calls 5

ndimFunction · 0.85
_has_nchw_supportFunction · 0.85
reshapeMethod · 0.80
zeros_likeFunction · 0.70
ones_likeFunction · 0.70

Tested by

no test coverage detected