exp apply
将实验的结果应用到工作区中。
概要
usage: dvc exp apply [-h] [-q | -v] experiment
positional arguments:
experiment Experiment to be applied描述
将experiment恢复到工作区。实验可通过名称或哈希值引用(详情请参见dvc exp run)。
具体而言,dvc exp apply 会将实验中存在的所有文件或目录恢复到其在实验中的确切状态。这包括由 DVC 和 Git 跟踪的文件:代码、原始数据、参数、指标、生成的工件等。
执行dvc exp apply 后得到的 Git + DVC 工作区,将包含 experiment 的内容,以及在执行dvc exp apply 之前工作区中存在但未在 experiment 中出现的任何文件。
通常在使用dvc exp show 或 dvc exp diff 选定目标 experiment 后,以及将其提交到 Git(使其持久化)前使用此命令。
工作区中的冲突更改将被覆盖,但 dvc exp apply 的结果可通过 Git 撤销。
dvc exp apply 的详细信息dvc exp apply 可通过以下 Git 流程撤销:
$ git stash
$ git stash apply refs/exps/apply/stash请注意,若在dvc exp apply 之后执行了影响 HEAD 的 Git 命令(如 git commit 或 git checkout),git stash apply 可能会失败。
选项
-
-h,--help- 显示帮助信息并退出。 -
-q,--quiet- 不向标准输出写入任何内容。如果没有问题则以 0 退出,否则以 1 退出。 -
-v,--verbose- 显示执行dvc pull命令时的详细跟踪信息。
示例:使实验持久化
本示例基于 我们的入门指南,您可在其中找到实际源代码。
假设我们在项目中运行了 3 个实验:
$ dvc exp show ────────────────────────────────────────────────────────────────────────────────────────────
Experiment Created auc featurize.max_features featurize.ngrams
────────────────────────────────────────────────────────────────────────────────────────────
workspace - 0.61314 1500 2
10-bigrams-experiment Jun 20, 2020 0.61314 1500 2
├── gluey-leak Oct 21, 2020 0.69830 2000 2
├── frank-farm Oct 09, 2020 0.57756 1200 2
└── union-mart Oct 09, 2020 0.51676 500 2
────────────────────────────────────────────────────────────────────────────────────────────由于 gluey-leak 具有最佳的 auc,我们可能希望将其提交到项目中(这被称为“使其持久化”):
$ dvc exp apply gluey-leak
Changes for experiment 'gluey-leak' have been applied...我们可以使用 Git 检查工作区中的变更,
$ git status
On branch master
Changes not staged for commit:
modified: dvc.lock
modified: params.yaml
modified: scores.json
$ git diff params.yaml@@ -3,7 +3,7 @@ prepare:
featurize:
- max_features: 1500
+ max_features: 2000
ngrams: 2也可以使用 DVC 检查:
$ dvc status
Data and pipelines are up to date.
$ dvc diff
Modified:
data/features/
data/features/test.pkl
data/features/train.pkl
model.pkl
files summary: 0 added, 0 deleted, 3 modified, 0 not in cache为完成使该实验持久化的操作,我们将变更提交到仓库:
$ git add .
$ git commit -m "persist gluey-leak"现在我们可以看到,该实验已成为我们 master 分支的新顶端:
$ dvc exp show ─────────────────────────────────────────────────────────────────────────────
Experiment Created auc featurize.max_features featurize.ngrams
─────────────────────────────────────────────────────────────────────────────
workspace - 0.69830 2000 2
master 04:31 PM 0.69830 2000 2
─────────────────────────────────────────────────────────────────────────────注意,所有其他实验均基于之前的提交,因此默认情况下 dvc exp show 不会显示它们(但它们仍被保存)。