如何从Google Cloud Storage存储桶加载保存在joblib文件中的模型
问题内容:
我想加载一个模型,该模型从Google Cloud Storage存储桶中另存为 joblib
文件。当它在本地路径中时,我们可以按以下方式加载它(考虑到 model_file 是系统中的完整路径):
loaded_model = joblib.load(model_file)
我们如何使用Google Cloud Storage执行相同的任务?
问题答案:
我认为这是不可能的,至少是直接的。我虽然有一个解决方法,但是它可能没有您想要的效率高。
通过使用Google Cloud
Storage客户端库[1],您可以先下载模型文件并加载它,然后在程序结束时将其删除。当然,这意味着您每次运行代码时都需要下载文件。这是一个片段:
from google.cloud import storage
from sklearn.externals import joblib
storage_client = storage.Client()
bucket_name=<bucket name>
model_bucket='model.joblib'
model_local='local.joblib'
bucket = storage_client.get_bucket(bucket_name)
#select bucket file
blob = bucket.blob(model_bucket)
#download that file and name it 'local.joblib'
blob.download_to_filename(model_local)
#load that file from local file
job=joblib.load(model_local)