Path: blob/master/site/pt-br/io/tutorials/mongodb.ipynb
25118 views
Copyright 2021 The TensorFlow IO Authors.
Datasets do Tensorflow a partir de coleções do MongoDB
Visão geral
O foco deste tutorial é preparar tf.data.Dataset
s lendo dados em coleções do MongoDB e usá-los para treinar um modelo do tf.keras
.
OBSERVAÇÃO: ter uma compreensão básica do armazenamento do MongoDB ajudará a acompanhar o tutorial com facilidade.
Configure os pacotes
Este tutorial usa o pymongo
como pacote helper para criar um novo banco de dados e coleção do mongoDB para armazenar os dados.
Instale os pacotes (helper) do TensorFlow IO e MongoDB obrigatórios
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)
Importe os pacotes
Valide as importações de tf e tfio
Baixe e configure a instância do MongoDB
Para fins de demonstração, a versão de código aberto do MongoDB é usada.
Após a inicialização da instância, use o comando grep mongo
na lista de processos para confirmar a disponibilidade.
Faça uma consulta ao endpoint base para recuperar as informações sobre o cluster.
Explore o dataset
Neste tutorial, vamos baixar o dataset PetFinder e alimentar o MongoDB com dados manualmente. O objeto deste problema de classificação é prever se o animal de estimação será adotado ou não.
Neste tutorial, são feitas modificações na coluna de rótulo: 0 indicará que o animal doméstico não foi adotado, e 1 indicará que foi.
Divida o dataset
Armazene os dados de treinamento e teste em coleções do Mongo
Prepare os datasets tfio
Quando os dados estiverem disponíveis no cluster, somente a classe mongodb.MongoDBIODataset
é utilizada para essa finalidade. Ela herda de tf.data.Dataset
e, portanto, expõe todas as funcionalidades úteis de tf.data.Dataset
de forma integrada.
Dataset de treinamento
Cada item em train_ds
é uma string que precisa ser decodificada em um json. Para fazer isso, você pode selecionar somente um subconjunto das colunas especificando TensorSpec
(especificação do tensor).
Dataset de teste
Defina as camadas de pré-processamento do Keras
Conforme o tutorial sobre dados estruturados, é recomendável usar as camadas de pré-processamento do Keras, pois elas são mais intuitivas e podem ser integradas aos modelos com facilidade. Porém, as feature_columns (colunas de características) padrão também podem ser usadas.
Para entender melhor as preprocessing_layers
na classificação de dados estruturados, confira o tutorial sobre dados estruturados.
Crie, compile e treine o modelo
Faça a inferência com os dados de teste
Observação: como o objetivo deste tutorial é demonstrar a capacidade do TensorFlow IO de preparar tf.data.Datasets
pelo MongoDB e treinar modelos do tf.keras
diretamente, aumentar a exatidão dos modelos está fora do escopo atual. Porém, o usuário pode explorar o dataset e fazer experimentos com as colunas de características e arquiteturas do modelo para ter um melhor desempenho ao fazer a classificação.