Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
tensorflow
GitHub Repository: tensorflow/docs-l10n
Path: blob/master/site/pt-br/io/tutorials/orc.ipynb
25118 views
Kernel: Python 3
#@title Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License.

Leitor do Apache ORC

Visão geral

O Apache ORC é um formato popular de armazenamento baseado em colunas. O pacote tensorflow-io conta com uma implementação padrão de leitura de arquivos do Apache ORC.

Configuração

Instale os pacotes necessários e reinicie o runtime

!pip install tensorflow-io
import tensorflow as tf import tensorflow_io as tfio

Baixe um arquivo de dataset de amostra em ORC

O dataset que usaremos está no Iris Dataset da UCI e contém 3 classes com 50 instâncias cada, em que cada classe se refere a um tipo de planta íris. Ele tem 4 atributos: (1) sepal length (comprimento da sépala), (2) sepal width (largura da sépala), (3) petal length (comprimento da pétala) e (4) petal width (largura da pétala), e a última coluna contém o rótulo de classe.

!curl -OL https://github.com/tensorflow/io/raw/master/tests/test_orc/iris.orc !ls -l iris.orc

Crie um dataset a partir do arquivo

dataset = tfio.IODataset.from_orc("iris.orc", capacity=15).batch(1)

Avalie o dataset:

for item in dataset.take(1): print(item)

Vamos conferir um exemplo completo de treinamento de modelos do tf.keras com o dataset ORC baseado no dataset Iris.

Pré-processamento de dados

Configure quais colunas são características e qual é o rótulo:

feature_cols = ["sepal_length", "sepal_width", "petal_length", "petal_width"] label_cols = ["species"] # select feature columns feature_dataset = tfio.IODataset.from_orc("iris.orc", columns=feature_cols) # select label columns label_dataset = tfio.IODataset.from_orc("iris.orc", columns=label_cols)

Uma função utilitária para mapear espécies para números de ponto flutuante para o treinamento do modelo:

vocab_init = tf.lookup.KeyValueTensorInitializer( keys=tf.constant(["virginica", "versicolor", "setosa"]), values=tf.constant([0, 1, 2], dtype=tf.int64)) vocab_table = tf.lookup.StaticVocabularyTable( vocab_init, num_oov_buckets=4)
label_dataset = label_dataset.map(vocab_table.lookup) dataset = tf.data.Dataset.zip((feature_dataset, label_dataset)) dataset = dataset.batch(1) def pack_features_vector(features, labels): """Pack the features into a single array.""" features = tf.stack(list(features), axis=1) return features, labels dataset = dataset.map(pack_features_vector)

Crie, compile e treine o modelo

Finalmente, está tudo pronto para criar o modelo e treiná-lo! Você criará um modelo do Keras com 3 camadas para prever a classe da planta íris usando o dataset processado.

model = tf.keras.Sequential( [ tf.keras.layers.Dense( 10, activation=tf.nn.relu, input_shape=(4,) ), tf.keras.layers.Dense(10, activation=tf.nn.relu), tf.keras.layers.Dense(3), ] ) model.compile(optimizer="adam", loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True), metrics=["accuracy"]) model.fit(dataset, epochs=5)