Aicraft
Skip to main content

Loss API

#include "aicraft/loss.h"

Cross-Entropy

AcTensor *ac_cross_entropy(AcTensor *pred, AcTensor *target);

Standard cross-entropy loss for classification. Expects pred to be softmax probabilities and target to be one-hot encoded.

MSE (Mean Squared Error)

AcTensor *ac_mse(AcTensor *pred, AcTensor *target);

Mean squared error for regression tasks.

MSE = (1/n) * Σ(yᵢ - ŷᵢ)²

Huber Loss

AcTensor *ac_huber(AcTensor *pred, AcTensor *target, float delta);

Smooth L1 loss — less sensitive to outliers than MSE.

L_δ(a) = ½a²              if |a| ≤ δ
= δ(|a| - ½δ) otherwise

Usage Example

AcTensor *pred = ac_forward_seq(net, 2, x);
AcTensor *loss = ac_cross_entropy(pred, target);

float loss_val = ac_scalar(loss);
printf("Loss: %.4f\n", loss_val);

ac_backward(loss); // Compute gradients

All loss functions return a scalar AcTensor and are differentiable through the autograd engine.