我有一组(可能相当复杂)Python类,它们执行特定的数据转换,例如主成分分析(PCA)。我们称这些块为。块组织在管道中,管道可以有任何块序列。几个管道组织在我们称之为的模型中。你知道吗
我将这些模型应用于并行于数千个数据集的带有块的管道。因此,我有数千个模型(以及管道和块)的实例,因为每个数据集都有自己的相关参数存储在块中(例如,PCA的主成分)。你知道吗
现在,由于我想要一组预定义的块管道,我在pipelines.py
中定义了一些模块属性:
PIPELINE_A = [(Block1, args_block1, kwargs_block1),
(Block2, args_block2, kwargs_block2),
...
(BlockN, args_blockN, kwargs_blockN)]
我的models.py
中的模型也是如此:
MODEL_1 = {'in': (PIPELINE_A, args_pl_A, kwargs_pl_A),
...
'out': (PIPELINE_B, args_pl_B, kwargs_pl_B)}
这些可以看作是管道/模型配置,我可以从中实例化管道和模型对象。我还没有在模块中实例化它们,因为对于所有的数据集,它们应该是不同的。你知道吗
因为我总是需要一个类名、参数和关键字参数,所以我必须将它们都存储在一个元组中,直到我需要它们来实例化对象(例如[cl(*ar, **kw) for cl, ar, kw in MODEL_1
)。这很难看,我想还有更好的办法。你知道吗
我想知道是否有人能为这种情况推荐一种设计模式或技巧。你知道吗
附言。 我意识到我可以在我的模块中实例化一个原型管道/模型,然后从中复制。不过,块可能会变得非常复杂,我想知道Python是否能够很好地处理深度复制。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