From 98fc16c8a6336b44e3353912e894f1cde46f36af Mon Sep 17 00:00:00 2001 From: cmoineau <cyril.moineau@cea.fr> Date: Fri, 3 May 2024 09:14:14 +0000 Subject: [PATCH] Add assert in fillers to avoid div by 0 or sqrt of neg. --- src/filler/HeFiller.cpp | 4 +++- src/filler/XavierFiller.cpp | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/filler/HeFiller.cpp b/src/filler/HeFiller.cpp index 74d681f1a..ff20b7618 100644 --- a/src/filler/HeFiller.cpp +++ b/src/filler/HeFiller.cpp @@ -29,7 +29,9 @@ void Aidge::heFiller(std::shared_ptr<Aidge::Tensor> tensor, : (varianceNorm == Aidge::VarianceNorm::Average) ? (fanIn + fanOut) / 2.0 : fanOut); - + AIDGE_ASSERT(n > 0, + "Something went wrong division by zero or square root of " + "negative value."); const T stdDev(std::sqrt(2.0 / n)); const T mean(varianceNorm == Aidge::VarianceNorm::FanIn ? meanNorm / fanIn diff --git a/src/filler/XavierFiller.cpp b/src/filler/XavierFiller.cpp index a1de15971..734874d44 100644 --- a/src/filler/XavierFiller.cpp +++ b/src/filler/XavierFiller.cpp @@ -29,6 +29,9 @@ void Aidge::xavierUniformFiller(std::shared_ptr<Aidge::Tensor> tensor, : (varianceNorm == Aidge::VarianceNorm::Average) ? (fanIn + fanOut) / 2.0 : fanOut); + AIDGE_ASSERT(n > 0, + "Something went wrong division by zero or square root of " + "negative value."); const T scale(std::sqrt(3.0 / n)); std::uniform_real_distribution<T> uniformDist(-scale, scale); -- GitLab