From 2b1fbc89a95eb0e80ad0fc57547f2139e977c8ce Mon Sep 17 00:00:00 2001
From: Olivier BICHLER <olivier.bichler@cea.fr>
Date: Mon, 31 Mar 2025 13:47:21 +0200
Subject: [PATCH] Fixed #253

---
 src/operator/Clip.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/operator/Clip.cpp b/src/operator/Clip.cpp
index 1b4b26124..336673e1e 100644
--- a/src/operator/Clip.cpp
+++ b/src/operator/Clip.cpp
@@ -52,7 +52,7 @@ bool Clip_Op::dimsForwarded() const {
 
 bool Clip_Op::forwardDims(bool allowDataDependency)
 {
-    if (getInput(1))
+    if (getInput(1) && getInput(1)->size() > 0)
     {
         std::shared_ptr<Tensor> fallback;
         const auto& minTensor = mInputs[1]->refCastFrom(fallback, DataType::Float32, "cpu");
@@ -63,7 +63,7 @@ bool Clip_Op::forwardDims(bool allowDataDependency)
 
         this->min() = minValue;
     }
-    if (getInput(2))
+    if (getInput(2) && getInput(2)->size() > 0)
     {
         std::shared_ptr<Tensor> fallback;
         const auto& maxTensor = mInputs[2]->refCastFrom(fallback, DataType::Float32, "cpu");
@@ -77,8 +77,8 @@ bool Clip_Op::forwardDims(bool allowDataDependency)
 
     if (!inputsAssociated(false)) 
         return false;
-    else if ((getInput(1) && !getInput(1)->empty()) || (getInput(2) && !getInput(2)->empty()))
-        AIDGE_THROW_OR_ABORT(std::runtime_error, "Expected Input#1 and Input#2 to be scalar (Tensors of empty shapes)");
+    else if ((getInput(1) && getInput(1)->size() > 1) || (getInput(2) && getInput(2)->size() > 1))
+        AIDGE_THROW_OR_ABORT(std::runtime_error, "Expected Input#1 and Input#2 to be scalar (Tensors of empty shapes or of size one)");
 
     mOutputs[0]->resize(getInput(0)->dims());
 
-- 
GitLab