Ошибка в JSON разборе конечной точки SageMaker? - PullRequest
0 голосов
/ 27 февраля 2020

Я использую модель TF, которая развернута в SageMaker, чтобы делать прогнозы. Входными данными для прогнозирования является массив строк. Например, я могу успешно вызвать его с помощью:

input = {
  'instances': ["Hello world"]
}
from sagemaker.tensorflow.model import TensorFlowPredictor
predictor = TensorFlowPredictor('endpoint-name', sagemaker_session)
predictor.predict(input)

Однако, если строка в массиве строк содержит '] [', я получаю сообщение об ошибке относительно допустимости массива Json

input = {
  'instances': ["]["]
}
from sagemaker.tensorflow.model import TensorFlowPredictor
predictor = TensorFlowPredictor('endpoint-name', sagemaker_session)
predictor.predict(input)

Сообщение об ошибке:

An error occurred (ModelError) when calling the InvokeEndpoint operation: Received client error (400) from model with message "{ "error": "JSON Value: {\n    \"instances\": {\n        \"instances\": [\n            \"][\"\n        ]\n    }\n} Excepting 'instances' to be an list/array" }". See https://us-east-1.console.aws.amazon.com/cloudwatch/home?region=us-east-1#logEventViewer:group=/aws/sagemaker/Endpoints/endpoint-name in account XXXXXXXXX for more information.

Насколько я могу сказать, JSON Я отправляю

{
  'instances': ["Hello world"]
}

является действительным JSON (я также проверил это у некоторых json онлайн-зрителей, которые принимают его как легального JSON) Это какая-то ошибка в JSON разборе SageMaker?

1 Ответ

0 голосов
/ 18 марта 2020

Печать сообщения об ошибке с символами новой строки делает его немного более читабельным:

JSON Value: {
    "instances": {
        "instances": [
            "]["
        ]
    }
} Excepting 'instances' to be an list/array

При таком интервале мы можем видеть, что первое значение "instances" - это не список, а скорее другой словарь с " экземпляры "как его ключ.

Работает ли это, если вы измените свой прогнозный вход в список? то есть

input = ["]["]
predictor.predict(input)
...