我有一个 sklearn 模型,我想使用 joblib.dump 将 pickle 文件保存在我的 s3 存储桶上
I used joblib.dump(model, 'model.pkl')
将模型保存到本地,但我不知道如何将其保存到 s3 存储桶。
s3_resource = boto3.resource('s3')
s3_resource.Bucket('my-bucket').Object("model.pkl").put(Body=joblib.dump(model, 'model.pkl'))
我希望腌制的文件位于我的 s3 存储桶上。
这是一种对我有用的方法。非常简单明了。我在用着joblib
(它更适合存储大型 sklearn 模型)但您可以使用pickle
too.
另外,我使用临时文件与 S3 之间进行传输。但如果您愿意,您可以将该文件存储在更永久的位置。
import tempfile
import boto3
import joblib
s3_client = boto3.client('s3')
bucket_name = "my-bucket"
key = "model.pkl"
# WRITE
with tempfile.TemporaryFile() as fp:
joblib.dump(model, fp)
fp.seek(0)
s3_client.put_object(Body=fp.read(), Bucket=bucket_name, Key=key)
# READ
with tempfile.TemporaryFile() as fp:
s3_client.download_fileobj(Fileobj=fp, Bucket=bucket_name, Key=key)
fp.seek(0)
model = joblib.load(fp)
# DELETE
s3_client.delete_object(Bucket=bucket_name, Key=key)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)