【问题标题】:Deploy sklearn model with custom transformer使用自定义转换器部署 sklearn 模型
【发布时间】:2020-10-23 21:17:15
【问题描述】:

我有一个按以下方式定义的 sklearn 管道:

from tools.transformers import MyTransformer

...

pipe = Pipeline([
    ('mytransformer', MyTransformer()),
    ('lm', LinearRegression())
])

...

我的代码结构是

src
├── __init__.py
├── train.py
└── tools
    └── transformers.py

我已经训练了我的模型,并且我的管道保存在 .joblib 文件中。现在我想在另一个项目中使用我的模型。但是,我不仅需要移动.joblib 文件,还需要移动整个tools/transformers.py 结构。我认为这有点难以维护和理解。

有没有一种更简单的方法可以使管道工作而无需移动具有完全相同结构的代码?

【问题讨论】:

    标签: python machine-learning scikit-learn


    【解决方案1】:

    您需要创建一个单独的项目,例如internal_lib,并将您在不同项目中使用的所有自定义逻辑移到那里。然后,您需要将internal_lib 安装为python 环境的一部分(通过pip 或conda)。之后,您将能够腌制经过训练的管道并将其重用于另一个项目。

    从技术上讲,它可以实现为私有 github 存储库并通过 pip 安装。以下是几个关于如何实现的链接:one、two。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-17
      • 1970-01-01
      • 2018-11-30
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      • 2019-05-23
      • 1970-01-01
      相关资源
      最近更新 更多