diff --git a/src/operator/Clip.cpp b/src/operator/Clip.cpp index 1b4b261246fbf1b86b8a3414fee5a7ebb66b6bef..336673e1e399634572e4957ce1dc34d24a597ff5 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());