Path: blob/master/site/pt-br/io/tutorials/mongodb.ipynb
38475 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.Datasets 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.
Ver em TensorFlow.org
Executar no Google Colab
Ver fonte no GitHub
Baixar notebook