阿帕奇梁:帕多和ML mod

2024-03-28 10:32:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我训练了一个scikit学习模型(~70MB),我想用它来对apachebeam进行预测。在

但是,我想知道使用parDo是否会为每一行加载模型,从而使用大量的资源

class PredictClass(beam.DoFn):
  def process(self, row):
     call([...]) # copy the model from remote location
     model = joblib.load('model_path.pk1')

在我的管道中:

^{pr2}$

有更好的方法吗? 我应该在哪里加载经过训练的分类器?在


Tags: 模型selfmodeldef资源scikitcallprocess
1条回答
网友
1楼 · 发布于 2024-03-28 10:32:20

如果您想为整个DoFn加载一些资源,您应该使用beam.DoFn类的start_bundle方法(实现它并在那里加载模型),或者手动实现延迟初始化。这将允许您加载模型一次*,然后在apachebeam调用实现的process方法时使用它。在

这不会是一次,但你可以用这种方式来解释。在

这里有一个很好的解释和一些性能测试,用于在apachebeampythonsdkApache Beam: DoFn.Setup equivalent in Python SDK中初始化可重用和昂贵的对象

相关问题 更多 >