概述
用户上传数据集,然后选择将在此数据集上运行哪些算法,并创建如下工作流:
workflow = {0: {'dataset': 'some dataset'},1: {'algorithm1': "parameters"},2: {'algorithm2': "parameters"},3: {'algorithm3': "parameters"} }
这意味着我将工作流[0]作为我的数据集,我将在其上运行algorithm1.然后,我将把它的结果,我将运行algorithm2这个结果作为我的新数据集.我将会采用新的结果并运行algorithm3.它直到最后一个项目,直到这个工作流没有长度限制.
我在Python中写这个.你可以提出一些处理这个工作流的策略吗?
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
def algo_by_name(name): return {'algo0': algo0,'algo1': algo1,}[name]
(旧编辑:如果你想要一个写入管道的框架,可以使用Ruffus.它就像一个make工具,但是具有进度支持和漂亮的流程图.)
总结
以上是编程之家为你收集整理的在Python中处理简单的工作流程全部内容,希望文章能够帮你解决在Python中处理简单的工作流程所遇到的程序开发问题。
如果您也喜欢它,动动您的小指点个赞吧