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
不会显示它们(但它们仍被保存)。