我们可以从外部 url 加载 .pkl 文件吗?

Can we load .pkl files from an external url?

我有一个 312 MB 的 pkl 文件。我想将它存储到外部服务器 (S3) 或文件存储服务(例如,Google Drive、Dropbox 或任何其他)。当我 运行 我的模型时,应该从那个外部 url 加载 pkl 文件。 我已经签出 但无法使其正常工作。

代码:

import urllib
import pickle

Nu_SVC_classifier = pickle.load(urllib.request.urlopen("https://drive.google.com/open?id=1M7Dt7CpEOtjWdHv_wLNZdkHw5Fxn83vW","rb"))

错误

TypeError: POST data should be bytes, an iterable of bytes, or a file object. It cannot be of type str.

urllib.request.urlopen的第二个参数是post数据,不是文件模式,不需要。

import urllib.request
import pickle

Nu_SVC_classifier = pickle.load(urllib.request.urlopen("https://drive.google.com/open?id=1M7Dt7CpEOtjWdHv_wLNZdkHw5Fxn83vW"))

试试 joblib 而不是 pickle,它对我有用。

from urllib.request import urlopen
from sklearn.externals import joblib
Nu_SVC_classifier = joblib.load(urlopen("https://drive.google.com/open?id=1M7Dt7CpEOtjWdHv_wLNZdkHw5Fxn83vW"))