【发布时间】:2018-12-20 16:53:03
【问题描述】:
使用 Amazon Sagemaker,我创建了一个 Xgboost 模型。解压生成的 tar.gz 文件后,我得到了一个文件“xgboost-model”。
下一步将直接从我的 S3 存储桶上传模型,而不是使用 pickle 下载它。这是我尝试过的:
obj = client.get_object(Bucket='...',Key='xgboost-model')
xgb_model = pkl.load(open((obj['Body'].read())),"rb")
但它给我带来了错误:
TypeError: embedded NUL character
也试过这个:
xgb_model = pkl.loads(open((obj['Body'].read())),"rb")
结果是一样的。
另一种方法:
bucket='...'
key='xgboost-model'
with s3io.open('s3://{0}/{1}'.format(bucket, key),mode='w') as s3_file:
pkl.dump(mdl, s3_file)
这给出了错误:
CertificateError: hostname bucket doesn't match either of '*.s3.amazonaws.com', 's3.amazonaws.com'
这个虽然桶是一样的。
如何将模型上传到 pickle 对象中,然后将其用于预测?
【问题讨论】:
标签: python-3.x amazon-web-services amazon-s3 amazon-sagemaker