一组机器学习版本控制帮助程序

ml-versioning-tools的Python项目详细描述


机器学习版本控制工具-MLV工具

用于对机器学习数据进行版本控制的公共存储库。

安装

mlv工具可以从pypi安装:

pip install ml-versioning-tools

也可以直接从以下来源安装:

git clone https://github.com/peopledoc/ml-versioning-tools.git
cd ml-versioning-tools

    make develop    
OR
    make package 
    pip install ./package/*.whl

教程

有一个教程可以展示如何使用这些工具。 请参见mlv工具教程

关键词

步骤元数据:在本文档中,当 用于声明元数据,如参数、DVC输入/输出等。

工作目录:要版本的项目的git顶级目录。 (如果项目不使用不推荐使用的git,请使用--working dir 每个命令调用的参数)

工具

ipynb_to_python:此命令将给定的jupyter笔记本转换为 参数化和可执行的python3脚本(请参见下面一节中的特定语法)

ipynb_to_python -n [notebook_path] -o [python_script_path]

gen-dvc:此命令创建一个dvc命令,该命令将ipynb生成的脚本调用为python。

gen_dvc -i [python_script] --out-py-cmd [python_command] \
              --out-bash-cmd [dvc_command]

导出管道:此命令将与给定dvc元文件对应的管道导出到bash脚本中。 管道步骤按依赖顺序顺序依次调用。仅适用于本地步骤。

export_pipeline --dvc [DVC target meta file] -o [pipeline script]

ipynb_to_dvc:此命令将给定的jupyter笔记本转换为 参数化和可执行的python3脚本和dvc命令。是组合体 从ipynb_到python和gen_dvc的。它只适用于配置文件。

ipynb_to_dvc -n [notebook_path]

检查脚本一致性检查所有脚本一致性:这些命令确保jupyter之间的一致性 笔记本及其生成的python脚本。可以将它们用作git钩子或在项目中连续使用 整合。一致性检查忽略空行和注释。

check_script_consistency -n [notebook_path] -s [script_path]

check_all_scripts_consistency -n [notebook_directory]
# Works only with a configuration file (provided or auto-detected)

配置

可以提供配置文件,但它不是必需的。 它的默认位置在工作目录中,即[工作目录]/.mlvtools。 但它可以在作为命令参数提供的自定义文件中。

配置文件格式为json

{
"path": {
	"python_script_root_dir": "[path_to_the_script_directory]",
	"dvc_cmd_root_dir": "[path_to_the_dvc_cmd_directory]"
	}
"ignore_keys: ["keywords", "to", "ignore"],
"dvc_var_python_cmd_path": "MLV_PY_CMD_PATH_CUSTOM",
"dvc_var_python_cmd_name": "MLV_PY_CMD_NAME_CUSTOM",
"docstring_conf": "./docstring_conf.yml" 
}

所有给定的路径必须相对于工作目录

  • path_to_the_script_directory:是将使用 ipynb_to_脚本命令。python 3的脚本名基于笔记本名。

      ipynb_to_script -n ./data/My\ Notebook.ipynb 
      
      Generated script: `[path_to_the_script_directory]/my_notebook.py`
    
  • path_to_the_dvc_cmd_directory:是使用 GEN U DVC命令。生成的命令名基于Python3脚本名。

    pip install ml-versioning-tools
    
    0
  • ignore_keys:用于丢弃单元格的关键字列表。默认值为['无效果]。 (请参见"丢弃单元格"部分)

  • dvc_var_python_cmd_pathdvc_var_python_cmd_namedvc_var_meta_filename:它们允许自定义变量名 可用于dvc cmddocstring参数。它们分别对应于保存python命令的变量 文件路径、文件名和保存默认元文件名的变量。默认值为"mlv_py_cmd_path", "mlv_py_cmd_name"和"mlv_dvc_meta_filename"。(有关用法,请参见dvc命令/复杂案例部分)

  • docstring_conf:用于jinja模板化的docstring配置的路径(请参阅dvc模板化部分)。 此参数不是必需的。

Jupyter笔记本语法

步骤元数据单元格用于声明脚本参数确定和dvc输出和依赖项。 这可以使用基本的docstring语法来完成。此docstring必须是第一个语句,仅此单元格 评论可以写在上面。

良好实践

避免在jupyter笔记本中使用相对路径,因为它们与 将要转换为脚本的笔记本位置不同。

python脚本参数

可以使用基本docstring语法在jupyter笔记本中声明参数。 此参数描述用于生成可配置和可执行的python脚本。

Jupyter笔记本中的参数声明

Jupyter笔记本:处理文件.ipynb

pip install ml-versioning-tools
1

生成了python3脚本

pip install ml-versioning-tools
2

脚本命令行参数:

pip install ml-versioning-tools
3

所有声明的参数都是必需的。

DVC命令

dvc命令是对生成的脚本调用的dvc run命令的包装。 使用ipynb_to_python命令。这是管道的一个步骤。

它基于笔记本元数据中声明的数据, 提供两种模式: -仅描述简单情况下的输入/输出(推荐) -描述复杂情况下的完整命令

简单案例

语法

pip install ml-versioning-tools
4

只要路径可以是绝对的,也可以是相对于git to p dir的。

{related_param}是相应的python 3脚本的参数, 它是为python脚本调用填写的

dvc extra允许声明不是dvc输出或依赖项的参数。 这些参数提供给调用python 3命令。

pip install ml-versioning-tools
5

复杂病例

语法

pip install ml-versioning-tools
6

此语法允许提供要生成的完整dvc命令。所有路径都可以是绝对路径,也可以是相对于git top dir的路径。 变量$mlv_py_cmd_path和$mlv_py_cmd_name可用。它们分别包含路径和名称 对应的python命令。 变量$mlv_dvc_meta_file name包含dvc元文件的默认名称。

pip install ml-versioning-tools
7

DVC模板化

可以在dvc docstring部分使用jinja2模板。例如,声明所有 步骤依赖项、输出和额外参数。

示例:

pip install ml-versioning-tools
8

docstring配置文件可以通过主配置或使用--docstring conf提供 争论。此功能仅适用于gen廑dvc命令。

丢弃单元格

jupyter笔记本中的某些单元格只在查看中间结果时执行。 在python 3脚本中,这些语句没有任何效果。 注释"无效"允许丢弃整个单元格内容,以避免浪费 运行这些语句的时间。可以自定义丢弃关键字的列表,请参见配置部分。

贡献

我们很高兴地欢迎对mlv工具的贡献。有关详细信息,请参见我们的贡献指南。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
数组解析来自输入java的不同类型的数据   多用户上传java文件   java MalformedChunkCodingException:分块流意外结束   http在建立与网站的连接时,如何确保域级SSL证书存在于信任存储中?   java如何在安卓中播放服务器上的音频   java我可以使用jmock替换工厂返回的实现吗?   java JsonParsing:UTF8编码:JsonParseException:非法的无引号字符   java Hibernate与JPA注释问题惰性对象   JavaSpringWebApplistener问题   java mongodb集群更新减缓了spring boot上的整体测试   java图像接收(web)服务器   Android aapt工具无法正确生成R.Java   java摩托罗拉Android 2.2摄像头忽略额外的输出参数   java在Web应用程序中显示R脚本图形   java将日期与当前日期进行比较会产生NumberFormatException   java应用程序在ViewPager上强制关闭?   java如何放置这些XMLAPI。罐子,斯塔克萨皮斯。jar或xercesImpl。jar:到我的pom,xml   JavaGlassFish 4.1,JPA2.1持久性。xml   java什么是SAML元数据?   Checkstyle Java泛型:“?”前面没有空格