A primitive to perform batch normalization. More...
Classes | |
struct | dnnl::batch_normalization_forward |
Batch normalization forward propagation primitive. More... | |
struct | dnnl::batch_normalization_backward |
Batch normalization backward propagation primitive. More... | |
struct | dnnl_batch_normalization_desc_t |
A descriptor of a Batch Normalization operation. More... | |
Functions | |
dnnl_status_t DNNL_API | dnnl_batch_normalization_forward_desc_init (dnnl_batch_normalization_desc_t *bnrm_desc, dnnl_prop_kind_t prop_kind, const dnnl_memory_desc_t *data_desc, float epsilon, unsigned flags) |
Initializes a descriptor for a batch normalization forward propagation primitive. More... | |
dnnl_status_t DNNL_API | dnnl_batch_normalization_backward_desc_init (dnnl_batch_normalization_desc_t *bnrm_desc, dnnl_prop_kind_t prop_kind, const dnnl_memory_desc_t *diff_data_desc, const dnnl_memory_desc_t *data_desc, float epsilon, unsigned flags) |
Initializes a descriptor for a batch normalization backward propagation primitive. More... | |
A primitive to perform batch normalization.
Both forward and backward propagation primitives support in-place operation; that is, src and dst can refer to the same memory for forward propagation, and diff_dst and diff_src can refer to the same memory for backward propagation.
The batch normalization primitives computations can be controlled by specifying different dnnl::normalization_flags values. For example, batch normalization can compute the mean and variance on its own or take them as inputs. It can either perform scaling and shifting using gamma and beta parameters or not. Optionally, it can also perform a fused ReLU, which in case of training would also require a workspace.
dnnl_status_t DNNL_API dnnl_batch_normalization_forward_desc_init | ( | dnnl_batch_normalization_desc_t * | bnrm_desc, |
dnnl_prop_kind_t | prop_kind, | ||
const dnnl_memory_desc_t * | data_desc, | ||
float | epsilon, | ||
unsigned | flags | ||
) |
Initializes a descriptor for a batch normalization forward propagation primitive.
Inputs:
flags
flags
flags
Outputs:
flags
and prop_kind
= dnnl_forward_trainingflags
and prop_kind
= dnnl_forward_trainingflags
and prop_kind
= dnnl_forward_training; must be queried for using dnnl_primitive_desc_query_md() after a corresponding primitive descriptor is createdbnrm_desc | Output descriptor for batch normalization primitive. |
prop_kind | Propagation kind. Possible values are dnnl_forward_training and dnnl_forward_inference. |
data_desc | Source and destination memory descriptor. |
epsilon | Batch normalization epsilon parameter. |
flags | Batch normalization flags (dnnl_normalization_flags_t). |
dnnl_status_t DNNL_API dnnl_batch_normalization_backward_desc_init | ( | dnnl_batch_normalization_desc_t * | bnrm_desc, |
dnnl_prop_kind_t | prop_kind, | ||
const dnnl_memory_desc_t * | diff_data_desc, | ||
const dnnl_memory_desc_t * | data_desc, | ||
float | epsilon, | ||
unsigned | flags | ||
) |
Initializes a descriptor for a batch normalization backward propagation primitive.
Inputs:
flags
flags
Outputs:
flags
and prop_kind
= dnnl_backwardbnrm_desc | Output descriptor for batch normalization primitive. |
prop_kind | Propagation kind. Possible values are dnnl_backward_data and dnnl_backward (diffs for all parameters are computed in this case). |
diff_data_desc | Diff source and diff destination memory descriptor. |
data_desc | Source memory descriptor. |
epsilon | Batch normalization epsilon parameter. |
flags | Batch normalization flags (dnnl_normalization_flags_t). |