管道数据处理和代码架构

问题描述 投票:0回答:1

我目前正在攻读一个 Python 包的博士学位,该包可以从数据中提取多个特征。每个特征都可以定义为数学运算的管道,它可以采用一些参数。这些操作的结果需要不同的功能,我想避免计算成本(目前这不是问题,但在某些时候我将不得不处理大量数据)。有没有一种方法可以构建我的代码,以便这些共享操作仅计算一次?

这是一个例子: Pipelines of operations

在此示例中,参数 = 值 1 的操作 1 只需要计算一次,结果将在不同的管道中使用,最终产生 3 个不同的特征。同样在此示例中,操作 3 隐含地需要操作 2 的结果。

目前,我的解决方案是我的所有操作都继承自一个

PipelineElement
类,该类具有
parent
属性和
children
属性。这样我就可以创建一个操作树并且只计算一次。是这样吗?这种模式是否经常使用?如果是,我可以在哪里学习一些好的实践?

python design-patterns pipeline feature-extraction
1个回答
0
投票

您的解决方案似乎是“四人帮”设计模式书中定义的策略、复合或访问者模式的中间部分。这是一本古老但仍然具有现实意义的书。它的正式名称是“设计模式 可重用面向对象软件的元素”作者:Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides。1994 年。

您可以在以下位置找到这些模式的精美简历:

https://www.digitalocean.com/community/tutorials/gangs-of-four-gof-design-patterns#behavioral-design-patterns

© www.soinside.com 2019 - 2024. All rights reserved.