การตรวจสอบข้อมูล TensorFlow

ดูบน GitHub

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 Metadata (TFMD) และ TFX Basic Shared Libraries (TFX-BSL)

บางครั้ง TFDV จะใช้การเปลี่ยนแปลงล่าสุดของการอ้างอิงเหล่านั้น ซึ่งยังไม่ได้เผยแพร่ ด้วยเหตุนี้ จึงปลอดภัยกว่าหากใช้ไลบรารีที่ขึ้นต่อกันในเวอร์ชันกลางคืนเมื่อใช้ TFDV ทุกคืน ส่งออกตัวแปรสภาพแวดล้อม TFX_DEPENDENCY_SELECTOR เพื่อดำเนินการดังกล่าว

สร้างด้วยนักเทียบท่า

นี่เป็นวิธีที่แนะนำในการสร้าง TFDV บน Linux และได้รับการทดสอบอย่างต่อเนื่องที่ Google

1. ติดตั้งนักเทียบท่า

ก่อนอื่นโปรดติดตั้ง docker และ docker-compose โดยทำตามคำแนะนำ: docker ; นักเทียบท่าเขียน

2. โคลนพื้นที่เก็บข้อมูล TFDV

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

โปรดทราบว่าคำแนะนำเหล่านี้จะติดตั้งสาขาหลักล่าสุดของการตรวจสอบข้อมูล TensorFlow หากคุณต้องการติดตั้งสาขาเฉพาะ (เช่น สาขา release) ให้ส่ง -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 หากคุณต้องการติดตั้งสาขาเฉพาะ (เช่น สาขา release) ให้ส่ง -b <branchname> ไปยังคำสั่ง git clone

3. สร้างแพ็คเกจ pip

TFDV wheel ขึ้นอยู่กับเวอร์ชันของ Python ในการสร้างแพ็คเกจ pip ที่ใช้ได้กับเวอร์ชัน Python เฉพาะ ให้ใช้ไบนารี่ของ Python นั้นเพื่อรัน:

python setup.py bdist_wheel

คุณสามารถค้นหาไฟล์ .whl ที่สร้างขึ้นได้ในไดเร็กทอรี dist

4. ติดตั้งแพ็คเกจ pip

pip install dist/*.whl

แพลตฟอร์มที่รองรับ

TFDV ได้รับการทดสอบบนระบบปฏิบัติการ 64 บิตต่อไปนี้:

  • macOS 12.5 (มอนเทอเรย์) หรือใหม่กว่า
  • อูบุนตู 20.04 หรือใหม่กว่า

การพึ่งพาอาศัยกันที่โดดเด่น

ต้องใช้ TensorFlow

จำเป็นต้องมี Apache Beam เป็นวิธีการสนับสนุนการคำนวณแบบกระจายที่มีประสิทธิภาพ ตามค่าเริ่มต้น Apache Beam จะทำงานในโหมดภายในเครื่อง แต่ยังสามารถทำงานในโหมดกระจายโดยใช้ Google Cloud Dataflow และ Apache Beam runners อื่นๆ ได้ด้วย

จำเป็นต้องมี Apache Arrow ด้วย TFDV ใช้ Arrow เพื่อแสดงข้อมูลภายในเพื่อใช้ฟังก์ชันตัวเลขแบบเวกเตอร์

รุ่นที่เข้ากันได้

ตารางต่อไปนี้แสดงเวอร์ชันแพ็คเกจที่เข้ากันได้ สิ่งนี้กำหนดโดยกรอบการทดสอบของเรา แต่ชุดค่าผสม ที่ยังไม่ทดสอบ อื่นๆ อาจใช้งานได้เช่นกัน

การตรวจสอบข้อมูลเทนเซอร์โฟลว์ 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