我计划使用Luigi编写一个可复制且抗故障的超参数调优任务。因此,我在“parent”class HParamOptimizer
中多次调用我的class TrainOneModel
为了简化问题,这里有一个更简单的hello world版本:
import luigi
# Child class
class HelloTask(luigi.Task):
name = luigi.parameter.Parameter(default='Luigi')
def run(self):
print(f'Luigi says: Hello {self.name}!')
# Parent class
class ManyHellos(luigi.Task):
def run(self):
names = ['Marc', 'Anna', 'John']
for name in names:
hello = HelloTask(name=name)
hello.run()
if __name__ == '__main__':
luigi.run(['ManyHellos', '--workers', '1', '--local-scheduler'])
使用python filename.py
运行脚本可以工作,并且进度看起来:)。名称也按预期打印,但是,执行摘要仅显示ManyHellos
运行:
Scheduled 1 tasks of which:
* 1 ran successfully:
- 1 ManyHellos()
是否有可能包含子class HelloTask
以查看中央日程安排可视化工具中的进展情况
谢谢,BBQuercus
它们不会显示,因为您正在手动执行它们的run(),而不是通过调度程序执行。luigi的方法更像这样:
这导致了
执行时。注意,您还可以使用
yield [HelloTask(name) for name in names]
一次生成多个任务相关问题 更多 >
编程相关推荐