使用 python 从 S3 存储桶下载后加载 pickle 文件时出现问题
Problem with pickle file to load after downloading from S3 bucket using python
我正在尝试从 S3 存储桶下载我的 ML 模型作为 pickle 文件,然后加载它进行预测。
import boto3
import io
import pickle
REGION = 'us-east-1'
ACCESS_KEY_ID = ******
SECRET_ACCESS_KEY = ******
'BUCKET_NAME = 'aws-logs-914250087788-us-east-1'
KEY = input_name # file path in S3
s3c = boto3.client(
's3',
region_name = REGION,
aws_access_key_id = ACCESS_KEY_ID,
aws_secret_access_key = SECRET_ACCESS_KEY
)
rfModel=s3c.download_file(BUCKET_NAME, model1, 'RF_model.pckl')
#load model and predict
lm = open('RF_model.pckl', 'rb')
clf=pickle.loads(lm)
rf_pred=clf.predict(x)
np.savetxt(output_name1, rf_pred, delimiter=',', fmt='%s')
但是当我运行我的代码时,出现以下错误:
TypeError: 需要类似字节的对象,而不是 _io.BufferedReader。
我该如何解决这个错误?
我应该替换这部分:
lm = open('RF_model.pckl', 'rb')
clf=pickle.loads(lm)
有了这个:
with open('RF_model.pckl', 'rb') as file:
clf = pickle.load(file)
我正在尝试从 S3 存储桶下载我的 ML 模型作为 pickle 文件,然后加载它进行预测。
import boto3
import io
import pickle
REGION = 'us-east-1'
ACCESS_KEY_ID = ******
SECRET_ACCESS_KEY = ******
'BUCKET_NAME = 'aws-logs-914250087788-us-east-1'
KEY = input_name # file path in S3
s3c = boto3.client(
's3',
region_name = REGION,
aws_access_key_id = ACCESS_KEY_ID,
aws_secret_access_key = SECRET_ACCESS_KEY
)
rfModel=s3c.download_file(BUCKET_NAME, model1, 'RF_model.pckl')
#load model and predict
lm = open('RF_model.pckl', 'rb')
clf=pickle.loads(lm)
rf_pred=clf.predict(x)
np.savetxt(output_name1, rf_pred, delimiter=',', fmt='%s')
但是当我运行我的代码时,出现以下错误:
TypeError: 需要类似字节的对象,而不是 _io.BufferedReader。
我该如何解决这个错误?
我应该替换这部分:
lm = open('RF_model.pckl', 'rb')
clf=pickle.loads(lm)
有了这个:
with open('RF_model.pckl', 'rb') as file:
clf = pickle.load(file)