From d0f1670e9f3e7feef62c31f5be11bbe957225231 Mon Sep 17 00:00:00 2001 From: superjomn Date: Sun, 23 Jun 2019 14:31:58 +0800 Subject: [PATCH] make test_apis_lite works --- paddle/fluid/lite/api/apis_test.cc | 27 ++++++++++++++++++++++----- paddle/fluid/lite/api/cxx_api.cc | 6 ++---- paddle/fluid/lite/tools/build.sh | 2 +- 3 files changed, 25 insertions(+), 10 deletions(-) diff --git a/paddle/fluid/lite/api/apis_test.cc b/paddle/fluid/lite/api/apis_test.cc index 0b8e9550a10..a5cf93f0e29 100644 --- a/paddle/fluid/lite/api/apis_test.cc +++ b/paddle/fluid/lite/api/apis_test.cc @@ -46,16 +46,34 @@ bool CompareTensors(const std::string& name, const Predictor& cxx_api, return TensorCompareWith(*a, *b); } -#ifndef LITE_WITH_LIGHT_WEIGHT_FRAMEWORK +TEST(CXXApi_LightApi, optim_model) { + lite::Predictor cxx_api; + std::vector valid_places({ + Place{TARGET(kHost), PRECISION(kFloat)}, + Place{TARGET(kX86), PRECISION(kFloat)}, + Place{TARGET(kARM), PRECISION(kFloat)}, // Both works on X86 and ARM + }); + // On ARM devices, the preferred X86 target not works, but it can still + // select ARM kernels. + cxx_api.Build(FLAGS_model_dir, Place{TARGET(kX86), PRECISION(kFloat)}, + valid_places); + cxx_api.SaveModel(FLAGS_optimized_model); +} + TEST(CXXApi_LightApi, save_and_load_model) { lite::Predictor cxx_api; lite::LightPredictor light_api(FLAGS_optimized_model); // CXXAPi { - std::vector valid_places({Place{TARGET(kHost), PRECISION(kFloat)}, - Place{TARGET(kX86), PRECISION(kFloat)}}); - cxx_api.Build(FLAGS_model_dir, Place{TARGET(kCUDA), PRECISION(kFloat)}, + std::vector valid_places({ + Place{TARGET(kHost), PRECISION(kFloat)}, + Place{TARGET(kX86), PRECISION(kFloat)}, + Place{TARGET(kARM), PRECISION(kFloat)}, // Both works on X86 and ARM + }); + // On ARM devices, the preferred X86 target not works, but it can still + // select ARM kernels. + cxx_api.Build(FLAGS_model_dir, Place{TARGET(kX86), PRECISION(kFloat)}, valid_places); auto* x = cxx_api.GetInput(0); @@ -87,7 +105,6 @@ TEST(CXXApi_LightApi, save_and_load_model) { ASSERT_TRUE(CompareTensors(tensor_name, cxx_api, light_api)); } } -#endif // LITE_WITH_LIGHT_WEIGHT_FRAMEWORK } // namespace lite } // namespace paddle diff --git a/paddle/fluid/lite/api/cxx_api.cc b/paddle/fluid/lite/api/cxx_api.cc index 145d0a1a861..16a5cc89166 100644 --- a/paddle/fluid/lite/api/cxx_api.cc +++ b/paddle/fluid/lite/api/cxx_api.cc @@ -24,13 +24,11 @@ namespace lite { void Predictor::SaveModel(const std::string &dir) { #ifndef LITE_WITH_ARM - LOG(INFO) << "Save model to " << dir; MkDirRecur(dir); - program_->PersistModel(dir, program_desc_); #else - LOG(INFO) << "Save model to ./"; - program_->PersistModel("./", program_desc_); #endif + program_->PersistModel(dir, program_desc_); + LOG(INFO) << "Save model to " << dir; } lite::Tensor *Predictor::GetInput(size_t offset) { diff --git a/paddle/fluid/lite/tools/build.sh b/paddle/fluid/lite/tools/build.sh index 2a63379889c..8c10ca27074 100755 --- a/paddle/fluid/lite/tools/build.sh +++ b/paddle/fluid/lite/tools/build.sh @@ -221,7 +221,7 @@ function test_arm { echo "android do not need armv7hf" return 0 fi - + # TODO(yuanshuai): enable armv7 on android if [[ ${abi} == "armv7" ]]; then echo "skip android v7 test yet" -- GitLab