Source code for clumsygrad.loss

"""
This module provides functions to compute various loss functions.
"""

from __future__ import annotations

import numpy as np

from .tensor import Tensor


[docs]def mse_loss(pred: Tensor, target: Tensor) -> Tensor: """ Computes the Mean Squared Error (MSE) loss between the predicted and target tensors. Args: pred: The predicted tensor. target: The target tensor. Returns: Tensor: The MSE loss tensor. """ if pred._shape != target._shape: raise ValueError("Predicted and target tensors must have the same shape for MSE loss.") from .grad import mse_backward diff = pred._data - target._data mse = np.mean(np.square(diff)) new_tensor = Tensor._create_node( data=mse, grad_fn=mse_backward, parents=(pred, target) ) return new_tensor
[docs]def mae_loss(pred: Tensor, target: Tensor) -> Tensor: """ Computes the Mean Absolute Error (MAE) loss between the predicted and target tensors. Args: pred: The predicted tensor. target: The target tensor. Returns: Tensor: The MAE loss tensor. """ from .grad import mae_backward if pred._shape != target._shape: raise ValueError("Predicted and target tensors must have the same shape for MAE loss.") diff = np.abs(pred._data - target._data) mae = np.mean(diff) new_tensor = Tensor._create_node( data=mae, grad_fn=mae_backward, parents=(pred, target) ) return new_tensor