Path: blob/master/site/ko/io/tutorials/mongodb.ipynb
25118 views
Copyright 2021 The TensorFlow IO Authors.
MongoDB 컬렉션의 Tensorflow 데이터세트
개요
이 튜토리얼은 mongoDB 컬렉션에서 데이터를 읽어 tf.data.Dataset
를 준비하고 이를 사용하여 tf.keras
를 훈련하는 데 중점을 둡니다.
참고: mongodb storage에 대한 기본적인 이해가 있으면 튜토리얼을 진행하기가 더 쉽습니다.
설정 패키지
이 튜토리얼은 pymongo
를 helper 패키지로 사용하여 데이터를 저장하기 위해 새로운 mongodb 데이터베이스와 컬렉션을 생성합니다.
필요한 tensorflow-io 및 mongodb(helper) 패키지 설치하기
WARNING: Ignoring invalid distribution -eras (/usr/local/lib/python3.7/dist-packages)
WARNING: Ignoring invalid distribution -eras (/usr/local/lib/python3.7/dist-packages)
WARNING: Ignoring invalid distribution -eras (/usr/local/lib/python3.7/dist-packages)
WARNING: Ignoring invalid distribution -eras (/usr/local/lib/python3.7/dist-packages)
WARNING: Ignoring invalid distribution -eras (/usr/local/lib/python3.7/dist-packages)
WARNING: Ignoring invalid distribution -eras (/usr/local/lib/python3.7/dist-packages)
WARNING: Ignoring invalid distribution -eras (/usr/local/lib/python3.7/dist-packages)
WARNING: Ignoring invalid distribution -eras (/usr/local/lib/python3.7/dist-packages)
WARNING: Ignoring invalid distribution -eras (/usr/local/lib/python3.7/dist-packages)
WARNING: Ignoring invalid distribution -eras (/usr/local/lib/python3.7/dist-packages)
WARNING: Ignoring invalid distribution -eras (/usr/local/lib/python3.7/dist-packages)
WARNING: Ignoring invalid distribution -eras (/usr/local/lib/python3.7/dist-packages)
패키지 가져오기
tf 및 tfio 가져오기 검증하기
MongoDB 인스턴스 다운로드 및 설정하기
시연 목적으로, mongodb의 오픈 소스 버전이 사용됩니다.
인스턴스가 시작되면, 프로세스 목록의 mongo
를 grep 하여 가용성을 확인합니다.
베이스 엔드포인트를 쿼리 하여 클러스터에 대한 정보를 검색합니다.
데이터세트 살펴보기
이 튜토리얼의 목적을 위해, PetFinder 데이터세트를 다운로드하고 데이터를 mongodb에 수동으로 입력합니다. 이 분류 문제의 목표는 애완동물이 입양되었는지 아닌지 예측하는 것입니다.
이 튜토리얼의 목적을 위해, 레이블 열이 수정되었습니다. 0은 애완 동물이 입양되지 않았음을 나타내고 1은 입양되었음을 나타냅니다.
데이터세트 분할하기
mongo 컬렉션에 훈련 및 테스트 데이터 저장하기
tfio 데이터세트 준비
클러스터에서 데이터를 사용할 수 있게 되면 mongodb.MongoDBIODataset
클래스는 이 목적을 위해 이용됩니다. 이 클래스는 tf.data.Dataset
에서 상속되므로 tf.data.Dataset
의 유용한 모든 기능을 즉시 사용할 수 있습니다.
데이터세트 훈련
train_ds
내 각 항목은 json으로 디코딩 되어야 하는 문자열입니다. 그러려면 TensorSpec
를 지정하여 열의 하위 집합만 선택할 수 있습니다.
데이터세트 테스트
keras 전처리 레이어 정의하기
구조화된 데이터 튜토리얼에 따라, Keras 전처리 레이어를 사용하는 것이 좋습니다. 더욱 혁신적이고 모델과 쉽게 통합할 수 있기 때문입니다. 하지만, 표준 feature_columns도 사용할 수 있습니다.
구조화된 데이터를 분류할 때 preprocessing_layers
를 더욱 잘 이해하기 위해서는, structured data tutorial를 참조합니다.
모델 구축, 컴파일 및 훈련하기
테스트 데이터 추론하기
참고: 이 튜토리얼의 목적은 mongodb에서 tf.data.Datasets
를 준비하고 tf.keras
모델을 직접 훈련하는 Tensorflow-IO의 기능을 시연하는 것이기 때문에, 모델의 정확성을 개선하는 것은 현재 범위 밖입니다. 하지만, 사용자는 데이터세트를 탐색하고 기능 열 및 모델 아키텍처를 사용하여 더욱 나은 분류 성능을 얻을 수 있습니다.