我是AWS的初学者,我在计算机上训练了一个带有scikit-learn的RandomForestClassifier,并使用joblib以pkl格式获取我的模型。
现在我想在AWS Lambda中重用这个RandomForest。 由于需要sklearn.externals再次加载我的模型,我已经创建了一个Zip目录,其中包含Numpy,Scipy,sklearn,我的代码以及我的pkl格式的模型。 我将此zip放在S3存储桶中以在Lambda中执行我的代码。
我想知道是否可以使用model.predict()来使用这个模型?我没有找到有关此特定问题的任何文档。
答案 0 :(得分:1)
实际上,我成功使用了网址。我将我的模型.pkl放在S3 Bucket中,我可以使用urllib2来获取它。
这是我的代码,如果有人遇到同样的问题:
req = urllib2.Request(url=url_model)
f = urllib2.urlopen(req)
model = cPickle.load(f)
仅当文件是公共的时才有效。如果您需要将其设为私有,则可以使用boto3生成预签名URL,如下所示:
url_model = s3.generate_presigned_url(
ClientMethod='get_object',
ExpiresIn=1,
Params={
'Bucket': 'my-bucket',
'Key': 'mymodel.pkl'
}
)