Walidacja danych TensorFlow

Zobacz na GitHubie

TensorFlow Data Validation (TFDV) to biblioteka służąca do eksplorowania i weryfikowania danych uczenia maszynowego. Został zaprojektowany tak, aby był wysoce skalowalny i dobrze współpracował z TensorFlow i TensorFlow Extended (TFX) .

Walidacja danych TF obejmuje:

  • Skalowalne obliczanie statystyk podsumowujących dane treningowe i testowe.
  • Integracja z przeglądarką w celu dystrybucji danych i statystyk, a także wieloaspektowego porównywania par cech ( Facety )
  • Zautomatyzowane generowanie schematów danych w celu opisania oczekiwań dotyczących danych, takich jak wymagane wartości, zakresy i słowniki
  • Przeglądarka schematów, która pomoże Ci sprawdzić schemat.
  • Wykrywanie anomalii w celu identyfikacji anomalii, takich jak brakujące funkcje, wartości spoza zakresu lub nieprawidłowe typy funkcji, żeby wymienić tylko kilka.
  • Przeglądarka anomalii, dzięki której możesz zobaczyć, które funkcje mają anomalie i dowiedzieć się więcej, aby je poprawić.

Aby uzyskać instrukcje dotyczące korzystania z TFDV, zobacz przewodnik wprowadzający i wypróbuj przykładowy notatnik . Niektóre techniki zaimplementowane w TFDV opisano w artykule technicznym opublikowanym w SysML'19 .

Instalacja z PyPI

Zalecanym sposobem instalacji TFDV jest użycie pakietu PyPI :

pip install tensorflow-data-validation

Pakiety nocne

TFDV obsługuje również pakiety nocne w Google Cloud. Aby zainstalować najnowszy pakiet nightly, użyj następującego polecenia:

export TFX_DEPENDENCY_SELECTOR=NIGHTLY
pip install --extra-index-url https://pypi-nightly.tensorflow.org/simple tensorflow-data-validation

Spowoduje to zainstalowanie pakietów nocnych dla głównych zależności TFDV, takich jak metadane TensorFlow (TFMD) i podstawowe biblioteki współdzielone TFX (TFX-BSL).

Czasami TFDV wykorzystuje najnowsze zmiany tych zależności, które nie zostały jeszcze wydane. Z tego powodu bezpieczniej jest używać nocnych wersji tych bibliotek zależnych podczas korzystania z nocnego TFDV. W tym celu wyeksportuj zmienną środowiskową TFX_DEPENDENCY_SELECTOR .

Buduj za pomocą Dockera

Jest to zalecany sposób budowania TFDV pod Linuksem i jest stale testowany w Google.

1. Zainstaluj Dockera

Najpierw zainstaluj docker i docker-compose postępując zgodnie ze wskazówkami: docker ; docker-compose .

2. Sklonuj repozytorium TFDV

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

Należy pamiętać, że te instrukcje zainstalują najnowszą główną gałąź sprawdzania poprawności danych TensorFlow. Jeśli chcesz zainstalować konkretną gałąź (np. gałąź wydania), przekaż -b <branchname> do polecenia git clone .

3. Zbuduj pakiet pip

Następnie uruchom następujące polecenie w katalogu głównym projektu:

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

gdzie PYTHON_VERSION jest jednym z {39, 310, 311} .

Koło zostanie wyprodukowane w dist/ .

4. Zainstaluj pakiet pip

