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.