0

Googleのクラウドml-engineでバッチ予測ジョブを作成しようとしています。私はJavaでファイルを作成し、次のコードでバケツにアップロードgcloud ml-engineでバッチ予測の入力ファイルをアップロードするには?

{ 
    insertId: "wr85wwg6shs9ek" 
    logName: "projects/tensorflow-test-1-168615/logs/ml.googleapis.com%2Ftest_job_23847239" 
    receiveTimestamp: "2017-08-04T16:07:29.524193256Z" 
    resource: { 
     labels: { 
      job_id: "test_job_23847239"  
      project_id: "tensorflow-test-1-168615"  
      task_name: "service"  
     } 
     type: "ml_job"  
    } 
    severity: "ERROR" 
    textPayload: "TypeError: decoding Unicode is not supported" 
    timestamp: "2017-08-04T16:07:29.524193256Z" 
} 

:残念ながら、私はいつも同じエラーを取得

BufferedImage bufferedImage = ImageIO.read(new URL(media.getUrl())); 
int[][][] imageMatrix = convertToImageToMatrix(bufferedImage); 
String imageString = matrixToString(imageMatrix); 
String inputContent = "{\"instances\": [{\"inputs\": " + imageString + "}]}"; 
byte[] inputBytes = inputContent.getBytes(Charset.forName("UTF-8")); 
Blob inputBlob = mlInputBucket.create(media.getId().toString() + ".json", inputBytes, "application/json"); 
inputPaths.add("gs://" + Properties.getCloudBucketNameInputs() + "/" + inputBlob.getName()); 

このコードでは、私は画像をダウンロードし、変換しますuint8に変換し、json文字列としてフォーマットします。ファイルが作成され、バケットに存在します。また、jsonファイルが有効であることも確認しました。

次のステップでは、私はすべて作成されたファイルを収集し、予測ジョブを開始:

GoogleCloudMlV1PredictionInput input = new GoogleCloudMlV1PredictionInput(); 
input.setDataFormat("TEXT"); 
input.setVersionName("projects/" + DatastoreOptions.getDefaultProjectId() + "/models/" + Properties.getMlEngineModelName() + "/versions/" + Properties.getMlEngineModelVersion()); 
input.setRegion(Properties.getMlEngineRegion()); 
input.setOutputPath("gs://" + Properties.getCloudBucketNameOutputs() + "/" + jobId); 
input.setInputPaths(inputPaths); 

GoogleCloudMlV1Job job = new GoogleCloudMlV1Job(); 
job.setJobId(jobId); 
job.setPredictionInput(input); 
engine.projects().jobs().create("projects/" + DatastoreOptions.getDefaultProjectId() , job).execute(); 

最後に、ジョブが作成されますが、結果は最初から一つです。

また、gcloud sdkを使用してジョブを開始しようとしましたが、結果は同じです。しかし、ファイルを変更してinstancesオブジェクトを削除し、online predictionの正しいフォーマットと一致させると、動作します(動作するようにするために、オンライン予測のペイロードクォータのために入力からほとんどの行を削除する必要があります) 。

私はobject detectionの訓練を受けたペットモデルを使用しています。作成した入力ファイルの1つはhereです。

私はここで間違っていますか?

答えて

関連する問題