【发布时间】:2015-10-14 07:16:11
【问题描述】:
我使用 scikit-learn 训练了一个预测模型,并使用 pickle 将其保存到硬盘。 pickle文件有58M,相当大。
为了使用模型,我写了这样的东西:
def loadModel(pkl_fn):
with open(pkl_fn, 'r') as f:
return pickle.load(f)
if __name__ == "__main__":
import sys
feature_vals = read_features(sys.argv[1])
model = loadModel("./model.pkl")
# predict
# model.predict(feature_vals)
我想知道在命令行中多次运行程序时的效率。
Pickle 文件的加载速度应该很快,但有什么方法可以加快速度吗?我可以将整个东西编译成二进制可执行文件吗?
【问题讨论】:
-
您能否提供有关您的用例的更多详细信息?据我了解,您每次要进行预测时都会运行此程序,这种情况多久发生一次?
-
您是否有理由不能运行一次加载代码,然后将其用于所有预测?如果每个预测加载相同的内容,为什么还必须为每个预测运行加载代码?即使你加快加载速度,这种使用方法仍然会导致一些速度变慢,所以我会考虑避免多次加载。
-
@IVlad ,我正在为一些生物物理学家写这个小工具,“加载一个,预测一个”是他们要求的。
标签: python machine-learning scikit-learn pickle