TensorFlow 資料驗證

TensorFlow Data Validation (TFDV) 是一個用於探索和驗證機器學習資料的程式庫。它旨在高度可擴展,並與 TensorFlow 和 TensorFlow Extended (TFX) 良好協作。

TF Data Validation 包含

  • 可擴展地計算訓練和測試資料的摘要統計資訊。
  • 與資料分佈和統計資訊檢視器整合,以及特徵對的分面比較 (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 主要依附元件 (例如 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 Data Validation 的最新主要分支。如果您要安裝特定分支 (例如發行分支),請將 -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} 之一。

wheel 檔案將在 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 Data Validation 的最新主要分支。如果您要安裝特定分支 (例如發行分支),請將 -b <branchname> 傳遞給 git clone 指令。

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-data-validation apache-beam[gcp] pyarrow tensorflow tensorflow-metadata tensorflow-transform tfx-bsl
GitHub master 2.47.0 10.0.0 每夜版 (1.x/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 2.0.0 1.15 / 2.7 1.5.0 不適用 1.5.0
1.4.0 2.32.0 2.0.0 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 Data Validation 的問題,請使用 Stack Overflow 上的 tensorflow-data-validation 標籤發文。