diff --git a/python_binding/data/pybind_Tensor.cpp b/python_binding/data/pybind_Tensor.cpp index 2171d48975db8f4029abe7982bf6dfc17640dd52..ff11c9c6c8911b8f48e1a6d30333577796511b0c 100644 --- a/python_binding/data/pybind_Tensor.cpp +++ b/python_binding/data/pybind_Tensor.cpp @@ -642,7 +642,10 @@ void init_Tensor(py::module& m){ break; case DataType::Float32: dataFormatDescriptor = py::format_descriptor<float>::format(); - break;; + break; + case DataType::Float16: + dataFormatDescriptor = py::format_descriptor<float>::format(); + break; case DataType::Int4: dataFormatDescriptor = py::format_descriptor<std::int8_t>::format(); break; @@ -710,7 +713,7 @@ void init_Tensor(py::module& m){ dataFormatDescriptor = py::format_descriptor<std::uint64_t>::format(); break; default: - throw py::value_error("Unsupported data format"); + AIDGE_THROW_OR_ABORT(std::runtime_error, "Unsupported data format: {}", b.dataType()); } return py::buffer_info( diff --git a/src/operator/Flatten.cpp b/src/operator/Flatten.cpp index e02c7abe6557469763e042044609fe8b59115a45..4714feb11659a879a81984c638ad6872545c23b0 100644 --- a/src/operator/Flatten.cpp +++ b/src/operator/Flatten.cpp @@ -53,7 +53,8 @@ std::shared_ptr<Aidge::Operator> Aidge::Flatten_Op::clone() const { bool Aidge::Flatten_Op::forwardDims(bool /*allowDataDependency*/) { if (inputsAssociated()) { const auto inDims(getInput(0)->dims()); - const auto firstDim = std::accumulate(inDims.begin(), inDims.begin() + axis(), 1ULL, std::multiplies<DimSize_t>()); + const auto kAxis = (axis() >= 0) ? axis() : axis() + static_cast<std::int8_t>(inDims.size()); + const auto firstDim = std::accumulate(inDims.begin(), inDims.begin() + kAxis, 1ULL, std::multiplies<DimSize_t>()); mOutputs[0]->resize({firstDim, getInput(0)->size() / firstDim}); return true; }