TensorFlow 数据验证

TensorFlow 数据验证 (TFDV) 是一个用于探索和验证机器学习数据的库。它旨在高度可扩展,并与 TensorFlow 和 TensorFlow Extended (TFX) 协同工作。

TF 数据验证包括

  • 可扩展计算训练和测试数据的汇总统计信息。
  • 与查看器集成,用于查看数据分布和统计信息,以及成对特征的方面比较 (Facets)
  • 自动 数据模式 生成,以描述对数据的期望,例如必需值、范围和词汇表
  • 模式查看器,可帮助您检查模式。
  • 异常检测,用于识别异常,例如缺少特征、超出范围的值或错误的特征类型,仅举几例。
  • 异常查看器,以便您可以查看哪些特征存在异常,并了解更多信息以进行更正。

有关使用 TFDV 的说明,请参阅 入门指南 并尝试使用 示例笔记本。TFDV 中实现的一些技术在 SysML'19 中发表的技术论文 中进行了描述。

从 PyPI 安装

安装 TFDV 的推荐方法是使用 PyPI 包

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 主要依赖项(例如 TensorFlow Metadata (TFMD) 和 TFX Basic Shared Libraries (TFX-BSL))的每日构建包。

有时 TFDV 会使用这些依赖项的最新更改,这些更改尚未发布。因此,在使用每日构建的 TFDV 时,使用这些依赖库的每日构建版本更安全。导出 TFX_DEPENDENCY_SELECTOR 环境变量以执行此操作。

使用 Docker 构建

这是在 Linux 下构建 TFDV 的推荐方法,并且在 Google 持续测试。

1. 安装 Docker

请首先按照以下说明安装 dockerdocker-composedockerdocker-compose.

2. 克隆 TFDV 存储库

git clone https://github.com/tensorflow/data-validation
cd data-validation

请注意,这些说明将安装 TensorFlow 数据验证的最新 master 分支。如果您想安装特定分支(例如发布分支),请将 -b <branchname> 传递给 git clone 命令。

3. 构建 pip 包

然后,在项目根目录下运行以下命令

sudo docker-compose build manylinux2010
sudo docker-compose run -e PYTHON_VERSION=${PYTHON_VERSION} manylinux2010

其中 PYTHON_VERSION{39, 310, 311} 之一。

一个轮子将在 dist/ 下生成。

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 数据验证的最新 master 分支。如果您想安装特定分支(例如发布分支),请将 -b <branchname> 传递给 git clone 命令。

3. 构建 pip 包

TFDV 轮子依赖于 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-data-validation apache-beam[gcp] pyarrow tensorflow tensorflow-metadata tensorflow-transform tfx-bsl
GitHub 主分支 2.47.0 10.0.0 nightly (1.x/2.x) 1.15.0 n/a 1.15.1
1.15.1 2.47.0 10.0.0 2.15 1.15.0 n/a 1.15.1
1.15.0 2.47.0 10.0.0 2.15 1.15.0 n/a 1.15.0
1.14.0 2.47.0 10.0.0 2.13 1.14.0 n/a 1.14.0
1.13.0 2.40.0 6.0.0 2.12 1.13.1 n/a 1.13.0
1.12.0 2.40.0 6.0.0 2.11 1.12.0 n/a 1.12.0
1.11.0 2.40.0 6.0.0 1.15 / 2.10 1.11.0 n/a 1.11.0
1.10.0 2.40.0 6.0.0 1.15 / 2.9 1.10.0 n/a 1.10.1
1.9.0 2.38.0 5.0.0 1.15 / 2.9 1.9.0 n/a 1.9.0
1.8.0 2.38.0 5.0.0 1.15 / 2.8 1.8.0 n/a 1.8.0
1.7.0 2.36.0 5.0.0 1.15 / 2.8 1.7.0 n/a 1.7.0
1.6.0 2.35.0 5.0.0 1.15 / 2.7 1.6.0 n/a 1.6.0
1.5.0 2.34.0 2.0.0 1.15 / 2.7 1.5.0 n/a 1.5.0
1.4.0 2.32.0 2.0.0 1.15 / 2.6 1.4.0 n/a 1.4.0
1.3.0 2.32.0 2.0.0 1.15 / 2.6 1.2.0 n/a 1.3.0
1.2.0 2.31.0 2.0.0 1.15 / 2.5 1.2.0 n/a 1.2.0
1.1.1 2.29.0 2.0.0 1.15 / 2.5 1.1.0 n/a 1.1.1
1.1.0 2.29.0 2.0.0 1.15 / 2.5 1.1.0 n/a 1.1.0
1.0.0 2.29.0 2.0.0 1.15 / 2.5 1.0.0 n/a 1.0.0
0.30.0 2.28.0 2.0.0 1.15 / 2.4 0.30.0 n/a 0.30.0
0.29.0 2.28.0 2.0.0 1.15 / 2.4 0.29.0 n/a 0.29.0
0.28.0 2.28.0 2.0.0 1.15 / 2.4 0.28.0 n/a 0.28.1
0.27.0 2.27.0 2.0.0 1.15 / 2.4 0.27.0 n/a 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 n/a
0.14.0 2.14.0 0.14.0 1.14 0.14.0 0.14.0 n/a
0.13.1 2.11.0 n/a 1.13 0.12.1 0.13.0 n/a
0.13.0 2.11.0 n/a 1.13 0.12.1 0.13.0 n/a
0.12.0 2.10.0 n/a 1.12 0.12.1 0.12.0 n/a
0.11.0 2.8.0 n/a 1.11 0.9.0 0.11.0 n/a
0.9.0 2.6.0 n/a 1.9 n/a n/a n/a

问题

有关使用 TF 数据验证的任何问题,请使用 Stack Overflow 上的 tensorflow-data-validation 标签。