Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Anfordern von Inferenzen von einem bereitgestellten Service (Boto3)
Sie können Inferenzanfragen mit dem Client und der invoke_endpoint() API des SageMaker AI SDK für Python (Boto3) einreichen, sobald Sie über einen InService-Endpunkt von SageMaker AI verfügen. Das folgende Codebeispiel zeigt, wie ein Bild zur Inferenz gesendet wird.
- 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
-
Für TensorFlow reichen Sie eine Eingabe mit application/json für den Inhaltstyp ein.
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
-
Für die XGBoost-Anwendung sollten Sie stattdessen einen CSV-Text senden:
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())
Beachten Sie, dass BYOM einen benutzerdefinierten Inhaltstyp erlaubt. Weitere Informationen finden Sie unter runtime_InvokeEndpoint.