从dvc提取当前运行阶段

1 投票
1 回答
49 浏览
提问于 2025-04-14 15:40

我正在进行一个实验,使用命令'dvc repro -f',这个命令会根据dvc.yaml配置执行多个阶段。比如:

Stages:
 Training:
   foreach:
    -cycle: 0
    -cycle: 1
    -cycle: 2
   do:
    cmd:
     python train.py
 Selection:
   foreach:
    -cycle: 0
    -cycle: 1
    -cycle: 2
   do:
    cmd:
     python train.py

在每个阶段执行的时候,比如在第0轮的训练阶段,我想在Python程序中提取这个阶段的名称,比如'训练_0',而在选择阶段时应该是'选择_0'。我想找一种方法,可以在阶段执行时或者在阶段开始执行之前提取这些信息。我试过使用dvc.api,但这个API并没有返回当前正在运行的阶段。我该怎么做才能实现这个呢?

1 个回答

1

你可以把它作为参数传递给 train.py

stages:
 Training:
   foreach:
    -cycle: 0
    -cycle: 1
    -cycle: 2
   do:
    cmd:
     python train.py "Training-${item.cycle}"
 Selection:
   foreach:
    -cycle: 0
    -cycle: 1
    -cycle: 2
   do:
    cmd:
     python train.py "Selection-${item.cycle}"

这样做对你有用吗?如果能把这个功能加到 dvc.api 里,或者作为一个环境变量,那就太好了。感觉这应该很简单就能实现。如果你有兴趣,欢迎来帮忙,我们非常欢迎任何贡献,我们也可以提供帮助 :)

撰写回答