dag
将 管道 可视化为一个或多个 阶段 的依赖关系图。
概要
usage: dvc dag [-h] [-q | -v] [-o] [--full]
[--md] [--mermaid] [--dot]
[target]
positional arguments:
target Stage or output to show pipeline for (optional)
Uses all stages in the workspace by default.
描述
DVC 在内部将每个管道表示为一个有向无环图(DAG),其中节点是阶段,边是依赖关系。
dvc dag
显示在 项目 中找到的 dvc.yaml
文件中定义的一个或多个管道的阶段依赖关系图。提供一个 target
阶段名称以显示到该点为止的管道。
分页输出
如果终端中可用,此命令的输出会自动通过管道传送到 less(使用的具体命令是 less --chop-long-lines --clear-screen
)。如果不可用 less
(例如在 Windows 上),则直接打印输出内容。
请注意,这也适用于
dvc exp show
。
提供自定义分页工具
可以通过 DVC_PAGER
环境变量覆盖默认的分页工具。将其设置为 PATH
中可找到的程序,或提供完整路径。例如在 Linux shell 中:
$ DVC_PAGER=more dvc exp show # Use more as pager once.
...
$ export DVC_PAGER=more # Set more as pager for all commands.
$ dvc exp show ...
如需持久更改,请在 shell 配置中设置
DVC_PAGER
,例如在 Bash 中的~/.bashrc
文件中。
选项
-
-o
,--outs
- 显示链式依赖项和输出的 DAG,而不是阶段本身。图形可能会显著不同。 -
--full
- 显示target
阶段所属的完整 DAG,而不仅仅是其祖先。 -
--md
- 以--mermaid
格式显示 DAG,并包裹在 Markdown 代码块 内。这可用于将
dvc dag
与cml send-comment
结合使用。 -
--mermaid
- 以 Mermaid 格式显示 DAG。它可以传递给第三方可视化工具。 -
--dot
- 以 DOT 格式显示 DAG。它可以传递给第三方可视化工具。 -
-h
,--help
- 打印使用说明/帮助信息,然后退出。 -
-q
,--quiet
- 不向标准输出写入任何内容。如果没有问题则以 0 退出,否则以 1 退出。 -
-v
,--verbose
- 显示详细的跟踪信息。
示例:可视化 DVC 管道
可视化在 dvc.yaml
中定义的管道的 prepare、featurize、train 和 evaluate 阶段:
$ dvc dag
+---------+
| prepare |
+---------+
*
*
*
+-----------+
| featurize |
+-----------+
** **
** *
* **
+-------+ *
| train | **
+-------+ *
** **
** **
* *
+----------+
| evaluate |
+----------+
还可以从阶段输出/依赖项如何连接的角度查看该管道(使用 --outs
选项)。请注意,生成的图形可能有所不同:
$ dvc dag --outs
+---------------+
| data/prepared |
+---------------+
*
*
*
+---------------+
| data/features |
**+---------------+**
**** * *****
***** * ****
**** * ****
*** +-----------+ ***
** | model.pkl | **
** +-----------+ **
** ** ** **
** ** ** **
** ** ** **
+-------------+ +----------+
| scores.json | | prc.json |
+-------------+ +----------+
示例:Mermaid 流程图
--mermaid
标志将生成Mermaid 格式的流程图:
$ dvc dag --mermaid
flowchart TD
node1["data/data.xml.dvc"]
node2["evaluate"]
node3["featurize"]
node4["prepare"]
node5["train"]
node1-->node4
node3-->node2
node3-->node5
node4-->node3
node5-->node2
当传入 --md
标志时,Mermaid 输出将被包裹在 Markdown 代码块 内。请注意,此输出会在 GitHub 和 GitLab 中自动渲染为图表。
你可以将 dvc dag --md
与 CML 的 cml send-comment
命令结合使用:
dvc dag --md >> dag.md
cml send-comment dag.md