Вызов конечной точки SageMaker с полезной нагрузкой данных в S3 от клиента Python Boto - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть изображение, которое я загружаю на s3 в mybucket.Предположим, что моя конечная точка s3 для этих данных s3://mybucket/imgname

Теперь у меня также есть модель, развернутая в SageMaker на sagemaker-model-endpoint

Я рассмотрел примеры того, как вызывать эту конечную точку SageMaker из ботклиент здесь но я не уверен, как указать путь s3 s3://mybucket/imgname в вызове invoke_endpoint.

client = boto3.client("runtime.sagemaker", region_name = 's3.us-east-2.amazonaws.com')
client.invoke_endpoint(
      EndpointName=sagemaker-model-endpoint
      Body=payload,
      ContentType='image/jpg',
      Accept='Accept')

Каким должен быть payload в этом случае?Где я могу указать s3 URL?

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Решение Гая для случая, когда вы хотите, чтобы ваш клиент загрузил изображение, а затем клиент отправляет байты изображения вашей модели.

Если вы хотите, чтобы ваша модель выполняла загрузку изображения, то вам нужно переделатьвашей модели, чтобы она могла использовать URL-адрес s3 либо в теле запроса, либо через заголовок CustomAttributes .

0 голосов
/ 15 февраля 2019

Вам нужно иметь байты изображения, и после того, как вы получите изображение из S3 (копия S3 или wget), вы можете позвонить:

with open(file_name, 'rb') as f:
    payload = f.read()
    payload = bytearray(payload)

client.invoke_endpoint(EndpointName=sagemaker-model-endpoint, 
                                   ContentType='application/x-image', 
                                   Body=payload)
...