python - Sagemaker 调用端点返回值类型?
问题描述
我有一个在 sagemaker 中使用 XGBoost 的分类器,但是尽管训练集在第一列(csv 文件,第一列被假定为 sagemaker xgboost 中的目标)中只有 1 和 0,但该算法返回一个小数。
前 3 条记录返回 1.08、0.34 和 0.91。我会假设概率,但 1.08?如果将这些四舍五入为 0 或 1,那么它们都是正确的,但为什么它返回非类值?
此外,该类仅包含一个预测方法 - 如果不使用您自己的模型,预测概率方法是不可能的吗?
调用它的代码是:
from flask import Flask
from flask import request
import boto3
from sagemaker.predictor import csv_serializer
import sagemaker
app = Flask(__name__)
@app.route("/")
def hello():
numbers = request.args.get('numbers')
#session
boto_session = boto3.Session(profile_name="profilename",
region_name='regionname')
#sagemaker session
sagemaker_session = sagemaker.Session(boto_session=boto_session)
#endpoint
predictor = sagemaker.predictor.RealTimePredictor(endpoint="modelname",
sagemaker_session=sagemaker_session)
predictor.content_type="text/csv"
predictor.serializer=csv_serializer
predictor.deserializer=None
#result
result=predictor.predict(numbers)
result=result.decode("utf-8")
return f'Output: {result}'
if __name__ == "__main__":
app.run(debug=True, port=5000)
烧瓶部分工作正常,我可以在 127.0.0.1:5000 检索预测。
Sagemaker 版本 1.3.0。版本 1.9.0 不起作用 - 它需要 fcntrl ,它只是 mac/linux -在他们的 repo 上看到这个,显然它已在 pypi 上修复,但我已经尝试过,版本没有改变或解决问题,所以我坚持 1.3.0 直到他们解决它。1.3.0 版没有 predict_proba 方法。
解决方案
推荐阅读
- javascript - 仅通过三角形边的长度是否足以在 WebGL 中绘制三角形?
- uml - 小型 JEE 项目的类图
- java - CardView onClick 点击测试?
- javascript - 添加第二个 addEventListener() 会破坏第一个
- laravel-5 - 如何在 DB 中将 m/d/y 转换为 d/m/y?
- performance - Flutter 高图像 RAM 消耗
- c# - 为什么,当我通过泛型传递实体时,属性是否重复,而不是需要的内容存储在数据库中?
- css - 如何将奇数元素放置在特定列的所有行的网格中,将偶数元素放置在不同的列上?
- javascript - JS XML Parsing:行为差异取决于浏览器?
- php - 错误:无法创建 FirestoreClient 请求的客户端需要 gRPC 扩展