Browse Source

minddata build with mindspore-lite train

tags/v1.1.0
xulei2020 5 years ago
parent
commit
8f392204be
6 changed files with 14 additions and 6 deletions
  1. +1
    -0
      build.sh
  2. +3
    -0
      mindspore/ccsrc/minddata/dataset/kernels/data/data_utils.cc
  3. +4
    -1
      mindspore/ccsrc/minddata/dataset/kernels/data/data_utils.h
  4. +2
    -1
      mindspore/ccsrc/minddata/dataset/kernels/data/unique_op.cc
  5. +2
    -2
      mindspore/ccsrc/minddata/dataset/kernels/image/lite_cv/image_process.h
  6. +2
    -2
      tests/ut/python/dataset/test_unique_op.py

+ 1
- 0
build.sh View File

@@ -306,6 +306,7 @@ checkopts()
T)
check_on_off $OPTARG T
SUPPORT_TRAIN=$OPTARG
COMPILE_MINDDATA_LITE="full"
echo "support train on device "
;;
A)


+ 3
- 0
mindspore/ccsrc/minddata/dataset/kernels/data/data_utils.cc View File

@@ -706,6 +706,8 @@ Status TensorVectorToBatchTensor(const std::vector<std::shared_ptr<Tensor>> &inp
}
return Status::OK();
}

#ifndef ENABLE_ANDROID
template <typename T>
struct UniqueOpHashMap {
using map_type = std::unordered_map<T, int32_t>;
@@ -778,6 +780,7 @@ Status Unique(const std::shared_ptr<Tensor> &input, std::shared_ptr<Tensor> *out
}
return Status::OK();
}
#endif

} // namespace dataset
} // namespace mindspore

+ 4
- 1
mindspore/ccsrc/minddata/dataset/kernels/data/data_utils.h View File

@@ -19,7 +19,9 @@
#include <memory>
#include <string>
#include <vector>
#ifndef ENABLE_ANDROID
#include <unordered_map>
#endif
#include "minddata/dataset/core/constants.h"
#include "minddata/dataset/core/cv_tensor.h"
#include "minddata/dataset/core/data_type.h"
@@ -177,6 +179,7 @@ Status BatchTensorToTensorVector(const std::shared_ptr<Tensor> &input, std::vect
/// \return Status ok/error
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
/// @tparam T type of the tensor
/// \param input[in] input 1d tensor
@@ -197,7 +200,7 @@ Status UniqueHelper(const std::shared_ptr<Tensor> &input, std::shared_ptr<Tensor
/// \return Status ok/error
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);
#endif
} // namespace dataset
} // namespace mindspore



+ 2
- 1
mindspore/ccsrc/minddata/dataset/kernels/data/unique_op.cc View File

@@ -23,6 +23,7 @@ namespace mindspore {
namespace dataset {

Status UniqueOp::Compute(const TensorRow &input, TensorRow *output) {
#ifndef ENABLE_ANDROID
IO_CHECK_VECTOR(input, output);
CHECK_FAIL_RETURN_UNEXPECTED(input.size() == 1, "Input should be one tensor");

@@ -43,10 +44,10 @@ Status UniqueOp::Compute(const TensorRow &input, TensorRow *output) {
std::shared_ptr<Tensor> out_cnt;

RETURN_IF_NOT_OK(Unique(in_tensor, &out, &out_idx, &out_cnt));

output->push_back(out);
output->push_back(out_idx);
output->push_back(out_cnt);
#endif
return Status::OK();
}
} // namespace dataset


+ 2
- 2
mindspore/ccsrc/minddata/dataset/kernels/image/lite_cv/image_process.h View File

@@ -81,10 +81,10 @@ bool SubStractMeanNormalize(const LiteMat &src, LiteMat &dst, const std::vector<
bool Pad(const LiteMat &src, LiteMat &dst, int top, int bottom, int left, int right, PaddBorderType pad_type,
uint8_t fill_b_or_gray, uint8_t fill_g, uint8_t fill_r);

/// \brief extract image channel by index
/// \brief Extract image channel by index
bool ExtractChannel(const LiteMat &src, LiteMat &dst, int col);

/// \brief split image channels to single channel
/// \brief Split image channels to single channel
bool Split(const LiteMat &src, std::vector<LiteMat> &mv);

/// \brief Create a multi-channel image out of several single-channel arrays.


+ 2
- 2
tests/ut/python/dataset/test_unique_op.py View File

@@ -31,8 +31,8 @@ def compare(array, res, idx, cnt):
np.testing.assert_array_equal(idx, d["y"])
np.testing.assert_array_equal(cnt, d["z"])

def test_duplicate_basics():
# the test function name code will be start with 'test' later
def duplicate_basics():
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]))
compare([0.0, 1.0, 2.0, 1.0, 2.0, 3.0], np.array([0.0, 1.0, 2.0, 3.0]),


Loading…
Cancel
Save