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;
     }