Merge pull request !7676 from liyong126/fix_arm_envtags/v1.1.0
| @@ -707,11 +707,37 @@ Status TensorVectorToBatchTensor(const std::vector<std::shared_ptr<Tensor>> &inp | |||||
| return Status::OK(); | return Status::OK(); | ||||
| } | } | ||||
| #ifndef ENABLE_ANDROID | |||||
| template <typename T> | template <typename T> | ||||
| struct UniqueOpHashMap { | struct UniqueOpHashMap { | ||||
| using map_type = std::unordered_map<T, int32_t>; | using map_type = std::unordered_map<T, int32_t>; | ||||
| }; | }; | ||||
| #ifndef ENABLE_ANDROID | |||||
| template <> | |||||
| struct UniqueOpHashMap<float16> { | |||||
| using map_type = std::unordered_map<float16, int32_t>; | |||||
| }; | |||||
| #else | |||||
| struct gn_hash { | |||||
| size_t operator()(const float16 &f) const { return static_cast<std::size_t>(f); } | |||||
| }; | |||||
| template <> | |||||
| struct UniqueOpHashMap<float16> { | |||||
| using map_type = std::unordered_map<float16, int32_t, gn_hash>; | |||||
| }; | |||||
| #endif | |||||
| template <> | |||||
| struct UniqueOpHashMap<float> { | |||||
| using map_type = std::unordered_map<float, int32_t>; | |||||
| }; | |||||
| template <> | |||||
| struct UniqueOpHashMap<double> { | |||||
| using map_type = std::unordered_map<double, int32_t>; | |||||
| }; | |||||
| template <typename T> | template <typename T> | ||||
| Status UniqueHelper(const std::shared_ptr<Tensor> &input, std::shared_ptr<Tensor> *output, | Status UniqueHelper(const std::shared_ptr<Tensor> &input, std::shared_ptr<Tensor> *output, | ||||
| @@ -780,7 +806,6 @@ Status Unique(const std::shared_ptr<Tensor> &input, std::shared_ptr<Tensor> *out | |||||
| } | } | ||||
| return Status::OK(); | return Status::OK(); | ||||
| } | } | ||||
| #endif | |||||
| } // namespace dataset | } // namespace dataset | ||||
| } // namespace mindspore | } // namespace mindspore | ||||
| @@ -19,9 +19,7 @@ | |||||
| #include <memory> | #include <memory> | ||||
| #include <string> | #include <string> | ||||
| #include <vector> | #include <vector> | ||||
| #ifndef ENABLE_ANDROID | |||||
| #include <unordered_map> | #include <unordered_map> | ||||
| #endif | |||||
| #include "minddata/dataset/core/constants.h" | #include "minddata/dataset/core/constants.h" | ||||
| #include "minddata/dataset/core/cv_tensor.h" | #include "minddata/dataset/core/cv_tensor.h" | ||||
| #include "minddata/dataset/core/data_type.h" | #include "minddata/dataset/core/data_type.h" | ||||
| @@ -179,7 +177,6 @@ Status BatchTensorToTensorVector(const std::shared_ptr<Tensor> &input, std::vect | |||||
| /// \return Status ok/error | /// \return Status ok/error | ||||
| Status TensorVectorToBatchTensor(const std::vector<std::shared_ptr<Tensor>> &input, std::shared_ptr<Tensor> *output); | Status TensorVectorToBatchTensor(const std::vector<std::shared_ptr<Tensor>> &input, std::shared_ptr<Tensor> *output); | ||||
| #ifndef ENABLE_ANDROID | |||||
| /// Helper method that uniques the input tensor | /// Helper method that uniques the input tensor | ||||
| /// @tparam T type of the tensor | /// @tparam T type of the tensor | ||||
| /// \param input[in] input 1d tensor | /// \param input[in] input 1d tensor | ||||
| @@ -200,7 +197,6 @@ Status UniqueHelper(const std::shared_ptr<Tensor> &input, std::shared_ptr<Tensor | |||||
| /// \return Status ok/error | /// \return Status ok/error | ||||
| Status Unique(const std::shared_ptr<Tensor> &input, std::shared_ptr<Tensor> *output, | Status Unique(const std::shared_ptr<Tensor> &input, std::shared_ptr<Tensor> *output, | ||||
| std::shared_ptr<Tensor> *output_idx, std::shared_ptr<Tensor> *output_cnt); | std::shared_ptr<Tensor> *output_idx, std::shared_ptr<Tensor> *output_cnt); | ||||
| #endif | |||||
| } // namespace dataset | } // namespace dataset | ||||
| } // namespace mindspore | } // namespace mindspore | ||||
| @@ -23,7 +23,6 @@ namespace mindspore { | |||||
| namespace dataset { | namespace dataset { | ||||
| Status UniqueOp::Compute(const TensorRow &input, TensorRow *output) { | Status UniqueOp::Compute(const TensorRow &input, TensorRow *output) { | ||||
| #ifndef ENABLE_ANDROID | |||||
| IO_CHECK_VECTOR(input, output); | IO_CHECK_VECTOR(input, output); | ||||
| CHECK_FAIL_RETURN_UNEXPECTED(input.size() == 1, "Input should be one tensor"); | CHECK_FAIL_RETURN_UNEXPECTED(input.size() == 1, "Input should be one tensor"); | ||||
| @@ -47,7 +46,6 @@ Status UniqueOp::Compute(const TensorRow &input, TensorRow *output) { | |||||
| output->push_back(out); | output->push_back(out); | ||||
| output->push_back(out_idx); | output->push_back(out_idx); | ||||
| output->push_back(out_cnt); | output->push_back(out_cnt); | ||||
| #endif | |||||
| return Status::OK(); | return Status::OK(); | ||||
| } | } | ||||
| } // namespace dataset | } // namespace dataset | ||||
| @@ -31,8 +31,7 @@ def compare(array, res, idx, cnt): | |||||
| np.testing.assert_array_equal(idx, d["y"]) | np.testing.assert_array_equal(idx, d["y"]) | ||||
| np.testing.assert_array_equal(cnt, d["z"]) | np.testing.assert_array_equal(cnt, d["z"]) | ||||
| # the test function name code will be start with 'test' later | |||||
| def duplicate_basics(): | |||||
| def test_duplicate_basics(): | |||||
| compare([0, 1, 2, 1, 2, 3], np.array([0, 1, 2, 3]), | compare([0, 1, 2, 1, 2, 3], np.array([0, 1, 2, 3]), | ||||
| np.array([0, 1, 2, 1, 2, 3]), np.array([1, 2, 2, 1])) | np.array([0, 1, 2, 1, 2, 3]), np.array([1, 2, 2, 1])) | ||||
| compare([0.0, 1.0, 2.0, 1.0, 2.0, 3.0], np.array([0.0, 1.0, 2.0, 3.0]), | compare([0.0, 1.0, 2.0, 1.0, 2.0, 3.0], np.array([0.0, 1.0, 2.0, 3.0]), | ||||