首页 > 解决方案 > SageMaker Javascript SDK 端点调用错误:“CustomerError:无法将有效负载解析为数值”

问题描述

当我在 AWS CloudWatch 上遇到此错误时,我正在从我的角度前端调用 SageMaker 端点,该错误是关于我的模型从数据中进行推断的(以逗号分隔的字符串的形式,目标值位于第一个索引处)我正在发送:无法解析数值。我用来调用端点的字符串是:“1533071820,0.05619,0.05619,0.05611,0.05611,0.006076\n”

字符串请求 = "1533071820,0.05619,0.05619,0.05611,0.05611,0.006076\n"

ByteBufferbuf = ByteBuffer.wrap(request.getBytes()); 调用端点请求.setBody(buf); Use the SageMaker API AmazonSageMakerRuntime amazonSageMaker = AmazonSageMakerRuntimeClientBuilder.defaultClient(); Invoke the model endpoint on SageMaker InvokeEndpointResult invokeEndpointResult = amazonSageMaker.invokeEndpoint(invokeEndpointRequest);

我期望从端点得到的结果是一个带有“score”属性的 JSON 对象,格式为:{"predictions": [{"score": xxxxxxx}]}

我从 IDE 日志中收到“ModelError:无法评估有效负载”和“无法解析 CloudWatch 上的数值”

标签: javascriptnode.jsaws-sdkamazon-sagemaker

解决方案


因此,在调试此问题时,我发现由于末尾的换行符,模型假设我的输入中有 2 个字符串,但只有一个。因此,错误。所以我只是将字符串更改为:“1533071820,0.05619,0.05619,0.05611,0.05611,0.006076”。如果我要解析多个有效负载(批处理),则为:“1533071820,0.05619,0.05619,0.05611,0.05611,0.006076\n1533071820,0.05619,0.05619,0.05611,0.05611,0.006076”字符,更重要的是,末尾没有换行符


推荐阅读