AIfES 2  2.0.0
ailoss_crossentropy_default.h File Reference

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_tailoss_crossentropy_f32_default (ailoss_crossentropy_f32_t *loss, ailayer_t *input_layer)
 Initializes and connect a Cross-Entropy loss with the F32 default implementation. More...
 

Detailed Description

Default implementation of the Cross-Entropy loss .

Version
2.0alpha

AIfES is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

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.

Function Documentation

◆ ailoss_crossentropy_f32_default()

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.

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:

ailoss_crossentropy_f32_t crossentropy_loss;
General Cross-Entropy loss struct.
Definition: ailoss_crossentropy.h:65

Example: Initialize and connect the loss to the layer structure:

aimodel_t model;
...
model.output_layer = ailayer_sigmoid_f32_default(&sigmoid_layer, x);
model.loss = ailoss_crossentropy_f32_default(&crossentropy_loss, model.output_layer);
ailayer_t * ailayer_sigmoid_f32_default(ailayer_sigmoid_f32_t *layer, ailayer_t *input_layer)
Initializes and connect a Sigmoid layer with the F32 default implementation.
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.
AIfES artificial neural network model.
Definition: aifes_core.h:180
ailayer_t * output_layer
Output layer of the model.
Definition: aifes_core.h:182
ailoss_t * loss
The loss or cost function of the model (only for training).
Definition: aifes_core.h:187
Parameters
*lossThe loss structure to initialize.
*input_layerThe output layer of the model (Must be either a Sigmoid or a Softmax layer!).
Returns
The (successfully) initialized loss structure.