TensorFlow Data Validation (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 (TFMD) и базовые общие библиотеки TFX (TFX-BSL).
Иногда TFDV использует самые последние изменения этих зависимостей, которые еще не выпущены. По этой причине безопаснее использовать ночные версии этих зависимых библиотек при использовании ночного TFDV. Для этого экспортируйте переменную среды TFX_DEPENDENCY_SELECTOR
.
Сборка с помощью Docker
Это рекомендуемый способ сборки TFDV под Linux, который постоянно тестируется в Google.
1. Установите Докер
Сначала установите docker
и docker-compose
следуя инструкциям: docker ; докер-компоновать .
2. Клонируйте репозиторий TFDV.
git clone https://github.com/tensorflow/data-validation
cd data-validation
Обратите внимание, что эти инструкции позволят установить последнюю главную ветку проверки данных TensorFlow. Если вы хотите установить определенную ветку (например, ветку выпуска), передайте -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 не установлен в вашей системе, установите его сейчас, следуя этим инструкциям .
2. Клонируйте репозиторий TFDV.
git clone https://github.com/tensorflow/data-validation
cd data-validation
Обратите внимание, что эти инструкции позволят установить последнюю главную ветку проверки данных TensorFlow. Если вы хотите установить определенную ветку (например, ветку выпуска), передайте -b <branchname>
команде git clone
.
3. Создайте пакет pip
Колесо TFDV
зависит от версии Python — чтобы создать пакет pip, который работает для конкретной версии Python, используйте этот двоичный файл Python для запуска:
python setup.py bdist_wheel
Вы можете найти сгенерированный файл .whl
в подкаталоге dist
.
4. Установите пакет pip.
pip install dist/*.whl
Поддерживаемые платформы
TFDV протестирован на следующих 64-битных операционных системах:
- macOS 12.5 (Монтерей) или новее.
- Ubuntu 20.04 или новее.
Известные зависимости
Требуется TensorFlow.
Требуется Apache Beam ; это способ поддержки эффективных распределенных вычислений. По умолчанию Apache Beam работает в локальном режиме, но также может работать в распределенном режиме с использованием Google Cloud Dataflow и других средств запуска Apache Beam.
Также требуется Apache Arrow . TFDV использует Arrow для внутреннего представления данных, чтобы использовать векторизованные функции numpy.
Совместимые версии
В следующей таблице показаны версии пакетов, совместимые друг с другом. Это определяется нашей системой тестирования, но могут работать и другие непроверенные комбинации.
проверка данных тензорного потока | Apache-луч [gcp] | Пиарроу | тензорный поток | тензорный поток-метаданные | тензорное преобразование потока | tfx-bsl |
---|---|---|---|---|---|---|
Мастер GitHub | 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 направляйте в Stack Overflow , используя тег tensorflow-data-validation .