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 .
Spinki do mankietów
- Przewodnik wprowadzający dotyczący sprawdzania poprawności danych TensorFlow
- Notatnik sprawdzania poprawności danych TensorFlow
- Dokumentacja API sprawdzania poprawności danych TensorFlow
- Post na blogu dotyczący sprawdzania poprawności danych TensorFlow
- Walidacja danych TensorFlow PyPI
- Dokument dotyczący walidacji danych TensorFlow
- Slajdy do sprawdzania poprawności danych TensorFlow