Platform for AI (PAI) の EasyVision は、マルチラベル画像分類のモデルトレーニングと予測をサポートしており、複数のサーバーでの分散トレーニングと予測も含まれます。このトピックでは、既存のトレーニング済みモデルに基づいてバッチ予測を実行する方法について説明します。
事前準備
入力データを準備してください。詳細については、「入力データ形式」をご参照ください。
Object Storage Service (OSS) にトレーニング済みモデルが利用可能であることを確認してください。
バッチ予測コマンドの実行
次の PAI コマンドを実行して、バッチ画像ラベリングを開始します。このコマンドは、次のいずれかの方法で実行できます。
SQL Script コンポーネント。
MaxCompute クライアント。詳細については、「MaxCompute クライアント (odpscmd)」をご参照ください。
DataWorks の ODPS SQL ノード。詳細については、「MaxCompute SQL タスクの開発」をご参照ください。
pai -name ev_predict_ext
-Dmodel_path='OSS path of your model'
-Dmodel_type='multilabel_classifier'
-Dinput_oss_file='oss://path/to/your/filelist.txt'
-Doutput_oss_file='oss://path/to/your/result.txt'
-Dimage_type='url'
-Dnum_worker=2
-DcpuRequired=800
-DgpuRequired=100
-Dbuckets='Your OSS directory'
-Darn='Alibaba Cloud Resource Name (ARN) of the role that you are assuming'
-DossHost='Your OSS domain'パラメーター
次の表は、コマンドで使用されるパラメーターについて説明しています。
| パラメーター | 説明 |
|---|---|
| model_path | ご利用のモデルの OSS パス。 |
| model_type | モデルのタイプ。マルチラベル画像分類の場合は、このパラメーターを multilabel_classifier に設定します。 |
| input_oss_file | 入力ファイルリストの OSS パス。 |
| output_oss_file | 出力結果ファイルの OSS パス。 |
| image_type | イメージ入力のタイプ。このパラメーターを url に設定します。 |
| num_worker | 分散予測のワーカー数。 |
| cpuRequired | 各ワーカーに必要な CPU リソース。 |
| gpuRequired | 各ワーカーに必要な GPU リソース。 |
| buckets | ご利用の OSS ディレクトリ。 |
| arn | 引き受けるロールの Alibaba Cloud リソース名 (ARN)。 |
| ossHost | ご利用の OSS ドメイン。 |
パラメーターの詳細については、「パラメーター」をご参照ください。
出力
予測結果は、output_oss_file で指定されたファイルに書き込まれます。各エントリは、元のイメージの OSS パスとそれに続く JSON 予測結果で構成されます。
次の例は、出力ファイルのエントリを示しています。
oss://path/to/your/image1.jpg, {
"class_probs": {
"Sketch": 0.0008051558979786932,
"Life moment": 0.7316102385520935,
"Accessory": 0.0008112151990644634,
"Dancing": 0.0008053297060541809
},
"classes": [1],
"predictions": [false, true, false, false],
"class_names": ["Life moment"],
"probs": [
0.00054657127475366,
0.7316212648051790893,
0.0005365353426896036,
0.0007256706594489515
]
}出力フィールド
予測結果は、次のフィールドを含む JSON 文字列です。
| フィールド | 説明 | 形状 | データ型 |
|---|---|---|---|
| classes | 予測されたラベルの ID。 | [num_labels] | INT Array |
| class_names | 予測されたラベルの名前。 | [num_labels] | STRING Array |
| class_probs | すべてのラベルの確率。 | [total_labels] | Dict{Key:STRING, Value:FLOAT} |
| predictions | 各ラベルがポジティブとして予測されるかどうか。 | [total_labels] | BOOLEAN Array |
| probs | すべてのラベルの予測確率。 | [total_labels] | FLOAT Array |