AIfES 2
2.0.0
|
Default implementation of the Cross-Entropy loss . More...
Go to the source code of this file.
Typedefs | |
typedef struct ailoss_crossentropy | ailoss_crossentropy_f32_t |
Functions | |
ailoss_t * | ailoss_crossentropy_f32_default (ailoss_crossentropy_f32_t *loss, ailayer_t *input_layer) |
Initializes and connect a Cross-Entropy loss with the F32 default implementation using a mean reduction. More... | |
ailoss_t * | ailoss_crossentropy_sum_f32_default (ailoss_crossentropy_f32_t *loss, ailayer_t *input_layer) |
Initializes and connect a Cross-Entropy loss with the F32 default implementation using a sum reduction. More... | |
ailoss_t * | ailoss_crossentropy_mean_f32_default (ailoss_crossentropy_f32_t *loss, ailayer_t *input_layer) |
Initializes and connect a Cross-Entropy loss with the F32 default implementation using a mean reduction. More... | |
ailoss_t * | ailoss_crossentropy_sparse8_f32_default (ailoss_crossentropy_f32_t *loss, ailayer_t *input_layer) |
Initializes and connect a Cross-Entropy loss with the F32 default implementation for sparse labels using a mean reduction. More... | |
ailoss_t * | ailoss_crossentropy_sum_sparse8_f32_default (ailoss_crossentropy_f32_t *loss, ailayer_t *input_layer) |
Initializes and connect a Cross-Entropy loss with the F32 default implementation for sparse labels using a sum reduction. More... | |
ailoss_t * | ailoss_crossentropy_mean_sparse8_f32_default (ailoss_crossentropy_f32_t *loss, ailayer_t *input_layer) |
Initializes and connect a Cross-Entropy loss with the F32 default implementation for sparse labels using a mean reduction. More... | |
Default implementation of the Cross-Entropy loss .
Hardware independent implementations of the Cross-Entropy loss in F32 data-type. For more information about the Cross-Entropy loss refer to ailoss_mse.h.
ailoss_t* ailoss_crossentropy_f32_default | ( | ailoss_crossentropy_f32_t * | loss, |
ailayer_t * | input_layer | ||
) |
Initializes and connect a Cross-Entropy loss with the F32 default implementation using a mean reduction.
The labels must me either binary (when the output layer is a Sigmoid layer), for example
\[ \left( \begin{array}{ccc} 1 & 0 & 0 & 1 \\ 1 & 1 & 1 & 0 \\ 0 & 0 & 1 & 0 \end{array}\right) \]
or row wise one-hot encoded (when the output layer is a Softmax layer), for example
\[ \left( \begin{array}{ccc} 0 & 0 & 0 & 1 \\ 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \end{array}\right) \]
If you want to provide labels as integers, please use ailoss_crossentropy_sparse8_f32_default() loss.
Example: Create the loss structure:
Example: Initialize and connect the loss to the layer structure:
*loss | The loss structure to initialize. |
*input_layer | The output layer of the model (Must be either a Sigmoid or a Softmax layer!). |
ailoss_t* ailoss_crossentropy_mean_f32_default | ( | ailoss_crossentropy_f32_t * | loss, |
ailayer_t * | input_layer | ||
) |
Initializes and connect a Cross-Entropy loss with the F32 default implementation using a mean reduction.
The labels must me either binary (when the output layer is a Sigmoid layer), for example
\[ \left( \begin{array}{ccc} 1 & 0 & 0 & 1 \\ 1 & 1 & 1 & 0 \\ 0 & 0 & 1 & 0 \end{array}\right) \]
or row wise one-hot encoded (when the output layer is a Softmax layer), for example
\[ \left( \begin{array}{ccc} 0 & 0 & 0 & 1 \\ 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \end{array}\right) \]
If you want to provide labels as integers, please use ailoss_crossentropy_sparse8_f32_default() loss.
Example: Create the loss structure:
Example: Initialize and connect the loss to the layer structure:
*loss | The loss structure to initialize. |
*input_layer | The output layer of the model (Must be either a Sigmoid or a Softmax layer!). |
ailoss_t* ailoss_crossentropy_mean_sparse8_f32_default | ( | ailoss_crossentropy_f32_t * | loss, |
ailayer_t * | input_layer | ||
) |
Initializes and connect a Cross-Entropy loss with the F32 default implementation for sparse labels using a mean reduction.
This loss is meant for single label classification purposes. It expects the target data / labels to be an 8-bit integer tensor (U8 ) with the true-class index.
For example the matrix
\[ \left( \begin{array}{ccc} 0 & 0 & 0 & 1 \\ 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \end{array}\right) \]
in sparse representation is
\[ \left( \begin{array}{ccc} 3 \\ 0 \\ 2 \end{array}\right) \]
and can be created with
Example: Create the loss structure:
Example: Initialize and connect the loss to the layer structure:
*loss | The loss structure to initialize. |
*input_layer | The output layer of the model (Must be a Softmax layer!). |
ailoss_t* ailoss_crossentropy_sparse8_f32_default | ( | ailoss_crossentropy_f32_t * | loss, |
ailayer_t * | input_layer | ||
) |
Initializes and connect a Cross-Entropy loss with the F32 default implementation for sparse labels using a mean reduction.
This loss is meant for single label classification purposes. It expects the target data / labels to be an 8-bit integer tensor (U8 ) with the true-class index.
For example the matrix
\[ \left( \begin{array}{ccc} 0 & 0 & 0 & 1 \\ 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \end{array}\right) \]
in sparse representation is
\[ \left( \begin{array}{ccc} 3 \\ 0 \\ 2 \end{array}\right) \]
and can be created with
Example: Create the loss structure:
Example: Initialize and connect the loss to the layer structure:
*loss | The loss structure to initialize. |
*input_layer | The output layer of the model (Must be a Softmax layer!). |
ailoss_t* ailoss_crossentropy_sum_f32_default | ( | ailoss_crossentropy_f32_t * | loss, |
ailayer_t * | input_layer | ||
) |
Initializes and connect a Cross-Entropy loss with the F32 default implementation using a sum reduction.
The labels must me either binary (when the output layer is a Sigmoid layer), for example
\[ \left( \begin{array}{ccc} 1 & 0 & 0 & 1 \\ 1 & 1 & 1 & 0 \\ 0 & 0 & 1 & 0 \end{array}\right) \]
or row wise one-hot encoded (when the output layer is a Softmax layer), for example
\[ \left( \begin{array}{ccc} 0 & 0 & 0 & 1 \\ 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \end{array}\right) \]
If you want to provide labels as integers, please use ailoss_crossentropy_sparse8_f32_default() loss.
Example: Create the loss structure:
Example: Initialize and connect the loss to the layer structure:
*loss | The loss structure to initialize. |
*input_layer | The output layer of the model (Must be either a Sigmoid or a Softmax layer!). |
ailoss_t* ailoss_crossentropy_sum_sparse8_f32_default | ( | ailoss_crossentropy_f32_t * | loss, |
ailayer_t * | input_layer | ||
) |
Initializes and connect a Cross-Entropy loss with the F32 default implementation for sparse labels using a sum reduction.
This loss is meant for single label classification purposes. It expects the target data / labels to be an 8-bit integer tensor (U8 ) with the true-class index.
For example the matrix
\[ \left( \begin{array}{ccc} 0 & 0 & 0 & 1 \\ 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \end{array}\right) \]
in sparse representation is
\[ \left( \begin{array}{ccc} 3 \\ 0 \\ 2 \end{array}\right) \]
and can be created with
Example: Create the loss structure:
Example: Initialize and connect the loss to the layer structure:
*loss | The loss structure to initialize. |
*input_layer | The output layer of the model (Must be a Softmax layer!). |