From 1e320d3bbba522689dd5724bad31635285a44e66 Mon Sep 17 00:00:00 2001 From: Noam ZERAH <noam.zerah@cea.fr> Date: Wed, 19 Mar 2025 13:03:15 +0000 Subject: [PATCH] Fixing resetInput() with MetaOps --- src/PTQ/PTQ.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/PTQ/PTQ.cpp b/src/PTQ/PTQ.cpp index da98ed6..2875963 100644 --- a/src/PTQ/PTQ.cpp +++ b/src/PTQ/PTQ.cpp @@ -20,6 +20,7 @@ #include "aidge/scheduler/SequentialScheduler.hpp" #include "aidge/scheduler/Scheduler.hpp" #include "aidge/utils/Log.hpp" +#include "aidge/operator/MetaOperator.hpp" #include "aidge/operator/Producer.hpp" #include "aidge/operator/Mul.hpp" @@ -83,12 +84,19 @@ bool isNotQuantized(std::shared_ptr<Node> node) } void clearGraphViewInputNodes(std::shared_ptr<GraphView> graphView,DataType targetType) { - for (std::shared_ptr<Aidge::Node> input_node: graphView->inputNodes()) + for (std::shared_ptr<Aidge::Node> inputNode: graphView->inputNodes()) { - auto cast_node = Cast(targetType); - cast_node->addChild(input_node); - graphView->add(cast_node); + if(expandMetaOp(inputNode)) //Reset Tensor does not work on MetaOps + { + inputNode = std::static_pointer_cast<MetaOperator_Op>(inputNode->getOperator())->getMicroGraph()->getOrderedNodes()[0]; + } + for (Aidge::IOIndex_t index = inputNode->getFirstFreeDataInput();index < inputNode->getNbFreeDataInputs(); index++) + { + std::shared_ptr<OperatorTensor> firstOperatorTensor = std::static_pointer_cast<OperatorTensor>(inputNode->getOperator()); + firstOperatorTensor->resetInput(inputNode->getFirstFreeDataInput()); + } } + } bool checkArchitecture(std::shared_ptr<GraphView> graphView) { -- GitLab