gpt4 book ai didi

python - 用于Docker集成的通用Python对象序列化

转载 作者:行者123 更新时间:2023-12-02 21:28:45 25 4
gpt4 key购买 nike

我正在一个项目中,目的是将机器学习项目中的培训和测试过程分开。我设计了代码来包装使用的模型,例如,在Model类中,所谓的模型是指分类器。
class Model:
def init(self, newModel):
self.model = newModel

然后,我使用列表传递模型必须提供的功能对象:
def addFunctions(self,functions):
for function in functions:
self.functions[function.__name_ _] = function

现在,该模型可以用于分类,例如,通过使用分类器对象构造模型并将其函数传递到列表中的addFunctions中,以便我可以调用它们。然后,将模型和代码打包在docker容器中。为了简化它的工作,它是一个轻量级的虚拟机。

分离的目的是在将训练后的模型优化后,仅将其传递给docker容器,而无需传递整个代码。因此,需要保存/序列化Python模型。

我尝试使用picklejsonpickle,但是在序列化某些类型的对象时,它们都有局限性。我找不到足够通用的对象存储和检索替代方案。还有其他选择吗?

最佳答案

dillcloudpickle都是非常健壮的序列化程序,并且可以序列化标准python中的几乎所有对象。 (我是dill的作者,顺便说一句。)
dill可作为独立程序包在以下位置获得:
https://github.com/uqfoundation/dill/

尽管cloudpickle几乎已经死了(它由picloud支持,但是他们开始商业化……并将pyspark和其他一些支持它的软件包留在了自己的代码库中):
https://github.com/apache/spark/blob/master/python/pyspark/cloudpickle.py

我将dill用作统计计算和优化中并行和分布式计算的主干,并使用它来启用并行机器学习技术。我还没有尝试过docker对象。

关于python - 用于Docker集成的通用Python对象序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29499037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com