Revert the transform commit, will do it in a different PR

Signed-off-by: Omar Shrit <omar@avontech.fr>
This commit is contained in:
Omar Shrit
2024-04-08 17:58:12 +02:00
parent 13fa3cb875
commit 1918c23ea0
@@ -68,32 +68,31 @@ void LogSoftMaxType<MatType>::Forward(const MatType& input, MatType& output)
MatType maxInput = repmat(max(input), input.n_rows, 1);
output = (maxInput - input);
//// Approximation of the base-e exponential function. The acuracy however is
//// about 0.00001 lower as using exp. Credits go to Leon Bottou.
//output.transform([](double x)
//{
////! Fast approximation of exp(-x) for x positive.
//static constexpr double A0 = 1.0;
//static constexpr double A1 = 0.125;
//static constexpr double A2 = 0.0078125;
//static constexpr double A3 = 0.00032552083;
//static constexpr double A4 = 1.0172526e-5;
// Approximation of the base-e exponential function. The acuracy however is
// about 0.00001 lower as using exp. Credits go to Leon Bottou.
output.transform([](double x)
{
//! Fast approximation of exp(-x) for x positive.
static constexpr double A0 = 1.0;
static constexpr double A1 = 0.125;
static constexpr double A2 = 0.0078125;
static constexpr double A3 = 0.00032552083;
static constexpr double A4 = 1.0172526e-5;
//if (x < 13.0)
//{
//double y = A0 + x * (A1 + x * (A2 + x * (A3 + x * A4)));
//y *= y;
//y *= y;
//y *= y;
//y = 1 / y;
if (x < 13.0)
{
double y = A0 + x * (A1 + x * (A2 + x * (A3 + x * A4)));
y *= y;
y *= y;
y *= y;
y = 1 / y;
//return y;
//}
return y;
}
//return 0.0;
// });
//
output = exp(output * (-1));
return 0.0;
});
maxInput.each_row() += log(sum(output));
output = input - maxInput;
}