Jubamodel Reference

書式

jubamodel [--in-format IN_FORMAT] [--out-format OUT_FORMAT]
          [--output OUTPUT] [--output-config OUTPUT_CONFIG]
          [--replace-config REPLACE_CONFIG] [--replace-version REPLACE_VERSION]
          [--transform TRANSFORM]
          [--no-validate] [--fix-header] [--help]  model_file

説明

jubamodel はモデルファイルの低レベルな操作をするコマンドラインユーティリティです。高レベルで使いやすいモデルの出力をしたい場合は、jubadump コマンドを利用して下さい。jubadump とは異なり、jubamodel はサービスに依存しません。 どのサービスのモデルファイルにも jubamodel を使うことができます。

モデルの構造は Jubatus Wiki に書かれています。

オプション

  • [] 内の値はデフォルト値を示します。
-i <format>, --in-format <format>

入力のモデルファイルの形式。[auto]

指定可能な形式は auto (デフォルト)と binaryjson です。auto : 指定されたファイルから自動で形式を推定します。 binary : Jubatus サーバで読み込める形式です。 json : jubamodel コマンドで読める形式です。

-o <format>, --out-format <format>

出力のモデルファイルの形式。[text]

指定可能な形式は text (デフォルト)と binaryjson です。text はユーザフレンドリーな形式です。 binaryjson--in-format と同じです。

-O <output>, --output <output>

モデルの出力先パス。指定された場合、結果は標準出力のかわりにここで指定されたファイルに書き込まれます。このオプションは --out-format オプションで binary を指定した場合は必須です。

-C <output_config>, --output-config <output_config>

Jubatus の設定ファイルの出力先パス。指定された場合、モデルファイルから抽出された Jubatus の設定ファイルはここで指定されたファイルに書き込まれます。

-R <replace_config>, --replace-config <replace_config>

使用するコンフィグファイルのパス。指定された場合、モデルファイルの設定( JSON )はここで指定されたファイルで上書きされます。 --fix-header と同時に指定する場合、 CRC32 チェックサムと他のヘッダの値は新しい設定で上書かれます。

このオプションを使用する場合、学習済みモデルのハイパーパラメータが予期せず変更されてしまうことが無いよう、よく理解した上でご利用下さい。

-Z <replace_version>, --replace-version <replace_version>

Jubatus のバージョン番号(例: 1.0.1)。指定された場合、モデルファイルに埋め込まれる Jubatus のバージョン番号は指定された番号で上書きされます。--fix-header オプションと同時に指定する場合、 CRC32 チェックサムと他のヘッダの値が新しいバージョン番号に併せて変更されます。

この機能は異なるバージョンの Jubatus の間でモデルを移行するのに役立ちますが、変更されたモデルが指定されたバージョンの Jubatus でロードできるという保証はありません。

-T <transform>, --transform <TRANSFORM>

モデルファイルを異なるサービスのモデルファイルに変換します。

例えば、 NN ベースのモデルを Classifier(NN) または Anomaly(light_lof)で利用している場合、以下のコマンドでモデルファイルを Nearest Neighbor のモデルに変換することができます。

$ jubamodel --transform nearest_neighbor -o binary -O output_transformed_model.jubatus input_classifier_model.jubatus

そうして変換したモデルは Nearest Neighbor でロードすることが出来ます。

$ jubanearest_neighbor --model_file output_transformed_model.jubatus

サポートされている変換方法は以下の通りです。

サービス (method) 変換可能なサービス
Classifier (NN) Nearest Neighbor / Weight
Classifier (NN 以外) Weight
Regression (NN) Nearest Neighbor / Weight
Regression (NN 以外) Weight
Recommender (nearest_neighbor_recommender) Nearest Neighbor / Weight
Recommender (nearest_neighbor_recommender 以外) Weight
Anomaly (lof) Recommender / Weight
Anomaly (light_lof) Nearest Neighbor / Weight
Clustering Weight
-f, --no-validate

binary 形式のモデルファイルをロードする際、 jubamodel コマンドはモデルデータの構造を( CRC32 チェックサムを含めて)バリデーションしますが、このオプションが指定された場合はバリデーションは行われません。

-F, --fix-header

このオプションを指定すると、モデルのデータ構造が修正されます。 これには、CRC32 チェックサムとコンテナの長さの再計算が含まれます。

詳細については、利用例のセクションを参照してください。

-h, --help

コマンドの使用方法を表示します。

利用例

jubamodel コマンドを使うことで、モデルファイルのメタデータを確認することができます。

$ jubamodel /tmp/127.0.0.1_9199_classifier_test.jubatus

バイナリのモデルファイルを JSON 形式に変換するには、以下のように使います。

$ jubamodel -o json -O /tmp/model.json /tmp/127.0.0.1_9199_classifier_test.jubatus

JSON 形式に変換したら、 JSON ファイルを手動で変更できます。その後、変更された JSON のモデルをバイナリ形式に再度変換することができます。(CRC32 チェックサムと他のシステムデータを再計算する -F オプションにご注意下さい。

$ jubamodel -fF -o binary -O /tmp/127.0.0.1_9199_classifier_test2.jubatus /tmp/model.json