diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-06-23 17:15:54 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-23 17:15:54 +0200 |
commit | cf0b960886abf6be85ab45025af7150465153f6f (patch) | |
tree | 76e7a645a154733264c3135369f6e5e37c5ffee5 /searchcore | |
parent | 9171799dc67a80afa0dd9ec49aa20e740123b5b3 (diff) | |
parent | 6558fa641b2b762f710c02448c887c40e60b1d18 (diff) |
Merge pull request #18386 from vespa-engine/havardpe/onnx-dry-run-impl
dry run onnx models on setup
Diffstat (limited to 'searchcore')
3 files changed, 26 insertions, 2 deletions
diff --git a/searchcore/src/apps/verify_ranksetup/verify_ranksetup.cpp b/searchcore/src/apps/verify_ranksetup/verify_ranksetup.cpp index 853395be3e1..7a3803626c8 100644 --- a/searchcore/src/apps/verify_ranksetup/verify_ranksetup.cpp +++ b/searchcore/src/apps/verify_ranksetup/verify_ranksetup.cpp @@ -67,7 +67,7 @@ RankingExpressions make_expressions(const RankingExpressionsConfig &expressionsC if (auto file = get_file(entry.fileref, myCfg)) { expressions.add(entry.name, file.value()); } else { - LOG(warning, "could not find file for ranking expression '%s' (ref:'%s')", + LOG(warning, "could not find file name for ranking expression '%s' (ref:'%s')", entry.name.c_str(), entry.fileref.c_str()); } } @@ -81,7 +81,7 @@ OnnxModels make_models(const OnnxModelsConfig &modelsCfg, const VerifyRanksetupC model_list.emplace_back(entry.name, file.value()); OnnxModels::configure(entry, model_list.back()); } else { - LOG(warning, "could not find file for onnx model '%s' (ref:'%s')", + LOG(warning, "could not find file name for onnx model '%s' (ref:'%s')", entry.name.c_str(), entry.fileref.c_str()); } } diff --git a/searchcore/src/tests/proton/verify_ranksetup/verify_ranksetup_test.cpp b/searchcore/src/tests/proton/verify_ranksetup/verify_ranksetup_test.cpp index fc70bafed7f..c13440de4d5 100644 --- a/searchcore/src/tests/proton/verify_ranksetup/verify_ranksetup_test.cpp +++ b/searchcore/src/tests/proton/verify_ranksetup/verify_ranksetup_test.cpp @@ -188,6 +188,7 @@ struct Setup { out.fmt("model[%zu].output[%zu].as \"%s\"\n", idx, idx2, output.second.c_str()); ++idx2; } + out.fmt("model[%zu].dry_run_on_setup %s\n", idx, entry.second.dry_run_on_setup() ? "true" : "false"); ++idx; } } @@ -269,6 +270,10 @@ struct OnnxSetup : Setup { .input_feature("attribute_tensor", "rankingExpression(at)") .input_feature("bias_tensor", "rankingExpression(bt)") .output_name("output", "result")); + add_onnx_model(OnnxModel("fragile", TEST_PATH("../../../../../searchlib/src/tests/features/onnx_feature/fragile.onnx")) + .dry_run_on_setup(true)); + add_onnx_model(OnnxModel("unfragile", TEST_PATH("../../../../../searchlib/src/tests/features/onnx_feature/fragile.onnx")) + .dry_run_on_setup(false)); } }; @@ -417,6 +422,24 @@ TEST_F("require that onnx model can have inputs and outputs mapped", OnnxSetup() f.verify_valid({"onnxModel(mapped).result"}); } +TEST_F("require that fragile model can pass verification", OnnxSetup()) { + f.rank_expr("in1", "tensor<float>(a[2]):[1,2]"); + f.rank_expr("in2", "tensor<float>(a[2]):[3,4]"); + f.verify_valid({"onnxModel(fragile)"}); +} + +TEST_F("require that broken fragile model fails verification", OnnxSetup()) { + f.rank_expr("in1", "tensor<float>(a[2]):[1,2]"); + f.rank_expr("in2", "tensor<float>(a[3]):[3,4,31515]"); + f.verify_invalid({"onnxModel(fragile)"}); +} + +TEST_F("require that broken fragile model without dry-run passes verification", OnnxSetup()) { + f.rank_expr("in1", "tensor<float>(a[2]):[1,2]"); + f.rank_expr("in2", "tensor<float>(a[3]):[3,4,31515]"); + f.verify_valid({"onnxModel(unfragile)"}); +} + //----------------------------------------------------------------------------- TEST_F("cleanup files", Setup()) { diff --git a/searchcore/src/vespa/searchcore/proton/matching/onnx_models.cpp b/searchcore/src/vespa/searchcore/proton/matching/onnx_models.cpp index ed80ca28bd6..43e29e37b62 100644 --- a/searchcore/src/vespa/searchcore/proton/matching/onnx_models.cpp +++ b/searchcore/src/vespa/searchcore/proton/matching/onnx_models.cpp @@ -46,6 +46,7 @@ OnnxModels::configure(const ModelConfig &config, Model &model) for (const auto &output: config.output) { model.output_name(output.name, output.as); } + model.dry_run_on_setup(config.dryRunOnSetup); } } |