gpt4 book ai didi

python - 在 Python 中处理一个简单的工作流

转载 作者:太空狗 更新时间:2023-10-29 19:37:05 24 4
gpt4 key购买 nike

我正在编写一个代码,它获取数据集并在其上运行一些算法。

用户上传数据集,然后选择将在该数据集上运行的算法并创建如下工作流:

workflow = 
{0: {'dataset': 'some dataset'},
1: {'algorithm1': "parameters"},
2: {'algorithm2': "parameters"},
3: {'algorithm3': "parameters"}
}

这意味着我将使用 workflow[0] 作为我的数据集,并且我将在其上运行 algorithm1。然后,我会得到它的结果,我会在这个结果上运行 algorithm2 作为我的新数据集。我将获取新结果并在其上运行 algorithm3。一直到最后一项,此工作流程没有长度限制。

我正在用 Python 编写这个。您能否提出一些处理此工作流程的策略?

最佳答案

您想在某些数据集上运行管道。这听起来像是一个 reduce 操作(在某些语言中是 fold)。不需要任何复杂的东西:

result = reduce(lambda data, (aname, p): algo_by_name(aname)(p, data), workflow)

这假设工作流看起来像(面向文本,因此您可以使用 YAML/JSON 加载它):

workflow = ['data', ('algo0', {}), ('algo1', {'param': value}), … ]

你的算法看起来像:

def algo0(p, data):

return output_data.filename

algo_by_name 取一个名字并给你一个算法函数;例如:

def algo_by_name(name):
return {'algo0': algo0, 'algo1': algo1, }[name]

(旧编辑:如果你想要一个编写管道的框架,你可以使用 Ruffus 。它就像一个 make 工具,但有进度支持和漂亮的流程图。)

关于python - 在 Python 中处理一个简单的工作流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2126811/

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