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(デフォルト)とbinary、jsonです。auto: 指定されたファイルから自動で形式を推定します。binary: Jubatus サーバで読み込める形式です。json:jubamodelコマンドで読める形式です。
-
-o<format>,--out-format<format>¶ 出力のモデルファイルの形式。[
text]指定可能な形式は
text(デフォルト)とbinary、jsonです。textはユーザフレンドリーな形式です。binaryとjsonは--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