Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用自定义转换器部署sklearn模型_Python_Machine Learning_Scikit Learn - Fatal编程技术网

Python 使用自定义转换器部署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 我

我有一个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
结构。我认为这是一种难以维护和理解的方式


是否有一种更简单的方法可以使管道工作,而不需要使用完全相同的结构移动代码?

您需要创建一个单独的项目,例如,
内部库
,并将您在不同项目中使用的所有自定义逻辑移到那里。然后,您需要安装
内部_lib
,作为python环境的一部分(通过pip或conda)。之后,您将能够对经过培训的管道进行酸洗,并在另一个项目中重用它

从技术上讲,它可以作为私有github repo实现,并通过pip安装。这里有两个关于如何实现的链接: