Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
tensorflow
GitHub Repository: tensorflow/docs-l10n
Path: blob/master/site/es-419/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.

Lector de Apache ORC

Descripción general

Apache ORC es un formato de almacenamiento en columnas popular. El paquete tensorflow-io proporciona una implementación predeterminada para leer archivos Apache ORC.

Preparación

Instale los paquetes necesarios y reinicie el tiempo de ejecución

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

Descargue un archivo de conjunto de datos de muestra en ORC

El conjunto de datos que usará es el conjunto de datos Iris de la UCI. El conjunto de datos contiene 3 clases de 50 instancias cada una, donde cada clase se refiere a un tipo de planta de iris. Tiene 4 atributos: (1) largo del sépalo, (2) ancho del sépalo, (3) largo del pétalo, (4) ancho del pétalo y la última columna contiene la etiqueta de clase.

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

Crear un conjunto de datos a partir del archivo

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

Examine el conjunto de datos:

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

Veamos un ejemplo de principio a fin de entrenamiento del modelo tf.keras con un conjunto de datos de ORC basado en un conjunto de datos iris.

Preprocesamiento de los datos

Configure qué columnas son características y qué columna es etiqueta:

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)

Una función útil para asignar especies a números flotantes para el entrenamiento de modelos:

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)

Construir, compilar y entrenar el modelo

¡Finalmente, está todo listo para construir el modelo y entrenarlo! Construirá un modelo keras de 3 capas para predecir la clase de planta de iris a partir del conjunto de datos que acaba de procesar.

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)