pip install dist/*.whl

Kompiluj ze źródła

1. Warunki wstępne

Aby skompilować i używać TFDV, musisz skonfigurować pewne wymagania wstępne.

Zainstaluj NumPy

Jeśli NumPy nie jest zainstalowany w twoim systemie, zainstaluj go teraz, postępując zgodnie z tymi wskazówkami .

Zainstaluj Bazela

Jeśli Bazel nie jest zainstalowany w Twoim systemie, zainstaluj go teraz, postępując zgodnie z poniższymi wskazówkami .

2. Sklonuj repozytorium TFDV

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

Należy pamiętać, że te instrukcje zainstalują najnowszą główną gałąź sprawdzania poprawności danych TensorFlow. Jeśli chcesz zainstalować konkretną gałąź (np. gałąź wydania), przekaż -b <branchname> do polecenia git clone .

3. Zbuduj pakiet pip

Koło TFDV zależy od wersji Pythona — aby zbudować pakiet pip, który będzie działał dla konkretnej wersji Pythona, użyj tego pliku binarnego Pythona do uruchomienia:

python setup.py bdist_wheel

Wygenerowany plik .whl znajdziesz w podkatalogu dist .

4. Zainstaluj pakiet pip

pip install dist/*.whl

Obsługiwane platformy

TFDV jest testowany na następujących 64-bitowych systemach operacyjnych:

  • macOS 12.5 (Monterey) lub nowszy.
  • Ubuntu 20.04 lub nowszy.

Godne uwagi zależności

Wymagany jest TensorFlow.

Wymagany jest Apache Beam ; w ten sposób obsługiwane są wydajne obliczenia rozproszone. Domyślnie Apache Beam działa w trybie lokalnym, ale może również działać w trybie rozproszonym, korzystając z Google Cloud Dataflow i innych modułów uruchamiających Apache Beam.

Wymagany jest także Apache Arrow . TFDV używa Arrow do wewnętrznej reprezentacji danych w celu wykorzystania wektorowych funkcji numpy.

Kompatybilne wersje

W poniższej tabeli przedstawiono wersje pakietów, które są ze sobą kompatybilne. Jest to określane przez nasze ramy testowe, ale inne nieprzetestowane kombinacje mogą również działać.

walidacja danych tensorflow Apache-beam[gcp] pirar przepływ tensorowy metadane tensorflow transformacja tensorflow tfx-bsl
Mistrz GitHuba 2.47.0 10.0.0 co noc (1.x/2.x) 1.15.0 nie dotyczy 1.15.1
1.15.1 2.47.0 10.0.0 2.15 1.15.0 nie dotyczy 1.15.1
1.15.0 2.47.0 10.0.0 2.15 1.15.0 nie dotyczy 1.15.0
1.14.0 2.47.0 10.0.0 2.13 1.14.0 nie dotyczy 1.14.0
1.13.0 2.40.0 6.0.0 2.12 1.13.1 nie dotyczy 1.13.0
1.12.0 2.40.0 6.0.0 2.11 1.12.0 nie dotyczy 1.12.0
1.11.0 2.40.0 6.0.0 1,15 / 2,10 1.11.0 nie dotyczy 1.11.0
1.10.0 2.40.0 6.0.0 1,15 / 2,9 1.10.0 nie dotyczy 1.10.1
1.9.0 2.38.0 5.0.0 1,15 / 2,9 1.9.0 nie dotyczy 1.9.0
1.8.0 2.38.0 5.0.0 1,15 / 2,8 1.8.0 nie dotyczy 1.8.0
1.7.0 2.36.0 5.0.0 1,15 / 2,8 1.7.0 nie dotyczy 1.7.0
1.6.0 2.35.0 5.0.0 1,15 / 2,7 1.6.0 nie dotyczy 1.6.0
1.5.0 2.34.0 2.0.0 1,15 / 2,7 1.5.0 nie dotyczy 1.5.0
1.4.0 2.32.0 2.0.0 1,15 / 2,6 1.4.0 nie dotyczy 1.4.0
1.3.0 2.32.0 2.0.0 1,15 / 2,6 1.2.0 nie dotyczy 1.3.0
1.2.0 2.31.0 2.0.0 1,15 / 2,5 1.2.0 nie dotyczy 1.2.0
1.1.1 2.29.0 2.0.0 1,15 / 2,5 1.1.0 nie dotyczy 1.1.1
1.1.0 2.29.0 2.0.0 1,15 / 2,5 1.1.0 nie dotyczy 1.1.0
1.0.0 2.29.0 2.0.0 1,15 / 2,5 1.0.0 nie dotyczy 1.0.0
0.30.0 2.28.0 2.0.0 1,15 / 2,4 0.30.0 nie dotyczy 0.30.0
0.29.0 2.28.0 2.0.0 1,15 / 2,4 0.29.0 nie dotyczy 0.29.0
0.28.0 2.28.0 2.0.0 1,15 / 2,4 0.28.0 nie dotyczy 0.28.1
0.27.0 2.27.0 2.0.0 1,15 / 2,4 0.27.0 nie dotyczy 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 nie dotyczy
0.14.0 2.14.0 0.14.0 1.14 0.14.0 0.14.0 nie dotyczy
0.13.1 2.11.0 nie dotyczy 1.13 0.12.1 0.13.0 nie dotyczy
0.13.0 2.11.0 nie dotyczy 1.13 0.12.1 0.13.0 nie dotyczy
0.12.0 2.10.0 nie dotyczy 1.12 0.12.1 0.12.0 nie dotyczy
0.11.0 2.8.0 nie dotyczy 1.11 0.9.0 0.11.0 nie dotyczy
0.9.0 2.6.0 nie dotyczy 1.9 nie dotyczy nie dotyczy nie dotyczy

Pytania

Wszelkie pytania dotyczące pracy z walidacją danych TF prosimy kierować do przepełnienia stosu, korzystając z tagu tensorflow-data-validation .