Reputation: 4151
After creating Model in google AutoML we can use the provided python code to make a prediction. Here's the code :
import sys
from google.cloud import automl_v1beta1
from google.cloud.automl_v1beta1.proto import service_pb2
def get_prediction(content, project_id, model_id):
prediction_client = automl_v1beta1.PredictionServiceClient()
name = 'projects/{}/locations/us-central1/models/{}'.format(project_id, model_id)
payload = {'image': {'image_bytes': content }}
params = {}
request = prediction_client.predict(name, payload, params)
return request # waits till request is returned
if __name__ == '__main__':
file_path = sys.argv[1]
project_id = sys.argv[2]
model_id = sys.argv[3]
with open(file_path, 'rb') as ff:
content = ff.read()
print get_prediction(content, project_id, model_id)
I realize that it will only print detection result that has score above threshold value = 0.5
. Example output :
payload {
classification {
score: 0.562688529491
}
display_name: "dog"
}
How to print the other detection results that has score below threshold 0.5 (e.g. change threshold to 0.3) ?
Upvotes: 3
Views: 732
Reputation: 742
See the api documentation here
params
Object with string properties
Additional domain-specific parameters, any string must be up to 25000 characters long.
For Image Classification:
score_threshold - (float) A value from 0.0 to 1.0. When the model makes predictions for an image, it will only produce results that have at least this confidence score threshold. The default is 0.5.
The actual description of the field in the proto is
map<string,string> params;
So you would change your params variable that you have set to an empty dict. Change the params
variable to : params = {"score_threshold": "0.3"}
will work.
Upvotes: 4