TensorFlow 数据验证
TensorFlow 数据验证 (TFDV) 是一个用于探索和验证机器学习数据的库。它设计为高度可扩展,并与 TensorFlow 和 TensorFlow Extended (TFX) 良好配合。
TF 数据验证包括:
- 训练和测试数据的可扩展摘要统计计算。
- 与数据分布和统计信息查看器集成,以及特征对的分面比较(Facets)。
- 自动生成数据模式,以描述对数据的期望,如必需值、范围和词汇表。
- 模式查看器帮助您检查模式。
- 异常检测,以识别异常,如缺失特征、超出范围的值或错误的特征类型等。
- 异常查看器,让您可以查看哪些特征存在异常并了解更多信息以进行修正。
有关使用 TFDV 的说明,请参阅入门指南并尝试示例笔记本。TFDV 实现的一些技术在发表于 SysML'19 的技术论文中有所描述。
从 PyPI 安装
推荐使用 PyPI 包安装 TFDV:
pip install tensorflow-data-validation
每日构建包
TFDV 还在 Google Cloud 上托管每日构建包。要安装最新的每日构建包,请使用以下命令:
export TFX_DEPENDENCY_SELECTOR=NIGHTLY
pip install --extra-index-url https://pypi-nightly.tensorflow.org/simple tensorflow-data-validation
这将安装 TFDV 主要依赖项的每日构建包,如 TFX 基础共享库(TFX-BSL)和 TensorFlow 元数据(TFMD)。
有时 TFDV 会使用这些依赖项的最新更改,而这些更改尚未发布。因此,使用每日构建版本的 TFDV 时,使用这些依赖库的每日构建版本会更安全。导出 TFX_DEPENDENCY_SELECTOR
环境变量可以实现这一点。
注意:这些每日构建包不稳定,可能会出现问题。修复可能需要一周或更长时间,具体取决于复杂程度。
使用 Docker 构建
这是在 Linux 下构建 TFDV 的推荐方式,并在 Google 进行持续测试。
1. 安装 Docker
请先按照以下说明安装 docker
和 docker-compose
:
docker;
docker-compose。
2. 克隆 TFDV 仓库
git clone https://github.com/tensorflow/data-validation
cd data-validation
注意,这些说明将安装 TensorFlow 数据验证的最新主分支。如果您想安装特定分支(如发布分支),请在 git clone
命令中传递 -b <分支名>
。
3. 构建 pip 包
然后,在项目根目录运行以下命令:
sudo docker-compose build manylinux2010
sudo docker-compose run -e PYTHON_VERSION=${PYTHON_VERSION} manylinux2010
其中 PYTHON_VERSION
是 {39, 310, 311}
之一。
将在 dist/
目录下生成一个 wheel 文件。
4. 安装 pip 包
pip install dist/*.whl
从源代码构建
1. 先决条件
要编译和使用 TFDV,您需要设置一些先决条件。
安装 NumPy
如果您的系统上未安装 NumPy,请按照这些说明现在安装。
安装 Bazel
如果您的系统上未安装 Bazel,请按照这些说明现在安装。
2. 克隆 TFDV 仓库
git clone https://github.com/tensorflow/data-validation
cd data-validation
注意,这些说明将安装 TensorFlow 数据验证的最新主分支。如果您想安装特定分支(如发布分支),请在 git clone
命令中传递 -b <分支名>
。
3. 构建 pip 包
TFDV
wheel 文件依赖于 Python 版本 -- 要构建适用于特定 Python 版本的 pip 包,请使用该 Python 二进制文件运行:
python setup.py bdist_wheel
您可以在 dist
子目录中找到生成的 .whl
文件。
4. 安装 pip 包
pip install dist/*.whl
支持的平台
TFDV 在以下 64 位操作系统上经过测试:
- macOS 12.5 (Monterey) 或更高版本。
- Ubuntu 20.04 或更高版本。
重要依赖项
需要 TensorFlow。
需要 Apache Beam;它是支持高效分布式计算的方式。默认情况下,Apache Beam 以本地模式运行,但也可以使用 Google Cloud Dataflow 和其他 Apache Beam 运行器在分布式模式下运行。
还需要 Apache Arrow。TFDV 内部使用 Arrow 表示数据,以便使用向量化的 numpy 函数。
兼容版本
下表显示了相互兼容的软件包版本。这是由我们的测试框架确定的,但其他未经测试的组合也可能有效。
tensorflow-数据验证 | apache-beam[gcp] | pyarrow | tensorflow | tensorflow-元数据 | tensorflow-转换 | tfx-bsl |
---|---|---|---|---|---|---|
GitHub 主分支 | 2.47.0 | 10.0.0 | 每日构建版 (2.x) | 1.15.0 | 不适用 | 1.15.1 |
1.15.1 | 2.47.0 | 10.0.0 | 2.15 | 1.15.0 | 不适用 | 1.15.1 |
1.15.0 | 2.47.0 | 10.0.0 | 2.15 | 1.15.0 | 不适用 | 1.15.0 |
1.14.0 | 2.47.0 | 10.0.0 | 2.13 | 1.14.0 | 不适用 | 1.14.0 |
1.13.0 | 2.40.0 | 6.0.0 | 2.12 | 1.13.1 | 不适用 | 1.13.0 |
1.12.0 | 2.40.0 | 6.0.0 | 2.11 | 1.12.0 | 不适用 | 1.12.0 |
1.11.0 | 2.40.0 | 6.0.0 | 1.15 / 2.10 | 1.11.0 | 不适用 | 1.11.0 |
1.10.0 | 2.40.0 | 6.0.0 | 1.15 / 2.9 | 1.10.0 | 不适用 | 1.10.1 |
1.9.0 | 2.38.0 | 5.0.0 | 1.15 / 2.9 | 1.9.0 | 不适用 | 1.9.0 |
1.8.0 | 2.38.0 | 5.0.0 | 1.15 / 2.8 | 1.8.0 | 不适用 | 1.8.0 |
1.7.0 | 2.36.0 | 5.0.0 | 1.15 / 2.8 | 1.7.0 | 不适用 | 1.7.0 |
1.6.0 | 2.35.0 | 5.0.0 | 1.15 / 2.7 | 1.6.0 | 不适用 | 1.6.0 |
1.5.0 | 2.34.0 | 5.0.0 | 1.15 / 2.7 | 1.5.0 | 不适用 | 1.5.0 |
1.4.0 | 2.32.0 | 4.0.1 | 1.15 / 2.6 | 1.4.0 | 不适用 | 1.4.0 |
1.3.0 | 2.32.0 | 2.0.0 | 1.15 / 2.6 | 1.2.0 | 不适用 | 1.3.0 |
1.2.0 | 2.31.0 | 2.0.0 | 1.15 / 2.5 | 1.2.0 | 不适用 | 1.2.0 |
1.1.1 | 2.29.0 | 2.0.0 | 1.15 / 2.5 | 1.1.0 | 不适用 | 1.1.1 |
1.1.0 | 2.29.0 | 2.0.0 | 1.15 / 2.5 | 1.1.0 | 不适用 | 1.1.0 |
1.0.0 | 2.29.0 | 2.0.0 | 1.15 / 2.5 | 1.0.0 | 不适用 | 1.0.0 |
0.30.0 | 2.28.0 | 2.0.0 | 1.15 / 2.4 | 0.30.0 | 不适用 | 0.30.0 |
0.29.0 | 2.28.0 | 2.0.0 | 1.15 / 2.4 | 0.29.0 | 不适用 | 0.29.0 |
0.28.0 | 2.28.0 | 2.0.0 | 1.15 / 2.4 | 0.28.0 | 不适用 | 0.28.1 |
0.27.0 | 2.27.0 | 2.0.0 | 1.15 / 2.4 | 0.27.0 | 不适用 | 0.27.0 |
0.26.1 | 2.28.0 | 0.17.0 | 1.15 / 2.3 | 0.26.0 | 0.26.0 | 0.26.0 |
0.26.0 | 2.25.0 | 0.17.0 | 1.15 / 2.3 | 0.26.0 | 0.26.0 | 0.26.0 |
0.25.0 | 2.25.0 | 0.17.0 | 1.15 / 2.3 | 0.25.0 | 0.25.0 | 0.25.0 |
0.24.1 | 2.24.0 | 0.17.0 | 1.15 / 2.3 | 0.24.0 | 0.24.1 | 0.24.1 |
0.24.0 | 2.23.0 | 0.17.0 | 1.15 / 2.3 | 0.24.0 | 0.24.0 | 0.24.0 |
0.23.1 | 2.24.0 | 0.17.0 | 1.15 / 2.3 | 0.23.0 | 0.23.0 | 0.23.0 |
0.23.0 | 2.23.0 | 0.17.0 | 1.15 / 2.3 | 0.23.0 | 0.23.0 | 0.23.0 |
0.22.2 | 2.20.0 | 0.16.0 | 1.15 / 2.2 | 0.22.0 | 0.22.0 | 0.22.1 |
0.22.1 | 2.20.0 | 0.16.0 | 1.15 / 2.2 | 0.22.0 | 0.22.0 | 0.22.1 |
0.22.0 | 2.20.0 | 0.16.0 | 1.15 / 2.2 | 0.22.0 | 0.22.0 | 0.22.0 |
0.21.5 | 2.17.0 | 0.15.0 | 1.15 / 2.1 | 0.21.0 | 0.21.1 | 0.21.3 |
0.21.4 | 2.17.0 | 0.15.0 | 1.15 / 2.1 | 0.21.0 | 0.21.1 | 0.21.3 |
0.21.2 | 2.17.0 | 0.15.0 | 1.15 / 2.1 | 0.21.0 | 0.21.0 | 0.21.0 |
0.21.1 | 2.17.0 | 0.15.0 | 1.15 / 2.1 | 0.21.0 | 0.21.0 | 0.21.0 |
0.21.0 | 2.17.0 | 0.15.0 | 1.15 / 2.1 | 0.21.0 | 0.21.0 | 0.21.0 |
0.15.0 | 2.16.0 | 0.14.0 | 1.15 / 2.0 | 0.15.0 | 0.15.0 | 0.15.0 |
0.14.1 | 2.14.0 | 0.14.0 | 1.14 | 0.14.0 | 0.14.0 | 不适用 |
0.14.0 | 2.14.0 | 0.14.0 | 1.14 | 0.14.0 | 0.14.0 | 不适用 |
0.13.1 | 2.11.0 | 不适用 | 1.13 | 0.12.1 | 0.13.0 | 不适用 |
0.13.0 | 2.11.0 | 不适用 | 1.13 | 0.12.1 | 0.13.0 | 不适用 |
0.12.0 | 2.10.0 | 不适用 | 1.12 | 0.12.1 | 0.12.0 | 不适用 |
0.11.0 | 2.8.0 | 不适用 | 1.11 | 0.9.0 | 0.11.0 | 不适用 |
0.9.0 | 2.6.0 | 不适用 | 1.9 | 不适用 | 不适用 | 不适用 |
问题
如果您在使用TF数据验证时有任何问题,请在Stack Overflow上使用tensorflow-data-validation标签提问。