我在 DVC 实验管理方面遇到了困难。假设以下场景:
我有 params.yaml
文件:
recommendations:
k: 66
q: 5
我使用 dvc exp run -n exp_66
运行实验,然后执行 dvc exp push origin exp_66
。之后,我修改 params.yaml 文件:
recommendations:
k: 99
q: 5
然后运行另一个实验 dvc exp run -n exp_99
,之后我使用 dvc exp Push origin exp_99
进行提交。
现在,当我使用 Git pull 相应的分支时,我尝试通过运行 dvc exp pull origin exp_66
从 dvc pull exp_66
。这会 pull (没有错误消息),但是 params.yaml
文件的内容是 k: 99
(我期望 k: 66
)。我究竟做错了什么? git Push
必须在dvc Push
之后执行吗?除此之外,我还发现了dvc exp apply exp_66
,但我不确定它是做什么的(建议在apply
之后执行git add .
,然后git commit
?
如果您能写下提交不同实验、推、 pull 、应用等的工作流程,我将不胜感激。
最佳答案
你做的一切都很好。最后 pull 完后可以看到使用dvc exp show
时你的实验将会在那里。要将实验列表中可用的实验恢复到工作区中,您只需运行 dvc exp apply exp_66
。 DVC 将确保检查与此实验相对应的更改。
到目前为止,您的工作流程似乎是正确的。补充一点:一旦您确定其中一个实验是您想要在 git 历史记录中“保留”的内容,您可以使用 dvc exp branch {exp_id} {branch_name}
为此实验创建一个单独的分支。然后你可以使用git
命令保存更改。
关于git - DVC 实验管理工作流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71338160/