【发布时间】:2017-05-01 15:22:24
【问题描述】:
我对@987654321@ 还很陌生,但我使用了一些 scikit-learn,并且我知道在使用 joblib 训练后如何保持我的机器学习模型:
from sklearn.externals joblib
model = RandomForestRegressor()
# Train the model, etc
joblib.dump(model, "prediction/model/model.pkl")
现在我想托管我的 ML 模型并使用 Algorithmia 将其作为服务调用,但我不知道如何回读模型。我在 Algorithmia 中创建了一个名为“testcollection”的集合,其中包含一个名为“model.pkl”的文件,该文件是 joblib.dump 调用的结果。根据文档,这意味着我的文件应该位于
data://(用户名)/testcollection/model.pkl
我想使用 joblib.load 从文件中读取该模型。这是我目前在 Algorithmia 中的算法:
import Algorithmia
def apply(input):
client = Algorithmia.client()
f = client.file("data://(username)/testcollection/model.pkl")
print(f.path)
print(f.url)
print(f.getName())
model = joblib.load(f.url) # Or f.path, both don't work
return "empty"
这是输出:
(username)/testcollection/model.pkl
/v1/data/(username)/testcollection/model.pkl
model.pkl
它在 joblib.load 行出错,给出“没有这样的文件或目录(我输入的任何路径)”
这是我在调用 joblib.load 时尝试过的所有路径/url:
- /v1/data/(用户名)/testcollection/model.pkl
- data://(用户名)/testcollection/model.pkl
- (用户名)/testcollection/model.pkl
- https://algorithmia.com/v1/data/(username)/testcollection/model.pkl
如何使用 joblib 从文件中加载模型?我是不是走错了路?
【问题讨论】:
-
我认为你只需要将
f.url替换为f.name路径和 url 应该是 DataFile 对象内的私有字段......但它是 python 所以没有什么是私有的
标签: python machine-learning scikit-learn joblib