es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Spanish Translation of IT Documents: | Etiqueta | | ———–| | Traducción | | Traductor | | Documentos | | Tecnología | | Instrucciones | | Informática | | Seguridad | | Sistemas | | Computadoras| | Redes | | Software | | Hardware | | Programación| | Descargar | | Actualizar | | Instalar | | Reiniciar | | Configurar | | Copia de seguridad | | Solución de problemas | | Mensaje de error |

Tengo una pregunta sobre TensorFlow.
Tengo datos CSV como se muestra en la imagen adjunta, y quiero mapearlos:
la fila verde es la etiqueta para las 5 filas anteriores.
¿Es posible hacerlo dentro de la función de mapeo (dataset.map())?
Y ¿cómo se hace?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible realizar el mapeo utilizando la función dataset.map() en Tensorflow. Un enfoque podría ser utilizar la función window() para crear una ventana deslizante de tamaño 6 (5 filas + etiqueta) y luego mapear cada ventana a una tupla de las últimas 5 filas y la etiqueta de la primera fila de la ventana. Aquí tienes un ejemplo de implementación:

    import tensorflow.compat.v2 as tf
    import tensorflow_datasets as tfds
    
    # Cargar los datos CSV en un conjunto de datos de Tensorflow
    data = tf.data.experimental.CsvDataset(
        "ruta/al/archivo.csv", record_defaults=[tf.float32]*10, header=True
    )
    
    # Definir el tamaño de la ventana
    window_size = 6
    
    # Definir la función de mapeo
    def map_fn(*fila):
        etiqueta = fila[0]
        características = fila[1:]
        return (características[:-1], etiqueta)
    
    # Aplicar ventana y mapeo al conjunto de datos
    dataset = data.window(window_size, shift=1, drop_remainder=True)
    dataset = dataset.flat_map(lambda ventana: ventana.batch(window_size))
    dataset = dataset.map(map_fn)
    
    # Opcionalmente, mezclar y agrupar en lotes el conjunto de datos resultante
    dataset = dataset.shuffle(buffer_size=10000)
    dataset = dataset.batch(batch_size=32)
    

    En este ejemplo, primero cargamos los datos CSV en un conjunto de datos de Tensorflow utilizando tf.data.experimental.CsvDataset(). Luego, definimos el tamaño de la ventana y la función de mapeo como se describe anteriormente. A continuación, aplicamos la función window() para crear una ventana deslizante de tamaño 6 (con un desplazamiento de 1) y aplanamos los conjuntos de datos anidados resultantes utilizando flat_map(). Finalmente, aplicamos la función de mapeo a cada ventana utilizando map() y opcionalmente agrupamos y mezclamos en lotes el conjunto de datos resultante.

    Ten en cuenta que este ejemplo asume que el archivo CSV tiene una fila de encabezado y 10 columnas (siendo la primera columna la etiqueta). Es posible que necesites modificar el argumento record_defaults de tf.data.experimental.CsvDataset() para que coincida con los tipos de datos y el número de columnas en tu archivo CSV.

Comments are closed.