amazon-web-services - “body”处的值未能满足约束:成员不得为空
问题描述
我正在尝试使用 sagemaker 端点运行预测。输入格式是逗号分隔的特征和 | 分开的观察。但是,当我尝试迭代输入数据并在每次迭代时调用端点时,如下所示:
ENDPOINT_NAME = "my_endpoint"
runtime= boto3.client('runtime.sagemaker')
results = []
for r in request_body.split('|'):
response = runtime.invoke_endpoint(EndpointName=ENDPOINT_NAME,
ContentType='text/csv',
Body=r)
result = json.loads(response['Body'].read().decode())
results.append(result)
我收到以下错误:
ValidationError:调用 InvokeEndpoint 操作时发生错误 (ValidationError):检测到 1 个验证错误:“body”处的值未能满足约束:成员不得为空
作为健全性检查,我跑了:
for r in request_body.split('|'):
print(r)
我得到了我期望得到的结果:
3.0,0.0,4795.0,0.0,1.0,24.0,30.0,25.0,3.0
3.0,2.0,3818.0,0.0,3.0,10.0,22.0,11.0,11.0
5.0,0.0,3565.0,0.0,1.0,79.0,89.0,80.0,-66.0
5.0,-1.0,3227.7,0.0,0.0,16.0,17.0,17.0,1.0
5.0,0.0,3375.0,0.0,2.0,21.0,45.0,22.0,6.0...etc
这让我相信提取单独观察的逻辑是合理的,但是当我执行调用时,我得到了这个空值错误。
这个想法是得到有序的预测,以便我以后可以将它们映射到一个不属于训练特征的 id,因此不在数据集中。
先感谢您。
解决方案
我遇到过同样的问题。检查您是否还向端点传递了一个空的“r”。request_body.split('|') 将生成一个包含数据帧每一行的列表,但它也将包含一个空的:''
推荐阅读
- firebase - 从实时数据库中读取数据
- android - Android Studio 不渲染布局
- reactjs - React 故事书:更新控件中的一个参数会更改另一个参数
- html - 我在 HTML 和 CSS 中的框和定位有问题
- mysql - HikariCP 和 AbstractRoutingDataSource:将 WriteOnly 设置设置为主数据库
- c# - ESC-POS-USB-NET 如何更改图像大小?
- c++ - 为什么初始化程序中元素的不足不会产生错误
- python - Python Websockets:为什么客户端无法连接到我的服务器
- informix - 在 Informix 上将日期时间字段转换为纪元时间
- javascript - 重新排列日期 fromat