TFDV( TensorFlow Data Validation )는 머신러닝 데이터를 탐색하고 검증하기 위한 라이브러리입니다. 확장성이 뛰어나고 TensorFlow 및 TensorFlow Extended(TFX) 와 잘 작동하도록 설계되었습니다.
TF 데이터 검증에는 다음이 포함됩니다.
- 훈련 및 테스트 데이터의 요약 통계를 확장 가능하게 계산합니다.
- 데이터 분포 및 통계를 위한 뷰어와 통합은 물론 특징 쌍의 측면 비교( 패싯 )
- 필수 값, 범위, 어휘 등 데이터에 대한 기대치를 설명하는 자동화된 데이터 스키마 생성
- 스키마를 검사하는 데 도움이 되는 스키마 뷰어입니다.
- 누락된 특징, 범위를 벗어난 값 또는 잘못된 특징 유형과 같은 이상 현상을 식별하는 이상 탐지입니다.
- 어떤 기능에 이상이 있는지 확인하고 이를 수정하기 위해 자세히 알아볼 수 있는 이상 뷰어입니다.
TFDV 사용에 대한 지침은 시작 가이드를 참조하고 예제 노트북을 사용해 보세요. TFDV에 구현된 기술 중 일부는 SysML'19에 게시된 기술 문서 에 설명되어 있습니다.
PyPI에서 설치
TFDV를 설치하는 데 권장되는 방법은 PyPI 패키지를 사용하는 것입니다.
pip install tensorflow-data-validation
야간 패키지
TFDV는 또한 Google Cloud에서 야간 패키지를 호스팅합니다. 최신 nightly 패키지를 설치하려면 다음 명령을 사용하십시오.
export TFX_DEPENDENCY_SELECTOR=NIGHTLY
pip install --extra-index-url https://pypi-nightly.tensorflow.org/simple tensorflow-data-validation
이렇게 하면 TensorFlow Metadata(TFMD) 및 TFX Basic Shared Libraries(TFX-BSL)와 같은 TFDV의 주요 종속성에 대한 Nightly 패키지가 설치됩니다.
때때로 TFDV는 아직 출시되지 않은 종속성의 최신 변경 사항을 사용합니다. 이 때문에 Nightly TFDV를 사용할 때 해당 종속 라이브러리의 Nightly 버전을 사용하는 것이 더 안전합니다. 이를 수행하려면 TFX_DEPENDENCY_SELECTOR
환경 변수를 내보내세요.
Docker로 빌드
이는 Linux에서 TFDV를 빌드하는 데 권장되는 방법이며 Google에서 지속적으로 테스트됩니다.
1. 도커 설치
먼저 다음 지침에 따라 docker
및 docker-compose
설치하십시오. docker ; 도커 작성 .
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}
중 하나입니다.
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 Data Validation의 최신 마스터 분기를 설치합니다. 특정 브랜치(예: 릴리스 브랜치)를 설치하려면 -b <branchname>
git clone
명령에 전달하세요.
3. pip 패키지 빌드
TFDV
휠은 Python 버전에 따라 다릅니다. 특정 Python 버전에서 작동하는 pip 패키지를 빌드하려면 해당 Python 바이너리를 사용하여 다음을 실행하세요.
python setup.py bdist_wheel
생성된 .whl
파일은 dist
하위 디렉터리에서 찾을 수 있습니다.
4. pip 패키지 설치
pip install dist/*.whl
지원되는 플랫폼
TFDV는 다음 64비트 운영 체제에서 테스트되었습니다.
- macOS 12.5(몬트레이) 이상.
- 우분투 20.04 이상.
주목할만한 종속성
텐서플로우가 필요합니다.
Apache Beam이 필요합니다. 효율적인 분산 계산이 지원되는 방식입니다. 기본적으로 Apache Beam은 로컬 모드에서 실행되지만 Google Cloud Dataflow 및 기타 Apache Beam 실행기를 사용하여 분산 모드에서 실행될 수도 있습니다.
Apache Arrow 도 필요합니다. TFDV는 벡터화된 numpy 함수를 사용하기 위해 Arrow를 사용하여 내부적으로 데이터를 나타냅니다.
호환되는 버전
다음 표에는 서로 호환되는 패키지 버전이 나와 있습니다. 이는 테스트 프레임워크에 따라 결정되지만 테스트되지 않은 다른 조합도 작동할 수 있습니다.
텐서플로우 데이터 검증 | 아파치-빔[gcp] | pyarrow | 텐서플로우 | 텐서플로우 메타데이터 | 텐서플로우 변환 | 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 Data Validation 작업에 대한 질문이 있으면 tensorflow-data-validation 태그를 사용하여 Stack Overflow 에 문의하세요.