From 062008bc67760ab3361ab339931e7da3374251cc Mon Sep 17 00:00:00 2001
From: bhalimi <benjamin.halimi@cea.fr>
Date: Tue, 11 Feb 2025 15:16:09 +0000
Subject: [PATCH] handle multi-output operators

---
 src/optimizer/Optimizer.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/optimizer/Optimizer.cpp b/src/optimizer/Optimizer.cpp
index 723f140..5e1e2f3 100644
--- a/src/optimizer/Optimizer.cpp
+++ b/src/optimizer/Optimizer.cpp
@@ -20,7 +20,9 @@ void Aidge::Optimizer::resetGrad(std::shared_ptr<GraphView> graphView)
         auto op = node->getOperator();
         if (op->isAtomic()) {
             auto tensorOp = std::static_pointer_cast<OperatorTensor>(op);
-            tensorOp->getOutput(0)->grad()->zeros();
+            for (auto outputTensor : tensorOp->getOutputs()) {
+                outputTensor->grad()->zeros();
+            }
         } else {
             auto metaOp = std::static_pointer_cast<MetaOperator_Op>(op);
             resetGrad(metaOp->getMicroGraph());
-- 
GitLab