2017-08-20 20 views
2

マシン学習モデルファイルを使用するJavaユニットテストがあります。model.binと呼ばれています。これは外部ツール(C++ルールを使用して既に構築されているmodel-builderと呼ばれます)によって単純なテキストファイルから構築されています。 )。 genruleを定義するのは理にかなっていますが、deps(私の場合はmodel.bin & model-builder)をサポートしていません。 2つのオプションがあります。機械学習モデルテスト

  • model.binファイルを作成します。概念的には、これは実際に私がテストしたいものではありません(私はプレビルドモデルのテストをテストしたい)。
  • ./model-builder --in my-input.txt --out model.binを実行するカスタム拡張子ruleを実装します。

Bazelのベストプラクティスは何ですか?

答えて

2

あなたの説明から、私はgenruleが最善のルートだと信じています。 genruleにはdepsがありますが、model.binが生成されたファイルであり、outという意味になります。 model-builderは、ファイルを生成するためのツールのように見えますが、これはジャンルとして意味があります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 [email protected]" 
)