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
請先依照以下指示安裝 docker
和 docker-compose
:docker;docker-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 標籤發文。