TensorFlow Data Validation (TFDV) é uma biblioteca para explorar e validar dados de aprendizado de máquina. Ele foi projetado para ser altamente escalonável e funcionar bem com TensorFlow e TensorFlow Extended (TFX) .
A validação de dados TF inclui:
- Cálculo escalável de estatísticas resumidas de dados de treinamento e teste.
- Integração com visualizador para distribuições de dados e estatísticas, bem como comparação facetada de pares de características ( Facets )
- Geração automatizada de esquema de dados para descrever expectativas sobre dados, como valores, intervalos e vocabulários necessários
- Um visualizador de esquema para ajudá-lo a inspecionar o esquema.
- Detecção de anomalias para identificar anomalias, como recursos ausentes, valores fora do intervalo ou tipos de recursos incorretos, para citar alguns.
- Um visualizador de anomalias para que você possa ver quais recursos apresentam anomalias e aprender mais para corrigi-las.
Para obter instruções sobre como usar o TFDV, consulte o guia de primeiros passos e experimente o notebook de exemplo . Algumas das técnicas implementadas no TFDV são descritas em um artigo técnico publicado no SysML'19 .
Instalando a partir do PyPI
A maneira recomendada de instalar o TFDV é usando o pacote PyPI :
pip install tensorflow-data-validation
Pacotes noturnos
TFDV também hospeda pacotes noturnos no Google Cloud. Para instalar o pacote noturno mais recente, use o seguinte comando:
export TFX_DEPENDENCY_SELECTOR=NIGHTLY
pip install --extra-index-url https://pypi-nightly.tensorflow.org/simple tensorflow-data-validation
Isso instalará os pacotes noturnos para as principais dependências do TFDV, como TensorFlow Metadata (TFMD) e TFX Basic Shared Libraries (TFX-BSL).
Às vezes, o TFDV usa as alterações mais recentes dessas dependências, que ainda não foram lançadas. Por causa disso, é mais seguro usar versões noturnas dessas bibliotecas dependentes ao usar o TFDV noturno. Exporte a variável de ambiente TFX_DEPENDENCY_SELECTOR
para fazer isso.
Construir com Docker
Esta é a forma recomendada de construir TFDV no Linux e é continuamente testada no Google.
1. Instale o Docker
Primeiro instale docker
e docker-compose
seguindo as instruções: docker ; docker-compose .
2. Clone o repositório TFDV
git clone https://github.com/tensorflow/data-validation
cd data-validation
Observe que estas instruções instalarão o branch master mais recente do TensorFlow Data Validation. Se você deseja instalar um branch específico (como um branch de lançamento), passe -b <branchname>
para o comando git clone
.
3. Construa o pacote pip
Em seguida, execute o seguinte na raiz do projeto:
sudo docker-compose build manylinux2010
sudo docker-compose run -e PYTHON_VERSION=${PYTHON_VERSION} manylinux2010
onde PYTHON_VERSION
é um de {39, 310, 311}
.
Uma roda será produzida em dist/
.
4. Instale o pacote pip
pip install dist/*.whl
Construir a partir da fonte
1. Pré-requisitos
Para compilar e usar o TFDV, você precisa configurar alguns pré-requisitos.
Instale o NumPy
Se o NumPy não estiver instalado no seu sistema, instale-o agora seguindo estas instruções .
Instale o Bazel
Se o Bazel não estiver instalado em seu sistema, instale-o agora seguindo estas instruções .
2. Clone o repositório TFDV
git clone https://github.com/tensorflow/data-validation
cd data-validation
Observe que estas instruções instalarão o branch master mais recente do TensorFlow Data Validation. Se você deseja instalar um branch específico (como um branch de lançamento), passe -b <branchname>
para o comando git clone
.
3. Construa o pacote pip
A roda TFDV
depende da versão do Python - para construir o pacote pip que funciona para uma versão específica do Python, use esse binário do Python para executar:
python setup.py bdist_wheel
Você pode encontrar o arquivo .whl
gerado no subdiretório dist
.
4. Instale o pacote pip
pip install dist/*.whl
Plataformas suportadas
TFDV é testado nos seguintes sistemas operacionais de 64 bits:
- macOS 12.5 (Monterey) ou posterior.
- Ubuntu 20.04 ou posterior.
- Windows 7 ou posterior.
Dependências notáveis
O TensorFlow é obrigatório.
Apache Beam é necessário; é a forma como a computação distribuída eficiente é suportada. Por padrão, o Apache Beam é executado em modo local, mas também pode ser executado em modo distribuído usando o Google Cloud Dataflow e outros executores do Apache Beam .
Apache Arrow também é necessário. TFDV usa Arrow para representar dados internamente para fazer uso de funções numpy vetorizadas.
Versões compatíveis
A tabela a seguir mostra as versões do pacote que são compatíveis entre si. Isto é determinado pela nossa estrutura de testes, mas outras combinações não testadas também podem funcionar.
validação de dados tensorflow | feixe apache[gcp] | Pyarrow | fluxo tensor | metadados de tensorflow | transformação de tensorflow | tfx-bsl |
---|---|---|---|---|---|---|
Mestre GitHub | 2.47.0 | 10.0.0 | todas as noites (1.x/2.x) | 1.14.0 | n / D | 1.14.0 |
1.14.0 | 2.47.0 | 10.0.0 | 2.13 | 1.14.0 | n / D | 1.14.0 |
1.13.0 | 2.40.0 | 6.0.0 | 2.12 | 1.13.1 | n / D | 1.13.0 |
1.12.0 | 2.40.0 | 6.0.0 | 2.11 | 1.12.0 | n / D | 1.12.0 |
1.11.0 | 2.40.0 | 6.0.0 | 1,15 / 2,10 | 1.11.0 | n / D | 1.11.0 |
1.10.0 | 2.40.0 | 6.0.0 | 1,15 / 2,9 | 1.10.0 | n / D | 1.10.1 |
1.9.0 | 2.38.0 | 5.0.0 | 1,15 / 2,9 | 1.9.0 | n / D | 1.9.0 |
1.8.0 | 2.38.0 | 5.0.0 | 1,15 / 2,8 | 1.8.0 | n / D | 1.8.0 |
1.7.0 | 2.36.0 | 5.0.0 | 1,15 / 2,8 | 1.7.0 | n / D | 1.7.0 |
1.6.0 | 2.35.0 | 5.0.0 | 1,15 / 2,7 | 1.6.0 | n / D | 1.6.0 |
1.5.0 | 2.34.0 | 2.0.0 | 1,15 / 2,7 | 1.5.0 | n / D | 1.5.0 |
1.4.0 | 2.32.0 | 2.0.0 | 1,15 / 2,6 | 1.4.0 | n / D | 1.4.0 |
1.3.0 | 2.32.0 | 2.0.0 | 1,15 / 2,6 | 1.2.0 | n / D | 1.3.0 |
1.2.0 | 2.31.0 | 2.0.0 | 1,15 / 2,5 | 1.2.0 | n / D | 1.2.0 |
1.1.1 | 2.29.0 | 2.0.0 | 1,15 / 2,5 | 1.1.0 | n / D | 1.1.1 |
1.1.0 | 2.29.0 | 2.0.0 | 1,15 / 2,5 | 1.1.0 | n / D | 1.1.0 |
1.0.0 | 2.29.0 | 2.0.0 | 1,15 / 2,5 | 1.0.0 | n / D | 1.0.0 |
0.30.0 | 2.28.0 | 2.0.0 | 1,15 / 2,4 | 0.30.0 | n / D | 0.30.0 |
0,29,0 | 2.28.0 | 2.0.0 | 1,15 / 2,4 | 0,29,0 | n / D | 0,29,0 |
0,28,0 | 2.28.0 | 2.0.0 | 1,15 / 2,4 | 0,28,0 | n / D | 0.28.1 |
0,27,0 | 2.27.0 | 2.0.0 | 1,15 / 2,4 | 0,27,0 | n / D | 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 | n / D |
0.14.0 | 2.14.0 | 0.14.0 | 1.14 | 0.14.0 | 0.14.0 | n / D |
0.13.1 | 2.11.0 | n / D | 1.13 | 0.12.1 | 0.13.0 | n / D |
0.13.0 | 2.11.0 | n / D | 1.13 | 0.12.1 | 0.13.0 | n / D |
0.12.0 | 2.10.0 | n / D | 1.12 | 0.12.1 | 0.12.0 | n / D |
0.11.0 | 2.8.0 | n / D | 1.11 | 0.9.0 | 0.11.0 | n / D |
0.9.0 | 2.6.0 | n / D | 1,9 | n / D | n / D | n / D |
Questões
Direcione qualquer dúvida sobre como trabalhar com TF Data Validation para Stack Overflow usando a tag tensorflow-data-validation .
Ligações
- Guia de primeiros passos para validação de dados do TensorFlow
- Caderno de validação de dados do TensorFlow
- Documentação da API de validação de dados do TensorFlow
- Postagem do blog sobre validação de dados do TensorFlow
- PyPI de validação de dados do TensorFlow
- Documento de validação de dados do TensorFlow
- Slides de validação de dados do TensorFlow