Sagemaker调用端点返回的值类型?

时间:2018-08-22 12:20:32

标签: python machine-learning flask xgboost amazon-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)-请参见this on their repo,显然它已在pypi上修复,但我已经尝试过,该版本未更改或解决了问题,所以我m坚持使用1.3.0,直到他们解决为止。 1.3.0版没有预言方法。

0 个答案:

没有答案