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.

Preparación de datos de entrada para lstm/gru

Estoy teniendo problemas para entender cómo transformar mis datos para alimentar a la red (creo que una red LSTM ayuda, ya que mis datos son principalmente de series temporales y también tienen alguna información temporal).

Aquí está el formato de los datos: enlace. Las primeras 6 columnas representan un segundo de datos (corr_grande, corr_pequeño, relaciónde ruido, x, y, z), seguidas de la característica de salida correspondiente y luego los datos del siguiente segundo.

Pero para preparar los datos para el entrenamiento, ¿cómo puedo enviar 6 columnas de datos y luego las próximas 6 columnas? Todas las columnas tienen una longitud de 40.

No estoy seguro de si me he expresado con suficiente claridad.

Por favor, avíseme si necesita otra información.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para preparar los datos para una red LSTM, podemos reformar los datos de entrada en un array tridimensional con las siguientes dimensiones:

    • Tamaño de muestra (número de muestras): Esto se puede calcular como el número total de columnas dividido por el número de características (6 en este caso), que es 40/6 = 6.67, pero podemos redondearlo a 6 ya que tenemos una división entera. Esto significa que tenemos 6 conjuntos de datos con 6 columnas cada uno.
    • Pasos de tiempo (número de pasos de tiempo): En este caso, tenemos un segundo de datos, por lo que podemos establecer el número de pasos de tiempo en 1.
    • Características (número de características de entrada): Tenemos 6 características de entrada.

    Entonces, la forma de entrada sería (6, 1, 6).

    Para transformar los datos, podemos usar la función reshape en numpy. Aquí hay un ejemplo:

    import numpy as np
    
    # Cargar los datos desde un archivo (asumiendo que está en formato CSV)
    data = np.loadtxt('data.csv', delimiter=',')
    
    # Reformar los datos de entrada
    X = data[:, :-1].reshape(-1, 1, 6)
    
    # Datos de salida (asumiendo que están en la última columna de los datos originales)
    y = data[:, -1]
    

    La función reshape se utiliza para reformar los datos de entrada en la forma deseada. La variable X contiene los datos de entrada con forma (6, 1, 6), y y contiene los datos de salida con forma (6,).

    Una vez que los datos están reformados, se pueden utilizar para entrenar la red LSTM usando Keras con el backend de TensorFlow.

Comments are closed.