base64でエンコードされた文字列を含むミニ・バッチのスコアリング
この例では、base64でエンコードされた文字列に変換されているイメージのミニ・バッチのスコアリング方法を示します。複数のイメージ・ファイルを直接アップロードすることはできないため、ミニ・バッチ機能を使用して複数のイメージをスコアリングします。ここでは、まずイメージをなんらかの形式のテキストに変換する必要があります。OML Servicesでは、イメージ分類の場合、base64でエンコードされた文字列およびイメージ・テンソル(マトリックス)がサポートされています。
ノート:
OML Servicesでは、回帰、分類、クラスタリングおよび特徴抽出モデルのバッチ・スコアリングがサポートされています。認識イメージ・モジュールでは、イメージ・ファイル、イメージ・テンソル、およびbase64でエンコードされた文字列という3種類のイメージ入力を受け入れます。その後、cognitive-image/classificationエンドポイントにPOSTリクエストを送信します。この機能では、スコアリングに事前構築済ONNXイメージ・モデルが使用されます。 
                  
Linuxユーティリティ
               jqを使用して、JSON出力を読取り可能な形式に解析します。jqユーティリティは、主要なLinux配布リポジトリのすべてに含まれています。Oracle LinuxおよびRed Hatシステムでは、次のコマンドを実行して、このユーティリティをインストールできます: $ sudo yum install jqこの例では、base64でエンコードされた文字列を含むミニ・バッチをスコアリングする方法を示します。この例では、ローカルに格納されている、3つのイメージ・ファイルとbashスクリプトを使用します。
                     
                  - イメージ・ファイルは、cat.jpg、dog.jpg、flowers.jpgです。
- bashスクリプトtest.shには、jsonコードが含まれています。
ミニ・バッチをスコアリングするには: 
                     
                        
                  
                  - 
                           まず、次のコマンドを実行してbashスクリプトの内容を表示します:$ cat test.sh #!/bin/bashこのスクリプトでは、次の内容が返されます:# get the paths to the images image1="./cat.jpg" image2="./dog.jpg" image3="./flowers.jpg" # get base64 encoded strings base64_1=`base64 -w 0 $image1` base64_2=`base64 -w 0 $image2` base64_3=`base64 -w 0 $image3` json_data=$(mktemp) echo "{\"inputRecords\":[ {\"input\": \"$base64_1\"}, {\"input\": \"$base64_2\"}, {\"input\": \"$base64_3\"}], \"topN\":3}" > "$json_data"このスクリプトでは: - イメージへのパスはここで設定されています:
                                    image1="./cat.jpg" image2="./dog.jpg" image3="./flowers.jpg"
- その後、.jpgイメージが、base64でエンコードされた文字列に変換されます。base64_1=`base64 -w 0 $image1` base64_2=`base64 -w 0 $image2` base64_3=`base64 -w 0 $image3`
- スクリプトのこの部分では、base64文字列からなる入力レコードの追加先となる一時ファイルjson_dataが作成されます。また、topNクラスを指定しており、@$json_data引数を使用して内容コンテンツをフェッチしています。イメージ分類の間に、各イメージについて、イメージが属する可能性があるクラスが、確率に基づいてソートされます。json_data=$(mktemp) echo "{\"inputRecords\":[ {\"input\": \"$base64_1\"}, {\"input\": \"$base64_2\"}, {\"input\": \"$base64_3\"}], \"topN\":3}" > "$json_data"
 
- イメージへのパスはここで設定されています:
                                    
- 次に、次のコマンドを実行してtest.shファイルを実行可能にします:$ chmod +x test.sh
- 
                           スクリプト・ファイルtest.shを実行します:./test.sh
- 次に、認証トークンを取得し、次のcURLコマンドを実行して、入力レコード内にbase64でエンコードされた文字列が含まれているミニ・バッチをスコアリングします。
                           $ curl -X POST "${omlservice}/omlmod/v1/cognitive-image/classification" \ --header "Authorization: Bearer $token" \ --header 'Content-Type: application/json' --data "@$json_data" | jq
ノート:
ここでは、フラグ--dataを使用して、一時ファイルjson_dataから入力レコードをフェッチしています。base64でエンコードされた文字列は非常に長いため、アプリケーションによって、引数リストが長すぎますというエラーがスローされます。そのため、--dataフラグを使用することをお薦めします。
                     Linuxユーティリティ
                        
                  
                  jqを使用して、JSON出力を読取り可能な形式に解析します。jqユーティリティは、主要なLinux配布リポジトリのすべてに含まれています。Oracle LinuxおよびRed Hatシステムでは、次のコマンドを実行して、このユーティリティをインストールできます: $ sudo yum install jqノート:
cURLコマンドでjqを使用しても、HTTPレスポンスは返されません。HTTPレスポンスを返すには、jqコマンドを削除し、curlコマンドに-iフラグを追加します。 
                     このコマンドでは、次のスコアリング結果が返されます:
{
  "scoringResults": [
    {
      "classifications": [
        {
          "label": "Cat",
          "probability": 0.9999594688415527
        },
        {
          "label": "Felidae",
          "probability": 0.9997081756591797
        },
        {
          "label": "Whiskers",
          "probability": 0.9994940757751465
        }
      ]
    },
    {
      "classifications": [
        {
          "label": "Snout",
          "probability": 0.9996676445007324
        },
        {
          "label": "Dog",
          "probability": 0.996991753578186
        },
        {
          "label": "Vertebrate",
          "probability": 0.9954350590705872
        }
      ]
    },
    {
      "classifications": [
        {
          "label": "Pink",
          "probability": 0.9993271827697754
        },
        {
          "label": "Flowering plant",
          "probability": 0.9986602663993835
        },
        {
          "label": "Flower",
          "probability": 0.99815833568573
        }
      ]
    }
  ]
}