Maybe backward on activation+loss works
This commit is contained in:
2026-08-04 21:27:11 +02:00
parent 28c1976fb1
commit fecb4c70b1
6 changed files with 84 additions and 136 deletions
@@ -59,19 +59,6 @@ struct activation_softmax_loss_categorical_crossentropy: loss{
activation_softmax activation;
loss_categorical_crossentropy loss;
/**
* @brief Emphty matrix to store input data for bacward pass
*
*/
panic::tensor::real_matrix dinputs;
/**
* @brief Emphty matrix to store output data
*
*/
panic::tensor::real_matrix outputs;
/**
* @brief Empthy constructor
@@ -92,7 +79,7 @@ struct activation_softmax_loss_categorical_crossentropy: loss{
* @param y_true Vector of true label of data.
*
*/
bool calculate(const panic::tensor::real_matrix& y_pred, const panic::tensor::uint_vector& y_true) override;
bool forward(const panic::tensor::real_matrix& y_pred, const panic::tensor::uint_vector& y_true) override;
/**
* @brief forward function to calculate losses
@@ -103,74 +90,7 @@ struct activation_softmax_loss_categorical_crossentropy: loss{
* @Note Overloaded if one-shot endcoded
* is used.
*/
bool calculate(const panic::tensor::real_matrix& y_pred, const panic::tensor::real_matrix& y_true) override;
/**
* @brief forward function to calculate losses
*
* @param y_pred Matrix of model predection.
* @param y_true Vector of true label of data.
*
*/
bool calculate(const panic::tensor::real_matrix& y_pred, const panic::tensor::uint_vector& y_true);
/**
* @brief forward function to calculate losses
*
* @param y_pred Matrix of model predection.
* @param y_true Vector of true label of data.
*
* @Note Overloaded if one-shot endcoded
* is used.
*/
bool calculate(const panic::tensor::real_matrix& y_pred, const panic::tensor::real_matrix& y_true);
bool forward(const panic::tensor::real_matrix& y_pred, const panic::tensor::real_matrix& y_true) override;
+27
View File
@@ -112,6 +112,33 @@ struct loss{
const panic::tensor::real_matrix& y_pred,
const panic::tensor::real_matrix& y_true);
/**
* @brief Virtual backward function for derivative loss functions
*
* @param y_pred Matrix of model predection.
* @param y_true Vector of true label of data.
*
* @Note If the derivatived object does not use this,
* it returns false.
*/
virtual bool backward(
const panic::tensor::real_matrix& y_pred,
const panic::tensor::uint_vector& y_true);
/**
* @brief Virtual backward function for derivative loss functions
*
* @param y_pred Matrix of model predection.
* @param y_true Matrix of true label of data.
*
* @Note If the derivatived object does not use this,
* it returns false.
*/
virtual bool backward(
const panic::tensor::real_matrix& y_pred,
const panic::tensor::real_matrix& y_true);
/**
* @brief Virtual calculate function that calculates the loss
*
@@ -67,7 +67,7 @@ struct loss_categorical_crossentropy: loss{
*/
bool forward(
const panic::tensor::real_matrix& y_pred,
const panic::tensor::uint_vector& y_true);
const panic::tensor::uint_vector& y_true)override;
/**
* @brief forward function to calculate losses
@@ -80,7 +80,7 @@ struct loss_categorical_crossentropy: loss{
*/
bool forward(
const panic::tensor::real_matrix& y_pred,
const panic::tensor::real_matrix& y_true);
const panic::tensor::real_matrix& y_true)override;
/**