Skip to content
Snippets Groups Projects
Commit 68549dad authored by Maxence Naud's avatar Maxence Naud
Browse files

Fix branch

parent 6ab5353e
No related branches found
No related tags found
3 merge requests!1190.2.1,!113Draft: Fix slice,!104Make forwardDims() optional and handle data dependency
...@@ -52,7 +52,7 @@ class test_OperatorImpl(unittest.TestCase): ...@@ -52,7 +52,7 @@ class test_OperatorImpl(unittest.TestCase):
self.assertTrue("cpu" in aidge_core.get_keys_ConvOp2D()) self.assertTrue("cpu" in aidge_core.get_keys_ConvOp2D())
conv = aidge_core.Conv2D(2,2,[1,1], name="Conv0") conv = aidge_core.Conv2D(2,2,[1,1], name="Conv0")
conv.get_operator().set_backend("cpu") conv.get_operator().set_backend("cpu")
conv.get_operator().set_input(0, aidge_core.Tensor(np.arange(9).reshape(1,1,3,3))) conv.get_operator().set_input(0, aidge_core.Tensor(np.arange(18).reshape(1,2,3,3)))
conv.get_operator().forward() conv.get_operator().forward()
self.assertEqual(GLOBAL_CPT, 1) self.assertEqual(GLOBAL_CPT, 1)
...@@ -66,7 +66,7 @@ class test_OperatorImpl(unittest.TestCase): ...@@ -66,7 +66,7 @@ class test_OperatorImpl(unittest.TestCase):
conv = aidge_core.Conv2D(2,2,[1,1], name="Conv0") conv = aidge_core.Conv2D(2,2,[1,1], name="Conv0")
model = aidge_core.sequential([conv]) model = aidge_core.sequential([conv])
model.set_backend("cpu") model.set_backend("cpu")
conv.get_operator().set_input(0, aidge_core.Tensor(np.arange(9).reshape(1,1,3,3))) conv.get_operator().set_input(0, aidge_core.Tensor(np.arange(18).reshape(1,2,3,3)))
conv.get_operator().forward() conv.get_operator().forward()
self.assertEqual(GLOBAL_CPT, 1) self.assertEqual(GLOBAL_CPT, 1)
......
...@@ -25,6 +25,7 @@ namespace py = pybind11; ...@@ -25,6 +25,7 @@ namespace py = pybind11;
namespace Aidge { namespace Aidge {
void init_Operator(py::module& m){ void init_Operator(py::module& m){
py::class_<Operator, std::shared_ptr<Operator>>(m, "Operator") py::class_<Operator, std::shared_ptr<Operator>>(m, "Operator")
.def("backend", &Operator::backend)
.def("set_output", py::overload_cast<const IOIndex_t, const std::shared_ptr<Data>&>(&Operator::setOutput), py::arg("outputIdx"), py::arg("data")) .def("set_output", py::overload_cast<const IOIndex_t, const std::shared_ptr<Data>&>(&Operator::setOutput), py::arg("outputIdx"), py::arg("data"))
.def("set_input", py::overload_cast<const IOIndex_t, const std::shared_ptr<Data>&>(&Operator::setInput), py::arg("inputIdx"), py::arg("data")) .def("set_input", py::overload_cast<const IOIndex_t, const std::shared_ptr<Data>&>(&Operator::setInput), py::arg("inputIdx"), py::arg("data"))
.def("get_raw_output", &Operator::getRawOutput, py::arg("outputIdx")) .def("get_raw_output", &Operator::getRawOutput, py::arg("outputIdx"))
......
...@@ -28,7 +28,7 @@ namespace Aidge { ...@@ -28,7 +28,7 @@ namespace Aidge {
void declare_Transpose(py::module &m) { void declare_Transpose(py::module &m) {
const std::string pyClassName("TransposeOp"); const std::string pyClassName("TransposeOp");
py::class_<Transpose_Op, std::shared_ptr<Transpose_Op>, Attributes, OperatorTensor>( py::class_<Transpose_Op, std::shared_ptr<Transpose_Op>, Attributes, OperatorTensor>(
m, ("TransposeOp").c_str(), py::multiple_inheritance()) m, "TransposeOp", py::multiple_inheritance())
.def("get_inputs_name", &Transpose_Op::getInputsName) .def("get_inputs_name", &Transpose_Op::getInputsName)
.def("get_outputs_name", &Transpose_Op::getOutputsName) .def("get_outputs_name", &Transpose_Op::getOutputsName)
.def("attributes_name", &Transpose_Op::staticGetAttrsName); .def("attributes_name", &Transpose_Op::staticGetAttrsName);
......
...@@ -45,11 +45,11 @@ void Aidge::Concat_OpImpl::forward() { ...@@ -45,11 +45,11 @@ void Aidge::Concat_OpImpl::forward() {
} }
std::size_t oIndexStart = 0; std::size_t oIndexStart = 0;
std::size_t oIndex = 0; // std::size_t oIndex = 0;
for (std::size_t inputId = 0; inputId < op.nbInputs(); ++inputId) { for (std::size_t inputId = 0; inputId < op.nbInputs(); ++inputId) {
oIndex = oIndexStart; // oIndex = oIndexStart;
const DimSize_t iOffset = prodDimHigher*op.getInput(inputId)->dims()[axis]; const DimSize_t iOffset = prodDimHigher*op.getInput(inputId)->dims()[axis];
for (std::size_t iIndex = 0; iIndex < prodDimLower; ++iIndex) { for (std::size_t iIndex = 0, oIndex = oIndexStart; iIndex < prodDimLower; ++iIndex) {
op.getOutput(0)->getImpl()->copy(op.getInput(inputId)->getImpl()->rawPtr(iIndex*iOffset), iOffset, oIndex); op.getOutput(0)->getImpl()->copy(op.getInput(inputId)->getImpl()->rawPtr(iIndex*iOffset), iOffset, oIndex);
oIndex += prodDimHigher*outputAxisValue; oIndex += prodDimHigher*outputAxisValue;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment