diff --git a/src/backend/OperatorImpl.cpp b/src/backend/OperatorImpl.cpp index 8a4924c0e3e6c8f0e6625232451a4267c5d9b318..5c25ad6056c054b8e757fd942d8f77ccebbf0741 100644 --- a/src/backend/OperatorImpl.cpp +++ b/src/backend/OperatorImpl.cpp @@ -235,6 +235,11 @@ bool Aidge::OperatorImpl::checkIOSpec(const ImplSpec::IOSpec& required, const Im } std::shared_ptr<Aidge::Node> Aidge::OperatorImpl::getAdaptation(const ImplSpec& spec, const ImplSpec& requiredSpecs) const { + // Original graph is: + // --> {required IO specs} [node] {required IO specs} --> + // Obtained meta-op is: + // --> {required IO specs} [adapt inputs] --> {IO specs} [node] {IO specs} --> [adapt outputs] {required IO specs} + auto op = std::static_pointer_cast<OperatorTensor>(mOp.clone()); auto node = std::make_shared<Node>(op); @@ -306,7 +311,7 @@ std::shared_ptr<Aidge::Node> Aidge::OperatorImpl::getAdaptation(const ImplSpec& cast->getOperator()->setBackend(node->getOperator()->backend()); parent->addChild(cast, i, 0); - op->getOutput(i)->setDataType(IOSpec.type); + op->getInput(i)->setDataType(IOSpec.type); } // Output format @@ -321,7 +326,7 @@ std::shared_ptr<Aidge::Node> Aidge::OperatorImpl::getAdaptation(const ImplSpec& transposeOp->getOperator()->setBackend(node->getOperator()->backend()); parent->addChild(transposeOp, i, 0); - op->getOutput(i)->setDataFormat(IOSpec.format); + op->getInput(i)->setDataFormat(IOSpec.format); } // Output dims