Python 使用自定义转换器部署sklearn模型
我有一个sklearn管道,其定义如下:Python 使用自定义转换器部署sklearn模型,python,machine-learning,scikit-learn,Python,Machine Learning,Scikit Learn,我有一个sklearn管道,其定义如下: from tools.transformers import MyTransformer ... pipe = Pipeline([ ('mytransformer', MyTransformer()), ('lm', LinearRegression()) ]) ... 我的代码的结构是 src ├── __init__.py ├── train.py └── tools └── transformers.py 我
from tools.transformers import MyTransformer
...
pipe = Pipeline([
('mytransformer', MyTransformer()),
('lm', LinearRegression())
])
...
我的代码的结构是
src
├── __init__.py
├── train.py
└── tools
└── transformers.py
我已经训练了我的模型,我的管道保存在.joblib
文件中。现在我想在另一个项目中使用我的模型。但是,我不仅需要移动.joblib
文件,还需要移动整个tools/transformers.py
结构。我认为这是一种难以维护和理解的方式
是否有一种更简单的方法可以使管道工作,而不需要使用完全相同的结构移动代码?您需要创建一个单独的项目,例如,
内部库
,并将您在不同项目中使用的所有自定义逻辑移到那里。然后,您需要安装内部_lib
,作为python环境的一部分(通过pip或conda)。之后,您将能够对经过培训的管道进行酸洗,并在另一个项目中重用它
从技术上讲,它可以作为私有github repo实现,并通过pip安装。这里有两个关于如何实现的链接: