Solicitud de inferencias desde un servicio implementado (Boto3) - Amazon SageMaker AI

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Solicitud de inferencias desde un servicio implementado (Boto3)

Puede enviar solicitudes de inferencia mediante el cliente de SDK de SageMaker AI para Python (Boto3) y la API invoke_endpoint() una vez que tenga un punto de conexión de SageMaker AI InService. En el siguiente ejemplo de código se muestra cómo enviar una imagen a modo de inferencia:

PyTorch and MXNet
import boto3 import json endpoint = 'insert name of your endpoint here' runtime = boto3.Session().client('sagemaker-runtime') # Read image into memory with open(image, 'rb') as f: payload = f.read() # Send image via InvokeEndpoint API response = runtime.invoke_endpoint(EndpointName=endpoint, ContentType='application/x-image', Body=payload) # Unpack response result = json.loads(response['Body'].read().decode())
TensorFlow

Para TensorFlow, envíe una entrada para el tipo de contenido application/json.

from PIL import Image import numpy as np import json import boto3 client = boto3.client('sagemaker-runtime') input_file = 'path/to/image' image = Image.open(input_file) batch_size = 1 image = np.asarray(image.resize((224, 224))) image = image / 128 - 1 image = np.concatenate([image[np.newaxis, :, :]] * batch_size) body = json.dumps({"instances": image.tolist()}) ioc_predictor_endpoint_name = 'insert name of your endpoint here' content_type = 'application/json' ioc_response = client.invoke_endpoint( EndpointName=ioc_predictor_endpoint_name, Body=body, ContentType=content_type )
XGBoost

Para una aplicación XGBoost, debe enviar un texto CSV en su lugar:

import boto3 import json endpoint = 'insert your endpoint name here' runtime = boto3.Session().client('sagemaker-runtime') csv_text = '1,-1.0,1.0,1.5,2.6' # Send CSV text via InvokeEndpoint API response = runtime.invoke_endpoint(EndpointName=endpoint, ContentType='text/csv', Body=csv_text) # Unpack response result = json.loads(response['Body'].read().decode())

Tenga en cuenta que BYOM permite el uso de un tipo de contenido personalizado. Para obtener más información, consulte runtime_InvokeEndpoint.