机器学习模型测试

时间:2017-08-20 20:37:38

标签: bazel

我有一个Java单元测试,它将使用机器学习模型文件,称之为model.bin,它是由一个简单的文本文件通过外部工具构建的(称之为model-builder,已经构建通过C ++规则)。虽然定义genrule是有意义的,但在我的情况下它不支持depsmodel.bin& model-builder。我看到两个选择:

  • 让我的测试代码构建model.bin文件。从概念上讲,这不是我想要测试的测试(我想测试阅读prebuild模型)。
  • 实施执行./model-builder --in my-input.txt --out model.bin`。
  • 的自定义扩展程序rule

Bazel的最佳做法是什么?

1 个答案:

答案 0 :(得分:2)

根据您的描述,我认为genoule是最好的路线。虽然genrule确实有deps,但听起来model.bin是你生成的文件,并且作为out有意义。 model-builder看起来像是生成文件的工具,并且作为一个genoule tool有意义。

这样的BUILD文件应该有效。

genrule(
  name = "model-bin",
  srcs = ["//path/to:my-input.txt"],
  outs = ["model.bin"],
  tools = ["//path/to:model-builder"],
  cmd = "$(location //path/to:model-builder) --in $< --out $@"
)
相关问题