AWS Sagemaker, операция InvokeEndpoint, ошибка модели: «установка элемента массива с помощью последовательности». - PullRequest
0 голосов
/ 14 декабря 2018

Я пытаюсь вызвать конечную точку, ранее развернутую в Amazon SageMaker.Вот мой код:

import numpy as np
import boto3

client = boto3.client('sagemaker-runtime')

def np2csv(arr):
    csv = io.BytesIO()
    np.savetxt(csv, arr, delimiter=',', fmt='%g')
    return csv.getvalue().decode().rstrip()

endpoint_name = 'DEMO-XGBoostEndpoint-2018-12-12-22-07-28'
test_vector = np.array([3.60606061e+00, 
                        3.91395664e+00, 
                        1.34200000e+03, 
                        4.56100000e+03,
                        2.00000000e+02, 
                        2.00000000e+02]) 
csv_test_vector = np2csv(test_vector)

response = client.invoke_endpoint(EndpointName=endpoint_name,
                               ContentType='text/csv',
                               Body=csv_test_vector)

И вот ошибка, которую я получаю:

ModelErrorTraceback (последний последний вызов) в () 1 response = client.invoke_endpoint (EndpointName =endpoint_name, 2 ContentType = 'text / csv', ----> 3 Body = csv_test_vector)

/ home / ec2-user / anaconda3 / envs / python2 / lib / python2.7 / site-packages /botocore / client.pyc в _api_call (self, * args, ** kwargs) 318 "% s () принимает только аргументы ключевых слов."% py_operation_name) 319 # «Я» в этой области ссылается на BaseClient.-> 320 return self._make_api_call (имя_операции, kwargs) 321 322 _api_call. name = str (py_operation_name)

/ home / ec2-user / anaconda3 / envs / python2 / lib /python2.7 / site-packages / botocore / client.pyc в _make_api_call (self, имя_операции, api_params) 621 error_code = parsed_response.get ("Ошибка", {}). get ("Код") 622 error_class = self.exceptions.from_code (error_code) -> 623 повысить error_class (parsed_response, имя_операции) 624 else: 625 return parsed_response

ModelError: Произошла ошибка (ModelError) при вызове операции InvokeEndpoint: получена ошибка клиента (415) от модели ссообщение "установка элемента массива с помощью последовательности."См. https://us -east-1.console.aws.amazon.com / cloudwatch / home? Region = us-east-1 # logEventViewer: group = / aws / sagemaker / Endpoints / DEMO-XGBoostEndpoint-2018-12-12-22-07-28 на счете 249707424405 для получения дополнительной информации.

1 Ответ

0 голосов
/ 16 января 2019

Это работает:

import numpy as np
import boto3

client = boto3.client('sagemaker-runtime')
endpoint_name = 'DEMO-XGBoostEndpoint-2018-12-12-22-07-28'
test_vector = [3.60606061e+00, 
               3.91395664e+00, 
               1.34200000e+03, 
               4.56100000e+03,
               2.00000000e+02, 
               2.00000000e+02]) 

body = ',',join([str(item) for item in test_vector])
response = client.invoke_endpoint(EndpointName=endpoint_name,
                               ContentType='text/csv',
                               Body=body)
...