【问题标题】:Naive Bayes model (.pkl) take too much time to predict朴素贝叶斯模型 (.pkl) 需要太多时间来预测
【发布时间】:2017-09-18 01:05:53
【问题描述】:

我正在使用朴素贝叶斯算法来预测句子的情绪。我正在创建一个模型以供将来使用。我正在使用 cpickle 来保存模型。但是当我加载和预测句子时,它需要太多时间。加载大约 100MB 的 .pkl 文件需要花费太多时间。有3个型号。我在 python 中使用 Flask 微服务。因此,对于每个请求,每个模型(.pkl)都会被加载并给出输出。每个请求大约需要 30-45 秒。

def predict(sentence):
  test = cPickle.load(open('model.pkl'))
  print test.predict([sentence])[0]
  print max(test.predict_proba([sentence])[0])

我也尝试在请求之前加载模型,但是每次新的 Flask 实例都会启动 wsgi 服务器并将模型加载到内存中。所以它占用了太多的内存。

我的问题是
有什么方法可以将模型保存在 Redis/任何 Db
或者如何减少 cpickel 文件的加载时间。??

谢谢

【问题讨论】:

    标签: python flask pickle wsgi naivebayes


    【解决方案1】:

    最好将模型保留在内存中以快速处理请求。

    在你的情况下这是一个必要的邪恶,因为就像你说的那样,唯一的其他方法是在每次新请求到来时读取模型,在这种情况下你的服务器将很快过载。

    就像您建议的那样,将模型保存在 redis 中实际上是一个好主意,这是一种内存解决方案。

    【讨论】:

      猜你喜欢
      • 2013-09-09
      • 2016-08-16
      • 2019-02-21
      • 2015-05-22
      • 2021-02-09
      • 2016-07-29
      • 2015-01-03
      • 2012-11-22
      • 2018-12-24
      相关资源
      最近更新 更多