diff options
author | Isabella Gottardi <isabella.gottardi@arm.com> | 2019-01-08 13:48:44 +0000 |
---|---|---|
committer | Isabella Gottardi <isabella.gottardi@arm.com> | 2019-08-06 07:58:16 +0000 |
commit | a7acb3cbabeb66ce647684466a04c96b2963c9c9 (patch) | |
tree | 7988b75372c8ad1dfa3c8d028ab3a603a5e5a047 /utils/Utils.h | |
parent | 4746326ecb075dcfa123aaa8b38de5ec3e534b60 (diff) | |
download | ComputeLibrary-a7acb3cbabeb66ce647684466a04c96b2963c9c9.tar.gz |
COMPMID-1849: Implement CPPDetectionPostProcessLayer
* Add DetectionPostProcessLayer
* Add DetectionPostProcessLayer at the graph
Change-Id: I7e56f6cffc26f112d26dfe74853085bb8ec7d849
Signed-off-by: Isabella Gottardi <isabella.gottardi@arm.com>
Reviewed-on: https://review.mlplatform.org/c/1639
Reviewed-by: Giuseppe Rossini <giuseppe.rossini@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'utils/Utils.h')
-rw-r--r-- | utils/Utils.h | 40 |
1 files changed, 16 insertions, 24 deletions
diff --git a/utils/Utils.h b/utils/Utils.h index ba10d7c803..cc5dfbabc2 100644 --- a/utils/Utils.h +++ b/utils/Utils.h @@ -616,10 +616,10 @@ void save_to_ppm(T &tensor, const std::string &ppm_filename) * @param[in] npy_filename Filename of the file to create. * @param[in] fortran_order If true, save matrix in fortran order. */ -template <typename T> +template <typename T, typename U = float> void save_to_npy(T &tensor, const std::string &npy_filename, bool fortran_order) { - ARM_COMPUTE_ERROR_ON_DATA_TYPE_NOT_IN(&tensor, arm_compute::DataType::F32); + ARM_COMPUTE_ERROR_ON_DATA_TYPE_NOT_IN(&tensor, arm_compute::DataType::F32, arm_compute::DataType::QASYMM8); std::ofstream fs; try @@ -637,33 +637,25 @@ void save_to_npy(T &tensor, const std::string &npy_filename, bool fortran_order) // Map buffer if creating a CLTensor map(tensor, true); - switch(tensor.info()->data_type()) - { - case arm_compute::DataType::F32: - { - std::vector<float> tmp; /* Used only to get the typestring */ - npy::Typestring typestring_o{ tmp }; - std::string typestring = typestring_o.str(); + using typestring_type = typename std::conditional<std::is_floating_point<U>::value, float, qasymm8_t>::type; - std::ofstream stream(npy_filename, std::ofstream::binary); - npy::write_header(stream, typestring, fortran_order, shape); + std::vector<typestring_type> tmp; /* Used only to get the typestring */ + npy::Typestring typestring_o{ tmp }; + std::string typestring = typestring_o.str(); - arm_compute::Window window; - window.use_tensor_dimensions(tensor.info()->tensor_shape()); + std::ofstream stream(npy_filename, std::ofstream::binary); + npy::write_header(stream, typestring, fortran_order, shape); - arm_compute::Iterator in(&tensor, window); + arm_compute::Window window; + window.use_tensor_dimensions(tensor.info()->tensor_shape()); - arm_compute::execute_window_loop(window, [&](const arm_compute::Coordinates & id) - { - stream.write(reinterpret_cast<const char *>(in.ptr()), sizeof(float)); - }, - in); + arm_compute::Iterator in(&tensor, window); - break; - } - default: - ARM_COMPUTE_ERROR("Unsupported format"); - } + arm_compute::execute_window_loop(window, [&](const arm_compute::Coordinates & id) + { + stream.write(reinterpret_cast<const char *>(in.ptr()), sizeof(typestring_type)); + }, + in); // Unmap buffer if creating a CLTensor unmap(tensor); |